public void simpleBmiTestNoSplit() throws Exception {
final List<Instance<AttributesMap>> instances = TreeBuilderTestUtils.getInstances(1000);
final PredictiveModelWithDataBuilder<AttributesMap ,SplitOnAttributeClassifier> wb = getWrappedUpdatablePredictiveModelBuilder();
final long startTime = System.currentTimeMillis();
final SplitOnAttributeClassifier splitOnAttributeClassifier = wb.buildPredictiveModel(instances);
final RandomForest randomForest = (RandomForest) splitOnAttributeClassifier.getDefaultPM();
TreeBuilderTestUtils.serializeDeserialize(randomForest);
final List<Tree> trees = randomForest.trees;
final int treeSize = trees.size();
final int firstTreeNodeSize = trees.get(0).node.size();
Assert.assertTrue(treeSize < 400, "Forest size should be less than 400");
Assert.assertTrue((System.currentTimeMillis() - startTime) < 20000,"Building this node should take far less than 20 seconds");
final List<Instance<AttributesMap>> newInstances = TreeBuilderTestUtils.getInstances(1000);
final SplitOnAttributeClassifier splitOnAttributeClassifier1 = wb.buildPredictiveModel(newInstances);
final RandomForest newRandomForest = (RandomForest) splitOnAttributeClassifier1.getDefaultPM();
Assert.assertTrue(splitOnAttributeClassifier == splitOnAttributeClassifier1, "Expect same tree to be updated");
Assert.assertEquals(treeSize, newRandomForest.trees.size(), "Expected same number of trees");
Assert.assertEquals(firstTreeNodeSize, newRandomForest.trees.get(0).node.size(), "Expected same nodes");
}