public void testLossBetween0And1() {
// List<Instance<AttributesMap>> trainingData = setUp();
logger.info("trainingDataSize " + trainingData.size());
PredictiveModelWithDataBuilder<AttributesMap, ? extends PredictiveModel<AttributesMap, PredictionMap>> predictiveModelWithDataBuilder = getPredictiveModelWithDataBuilder(5, 5);
ClassifierOutOfTimeCrossValidator crossValidator = new ClassifierOutOfTimeCrossValidator(new ClassifierLogCVLossFunction(), 0.25, 30, new TestDateTimeExtractor()); //number of validation time slices
double totalLoss = crossValidator.getCrossValidatedLoss(predictiveModelWithDataBuilder, trainingData);
Assert.assertTrue(totalLoss > 0 && totalLoss <= 1.0);
logger.info("\n\nAUCLoss\n");
crossValidator = new ClassifierOutOfTimeCrossValidator(new WeightedAUCCrossValLossFunction(1.0), 0.25, 30, new TestDateTimeExtractor()); //number of validation time slices
totalLoss = crossValidator.getCrossValidatedLoss(predictiveModelWithDataBuilder, trainingData);