package water.score;
import java.io.*;
import java.util.HashMap;
import org.junit.Assert;
import org.junit.Test;
import water.parser.PMMLParser;
import water.*;
public class ScoreTest extends TestUtil {
static final HashMap<String, Comparable> ROW;
static {
ROW = new HashMap<String, Comparable>();
ROW.put("id", "80457298");
ROW.put("name", "AOS");
ROW.put("age", "71");
ROW.put("income", 399L);
}
@Test
public void testScorecard() throws Exception {
File file = find_test_file("smalldata/pmml/SampleScorecard.pmml");
ScorecardModel scm = (ScorecardModel)PMMLParser.parse(new FileInputStream(file));
Assert.assertEquals(5.505753, scm.score_interpreter(ROW), 1e-6);
Assert.assertEquals(5.505753, scm.score(ROW), 1e-6);
}
// Load and score a simple PMML RF model against the iris dataset.
//@Test
//public void testRandomForest1() throws Exception {
// // The 1-tree set scores with 2 errors.
// // The 500-tree set scores perfectly, takes slightly long to load.
// //File file = find_test_file("smalldata/pmml/iris_rf_500trees.pmml");
// File file = find_test_file("smalldata/pmml/iris_rf_1tree.pmml");
// //File file = find_test_file("smalldata/pmml/cars-cater-rf-1tree.pmml");
// RFScoreModel rfm = (RFScoreModel)PMMLParser.parse(new BufferedInputStream(new FileInputStream(file)));
//
// Key irisk = loadAndParseFile("iris.hex","smalldata/iris/iris2.csv");
// ValueArray ary = DKV.get(irisk).get();
// AutoBuffer bits = ary.getChunk(0);
// int rows = ary.rpc(0);
// int errs = 0;
// for( int i=0; i<rows; i++ ) {
// HashMap<String,Comparable> row = new HashMap();
// for( int j=0; j<ary._cols.length; j++ )
// row.put(ary._cols[j]._name,ary.datad(bits,i,j));
// int pr = (int)rfm.score(row);
// int ac = (int)ary.data(bits,i,4);
// if( pr != ac )
// errs++;
// }
// Assert.assertEquals(2,errs);
// ary.delete();
//}
}