test_class.file: rxjava/src/test/java/io/reactivex/internal/operators/observable/ObservableCacheTest.java
test_class.identifier: ObservableCacheTest
test_case.body: @Test
      public void testAsync() {
          Observable<Integer> source = Observable.range(1, 10000);
          for (int i = 0; i < 100; i++) {
              TestObserver<Integer> to1 = new TestObserver<Integer>();
  
              ObservableCache<Integer> cached = (ObservableCache<Integer>)ObservableCache.from(source);
  
              cached.observeOn(Schedulers.computation()).subscribe(to1);
  
              to1.awaitTerminalEvent(2, TimeUnit.SECONDS);
              to1.assertNoErrors();
              to1.assertComplete();
              assertEquals(10000, to1.values().size());
  
              TestObserver<Integer> to2 = new TestObserver<Integer>();
              cached.observeOn(Schedulers.computation()).subscribe(to2);
  
              to2.awaitTerminalEvent(2, TimeUnit.SECONDS);
              to2.assertNoErrors();
              to2.assertComplete();
              assertEquals(10000, to2.values().size());
          }
      }
test_case.class_method_signature: ObservableCacheTest.testAsync()
test_case.full_signature: @Test public void testAsync()
test_case.identifier: testAsync
test_case.invocations: range from subscribe observeOn computation awaitTerminalEvent assertNoErrors assertComplete assertEquals size values subscribe observeOn computation awaitTerminalEvent assertNoErrors assertComplete assertEquals size values
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testAsync()
focal_class.declarator: state
focal_class.modifier: final
focal_class.original_string: final CacheState<T> state;
focal_class.type: CacheState<T>
focal_class.var_name: state
focal_class.declarator: once
focal_class.modifier: final
focal_class.original_string: final AtomicBoolean once;
focal_class.type: AtomicBoolean
focal_class.var_name: once
focal_class.file: rxjava/src/main/java/io/reactivex/internal/operators/observable/ObservableCache.java
focal_class.identifier: ObservableCache
focal_class.class_method_signature: ObservableCache.from(Observable<T> source)
focal_class.full_signature: public static Observable<T> from(Observable<T> source)
focal_class.identifier: from
focal_class.modifiers: public static
focal_class.parameters: (Observable<T> source)
focal_class.return: Observable<T>
focal_class.signature: Observable<T> from(Observable<T> source)
focal_class.class_method_signature: ObservableCache.from(Observable<T> source, int capacityHint)
focal_class.full_signature: public static Observable<T> from(Observable<T> source, int capacityHint)
focal_class.identifier: from
focal_class.modifiers: public static
focal_class.parameters: (Observable<T> source, int capacityHint)
focal_class.return: Observable<T>
focal_class.signature: Observable<T> from(Observable<T> source, int capacityHint)
focal_class.class_method_signature: ObservableCache.ObservableCache(Observable<T> source, CacheState<T> state)
focal_class.full_signature: private  ObservableCache(Observable<T> source, CacheState<T> state)
focal_class.identifier: ObservableCache
focal_class.modifiers: private
focal_class.parameters: (Observable<T> source, CacheState<T> state)
focal_class.signature:  ObservableCache(Observable<T> source, CacheState<T> state)
focal_class.class_method_signature: ObservableCache.subscribeActual(Observer<? super T> t)
focal_class.full_signature: @Override protected void subscribeActual(Observer<? super T> t)
focal_class.identifier: subscribeActual
focal_class.modifiers: @Override protected
focal_class.parameters: (Observer<? super T> t)
focal_class.return: void
focal_class.signature: void subscribeActual(Observer<? super T> t)
focal_class.class_method_signature: ObservableCache.isConnected()
focal_class.full_signature:  boolean isConnected()
focal_class.identifier: isConnected
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isConnected()
focal_class.class_method_signature: ObservableCache.hasObservers()
focal_class.full_signature:  boolean hasObservers()
focal_class.identifier: hasObservers
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean hasObservers()
focal_class.class_method_signature: ObservableCache.cachedEventCount()
focal_class.full_signature:  int cachedEventCount()
focal_class.identifier: cachedEventCount
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int cachedEventCount()
focal_class.superclass: extends AbstractObservableWithUpstream<T, T>
focal_method.body: public static <T> Observable<T> from(Observable<T> source) {
          return from(source, 16);
      }
focal_method.class_method_signature: ObservableCache.from(Observable<T> source)
focal_method.full_signature: public static Observable<T> from(Observable<T> source)
focal_method.identifier: from
focal_method.invocations: from
focal_method.modifiers: public static
focal_method.parameters: (Observable<T> source)
focal_method.return: Observable<T>
focal_method.signature: Observable<T> from(Observable<T> source)