@Test public void testScorecardWithSimpleSetPredicateWithSpaceValue() { PMML4ExecutionHelper helper = PMML4ExecutionHelperFactory.getExecutionHelper("SimpleSetScorecardWithSpaceValue", ResourceFactory.newClassPathResource(SOURCE_SIMPLE_SET_SPACE_VALUE_SCORECARD), null); PMMLRequestData requestData = new PMMLRequestDataBuilder("123", helper.getModelName()) .addParameter("param", "optA", String.class) .build(); PMML4Result resultHolder = helper.submitRequest(requestData); Assertions.assertThat(resultHolder).isNotNull(); double score = resultHolder.getResultValue("ScoreCard", "score", Double.class).get(); Assertions.assertThat(score).isEqualTo(13); }
@Test public void testScorecardWithComplexPartialScore() { PMML4ExecutionHelper helper = PMML4ExecutionHelperFactory.getExecutionHelper("ComplexPartialScoreScorecard", ResourceFactory.newClassPathResource(SOURCE_COMPLEX_PARTIAL_SCORE_SCORECARD), null); PMMLRequestData requestData = new PMMLRequestDataBuilder("123", helper.getModelName()) .addParameter("param", 5.0, Double.class) .build(); PMML4Result resultHolder = helper.submitRequest(requestData); Assertions.assertThat(resultHolder).isNotNull(); double score = resultHolder.getResultValue("ScoreCard", "score", Double.class).get(); Assertions.assertThat(score).isEqualTo(20); requestData = new PMMLRequestData("123", "ComplexPartialScoreScorecard"); requestData.addRequestParam("param", 40.0); resultHolder = helper.submitRequest(requestData); Assertions.assertThat(resultHolder).isNotNull(); score = resultHolder.getResultValue("ScoreCard", "score", Double.class).get(); Assertions.assertThat(score).isEqualTo(150); requestData = new PMMLRequestData("123", "ComplexPartialScoreScorecard"); requestData.addRequestParam("param", 100.0); resultHolder = helper.submitRequest(requestData); Assertions.assertThat(resultHolder).isNotNull(); score = resultHolder.getResultValue("ScoreCard", "score", Double.class).get(); Assertions.assertThat(score).isEqualTo(205); }
@Test public void testSimpleScorecard() { PMML4ExecutionHelper helper = PMML4ExecutionHelperFactory.getExecutionHelper("SimpleScorecard", ResourceFactory.newClassPathResource(SOURCE_SIMPLE_SCORECARD), null); PMMLRequestDataBuilder rdb = new PMMLRequestDataBuilder("123", helper.getModelName()) .addParameter("param1", 10.0, Double.class) .addParameter("param2", 15.0, Double.class); PMML4Result resultHolder = helper.submitRequest(rdb.build()); double score = resultHolder.getResultValue("ScoreCard", "score", Double.class).get(); Assertions.assertThat(score).isEqualTo(40.8); Map<String,Double> rankingMap = (Map<String, Double>) resultHolder.getResultValue("ScoreCard", "ranking"); Assertions.assertThat(rankingMap.get("reasonCh1")).isEqualTo(5); Assertions.assertThat(rankingMap.get("reasonCh2")).isEqualTo(-6); PMMLRequestDataBuilder rdb2 = new PMMLRequestDataBuilder("123", "SimpleScorecard") .addParameter("param1", 51.0, Double.class) .addParameter("param2", 12.0, Double.class); resultHolder = helper.submitRequest(rdb2.build()); score = resultHolder.getResultValue("ScoreCard", "score", Double.class).get(); Assertions.assertThat(score).isEqualTo(120.8); rankingMap = (Map<String, Double>) resultHolder.getResultValue("ScoreCard", "ranking"); Assertions.assertThat(rankingMap.get("reasonCh1")).isEqualTo(-75); Assertions.assertThat(rankingMap.get("reasonCh2")).isEqualTo(-6); }
null); PMMLRequestData requestData = new PMMLRequestDataBuilder("123", helper.getModelName()) .addParameter("param1", 4, Integer.class) .addParameter("param2", "optA", String.class)
@Test public void testSum() { PMML4ExecutionHelper helper = PMML4ExecutionHelperFactory.getExecutionHelper("SampleMiningModelSum", ResourceFactory.newClassPathResource(SUMMED), null, true); PMMLRequestData request = new PMMLRequestDataBuilder("1234", helper.getModelName()) .addParameter("petal_length", 6.45, Double.class) .addParameter("petal_width", 1.75, Double.class) .addParameter("sepal_width", 1.23, Double.class) .build(); PMML4Result resultHolder = helper.submitRequest(request); Double sepal_length = resultHolder.getResultValue("Sum_Sepal_length", "value",Double.class).orElse(null); Double total_length = 0.0; for (Iterator<PMML4Result> iter = helper.getResultData().iterator(); iter.hasNext();) { PMML4Result res = iter.next(); if (res.getSegmentationId() != null) { Double segSepalLength = res.getResultValue("Sepal_length", "value", Double.class).orElse(null); if (segSepalLength != null) { total_length += segSepalLength; } } } assertEquals(total_length, sepal_length, 1e-6); } }
@Test public void testWeightedAverage() { PMML4ExecutionHelper helper = PMML4ExecutionHelperFactory.getExecutionHelper("SampleMiningModelAvg", ResourceFactory.newClassPathResource(WEIGHTED_AVG), null, true); PMMLRequestData request = new PMMLRequestDataBuilder("1234", helper.getModelName()) .addParameter("petal_length", 6.45, Double.class) .addParameter("petal_width", 1.75, Double.class) .addParameter("sepal_width", 1.23, Double.class) .build(); PMML4Result resultHolder = helper.submitRequest(request); Double sepal_length = resultHolder.getResultValue("Sepal_length", "value",Double.class).orElse(null); assertEquals(7.1833385,sepal_length,1e-6); Double weight = resultHolder.getResultValue("Sepal_length", "weight", Double.class).orElse(null); assertEquals(1.00, weight, 1e-2); }
null); PMMLRequestData requestData = new PMMLRequestDataBuilder("123", helper.getModelName()) .addParameter("param1", 41.0, Double.class) .addParameter("param2", 21.0, Double.class)
@Test public void testScorecardOutputs() throws Exception { PMML4ExecutionHelper helper = PMML4ExecutionHelperFactory.getExecutionHelper("SampleScorecard", ResourceFactory.newClassPathResource(source2), null); PMMLRequestData requestData = new PMMLRequestDataBuilder("123", helper.getModelName()) .addParameter("cage", "engineering", String.class) .addParameter("age", 25, Integer.class) .addParameter("wage", 500.00, Double.class) .build(); PMML4Result resultHolder = helper.submitRequest(requestData); assertEquals("OK",resultHolder.getResultCode()); assertEquals(6,resultHolder.getResultVariables().size()); assertNotNull(resultHolder.getResultValue("OutRC1", null)); assertNotNull(resultHolder.getResultValue("OutRC2", null)); assertNotNull(resultHolder.getResultValue("OutRC3", null)); assertEquals("RC2",resultHolder.getResultValue("OutRC1", "value")); assertEquals("RC1",resultHolder.getResultValue("OutRC2", "value")); assertEquals("RC1",resultHolder.getResultValue("OutRC3", "value")); }