@Test public void testTreeWithSurrogatePredicate() { Resource res = ResourceFactory.newClassPathResource(treeWithSurrogate); PMML4ExecutionHelper helper = PMML4ExecutionHelper.PMML4ExecutionHelperFactory .getExecutionHelper("SampleMine", res, null, false); helper.initModel(); PMMLRequestDataBuilder rdb = new PMMLRequestDataBuilder(correlationId, "SampleMine"); temperature.ifPresent( t -> rdb.addParameter("temperature", t, Double.class)); humidity.ifPresent( h -> rdb.addParameter("humidity", h, Double.class)); PMMLRequestData request = rdb.build(); helper.submitRequest(request); helper.getResultData().iterator().forEachRemaining(rd -> { assertEquals("OK",rd.getResultCode()); assertEquals(correlationId,rd.getCorrelationId()); String value = rd.getResultValue("Decision", "value", String.class).orElse(null); assertEquals(decision, value); }); } }
@Test public void testMiningModelSelectFirstTree() { final Resource res = ResourceFactory.newClassPathResource(PMML_SOURCE); final PMML4ExecutionHelper helper = PMML4ExecutionHelper.PMML4ExecutionHelperFactory .getExecutionHelper(MINING_MODEL, res, null, true); final PMMLRequestDataBuilder rdb = new PMMLRequestDataBuilder("1234", MINING_MODEL); input1.ifPresent(x -> rdb.addParameter(INPUT1_FIELD_NAME, x, Double.class)); input2.ifPresent(x -> rdb.addParameter(INPUT2_FIELD_NAME, x, Double.class)); input3.ifPresent(x -> rdb.addParameter(INPUT3_FIELD_NAME, x, String.class)); PMMLRequestData request = rdb.build(); helper.submitRequest(request); helper.getResultData().iterator().forEachRemaining(rd -> { assertEquals(request.getCorrelationId(), rd.getCorrelationId()); if (rd.getSegmentationId() == null) { assertEquals("OK",rd.getResultCode()); String value = rd.getResultValue(OUTPUT_FIELD_NAME, "value", String.class).orElse(null); assertNotNull(value); assertEquals(output, value); } }); } }
@Test public void testMiningModelWeightedAverageRegression() { final Resource res = ResourceFactory.newClassPathResource(PMML_SOURCE); final PMML4ExecutionHelper helper = PMML4ExecutionHelper.PMML4ExecutionHelperFactory .getExecutionHelper(MINING_MODEL, res, null, true); final PMMLRequestDataBuilder rdb = new PMMLRequestDataBuilder("1234", MINING_MODEL); input1.ifPresent(x -> rdb.addParameter(INPUT1_FIELD_NAME, x, Double.class)); input2.ifPresent(x -> rdb.addParameter(INPUT2_FIELD_NAME, x, Double.class)); input3.ifPresent(x -> rdb.addParameter(INPUT3_FIELD_NAME, x, Double.class)); PMMLRequestData request = rdb.build(); helper.submitRequest(request); helper.getResultData().iterator().forEachRemaining(rd -> { assertEquals(request.getCorrelationId(), rd.getCorrelationId()); if (rd.getSegmentationId() == null) { assertEquals("OK",rd.getResultCode()); double value = rd.getResultValue(OUTPUT_FIELD_NAME, "value", Double.class).orElse(null); assertNotNull(value); assertEquals(result, value, COMPARISON_DELTA); } }); } }
@Test public void testMiningModelSelectFirstRegression() { final Resource res = ResourceFactory.newClassPathResource(PMML_SOURCE); final PMML4ExecutionHelper helper = PMML4ExecutionHelper.PMML4ExecutionHelperFactory .getExecutionHelper(MINING_MODEL, res, null, true); final PMMLRequestDataBuilder rdb = new PMMLRequestDataBuilder("1234", MINING_MODEL); input1.ifPresent(x -> rdb.addParameter(INPUT1_FIELD_NAME, x, Double.class)); input2.ifPresent(x -> rdb.addParameter(INPUT2_FIELD_NAME, x, Double.class)); input3.ifPresent(x -> rdb.addParameter(INPUT3_FIELD_NAME, x, Double.class)); PMMLRequestData request = rdb.build(); helper.submitRequest(request); helper.getResultData().iterator().forEachRemaining(rd -> { assertEquals(request.getCorrelationId(), rd.getCorrelationId()); if (rd.getSegmentationId() == null) { assertEquals("OK",rd.getResultCode()); double value = rd.getResultValue(OUTPUT_FIELD_NAME, "value", Double.class).orElse(null); assertNotNull(value); assertEquals(result, value, COMPARISON_DELTA); } }); } }
@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); } }
PMML4Result resultHolder = helper.submitRequest(request); helper.getResultData().forEach(rd -> { assertEquals("OK",rd.getResultCode()); assertEquals(request.getCorrelationId(),rd.getCorrelationId());
@Test public void testMiningModelSumRegression() { final Resource res = ResourceFactory.newClassPathResource(PMML_SOURCE); final PMML4ExecutionHelper helper = PMML4ExecutionHelper.PMML4ExecutionHelperFactory .getExecutionHelper(MINING_MODEL, res, null, true); final PMMLRequestDataBuilder rdb = new PMMLRequestDataBuilder("1234", MINING_MODEL); input1.ifPresent(x -> rdb.addParameter(INPUT1_FIELD_NAME, x, Double.class)); input2.ifPresent(x -> rdb.addParameter(INPUT2_FIELD_NAME, x, Double.class)); input3.ifPresent(x -> rdb.addParameter(INPUT3_FIELD_NAME, x, Double.class)); PMMLRequestData request = rdb.build(); helper.submitRequest(request); helper.getResultData().iterator().forEachRemaining(rd -> { assertEquals(request.getCorrelationId(), rd.getCorrelationId()); if (rd.getSegmentationId() == null) { assertEquals("OK",rd.getResultCode()); double value = rd.getResultValue(OUTPUT_FIELD_NAME, "value", Double.class).orElse(null); assertNotNull(value); assertEquals(result, value, COMPARISON_DELTA); } }); } }
PMML4Result resultHolder = helper.submitRequest(request); helper.getResultData().forEach(rd -> { assertEquals(request.getCorrelationId(),rd.getCorrelationId()); assertEquals("OK",rd.getResultCode());
@Test public void testSelectFirstSegmentFirst() { Resource res = ResourceFactory.newClassPathResource(source1); PMML4ExecutionHelper helper = PMML4ExecutionHelperFactory.getExecutionHelper("SampleMine",res,null,true); PMMLRequestDataBuilder rdb = new PMMLRequestDataBuilder("1234", "SampleMine") .addParameter("fld1", 30.0, Double.class) .addParameter("fld2", 60.0, Double.class) .addParameter("fld3", "false", String.class) .addParameter("fld4", "optA", String.class); PMMLRequestData request = rdb.build(); PMML4Result resultHolder = helper.submitRequest(request); Collection<?> objects = ((InternalRuleUnitExecutor)helper.getExecutor()).getSessionObjects(); objects.forEach(o -> {System.out.println(o);}); helper.getMiningModelPojo().forEach(mmp -> {System.out.println(mmp);}); helper.getResultData().iterator().forEachRemaining(rd -> { assertEquals(request.getCorrelationId(),rd.getCorrelationId()); if (rd.getSegmentationId() == null) { assertEquals("OK",rd.getResultCode()); assertNotNull(rd.getResultValue("Fld5", null)); String value = rd.getResultValue("Fld5", "value", String.class).orElse(null); assertEquals("tgtY",value); } }); }
@Test public void testMiningModelSumRegression() { final Resource res = ResourceFactory.newClassPathResource(PMML_SOURCE); final PMML4ExecutionHelper helper = PMML4ExecutionHelper.PMML4ExecutionHelperFactory .getExecutionHelper(MINING_MODEL, res, null, true); final PMMLRequestDataBuilder rdb = new PMMLRequestDataBuilder("1234", MINING_MODEL) .addParameter(INPUT1_FIELD_NAME, input1, Double.class) .addParameter(INPUT2_FIELD_NAME, input2, Double.class) .addParameter(INPUT3_FIELD_NAME, input3, Double.class); PMMLRequestData request = rdb.build(); helper.submitRequest(request); helper.getResultData().iterator().forEachRemaining(rd -> { assertEquals(request.getCorrelationId(), rd.getCorrelationId()); if (rd.getSegmentationId() == null) { assertEquals("OK",rd.getResultCode()); double value = rd.getResultValue(OUTPUT_FIELD_NAME, "value", Double.class).orElse(null); assertNotNull(value); assertEquals(result, value, COMPARISON_DELTA); } }); } }
PMML4Result resultHolder = helper.submitRequest(request); helper.getResultData().forEach(rd -> { assertEquals(request.getCorrelationId(),rd.getCorrelationId()); assertEquals("OK",rd.getResultCode());
.build(); PMML4Result resultHolder = helper.submitRequest(request); helper.getResultData().forEach(rd -> { assertEquals(request.getCorrelationId(),rd.getCorrelationId()); assertEquals("OK",rd.getResultCode());