@Ignore // don't care for any reordering
  @Test(timeout = 10000)
  public void flatMapRangeAsyncLoop() {
    for (int i = 0; i < 2000; i++) {
      if (i % 10 == 0) {
        System.out.println("flatMapRangeAsyncLoop > " + i);
      }
      TestSubscriber<Integer> ts = new TestSubscriber<Integer>();
      Observable.range(0, 1000)
          .flatMap(
              new Func1<Integer, Observable<Integer>>() {
                @Override
                public Observable<Integer> call(Integer t) {
                  return Observable.just(t);
                }
              })
          .observeOn(Schedulers.computation())
          .subscribe(ts);

      ts.awaitTerminalEvent(2500, TimeUnit.MILLISECONDS);
      if (ts.getOnCompletedEvents().isEmpty()) {
        System.out.println(ts.getOnNextEvents().size());
      }
      ts.assertTerminalEvent();
      ts.assertNoErrors();
      List<Integer> list = ts.getOnNextEvents();
      assertEquals(1000, list.size());
      boolean f = false;
      for (int j = 0; j < list.size(); j++) {
        if (list.get(j) != j) {
          System.out.println(j + " " + list.get(j));
          f = true;
        }
      }
      if (f) {
        Assert.fail("Results are out of order!");
      }
    }
  }
 /** Test predictions */
 @Test
 public void testPredict() {
   // get restaurant data
   DataSet restaurantData = null;
   try {
     restaurantData = DataSetTest.loadRestaurantData();
   } catch (IOException e) {
     Assert.fail("Could not load restaurant data from URL.");
   }
   // create tree
   DecisionTree t = new DecisionTree<String>(new Attribute<String>("Price", null));
   t.addBranch("$", new DecisionTreeLeaf("No"));
   t.addLeaf("$$", "Yes"); // alternate form, preferred
   t.addLeaf("$$$", "Maybe");
   // test
   Assert.assertEquals("No", t.predict(restaurantData.getExample(1)));
   Assert.assertEquals("Yes", t.predict(restaurantData.getExample(5)));
   Assert.assertEquals("Maybe", t.predict(restaurantData.getExample(0)));
   // test tree coverage
   for (Example e : restaurantData) {
     Assert.assertNotNull(t.predict(e));
   }
 }