use of org.kie.api.pmml.PMMLRequestData in project drools by kiegroup.
the class MiningSegmentTransferTest method testComplexResult.
@Test
public void testComplexResult() {
MiningSegmentTransfer mst = new MiningSegmentTransfer(complexResult, "SEGMENT_2");
mst.addResultToRequestMapping("firstObject", "object1");
mst.addResultToRequestMapping("myComplex.varA", "stringFromMyComplex");
mst.addResultToRequestMapping("myComplex.varB", "intValue");
doBaselineAssertions(complexResult, mst);
assertEquals(3, mst.getResultFieldNameToRequestFieldName().size());
PMMLRequestData rqst = mst.getOutboundRequest();
assertNotNull(rqst);
assertEquals(complexResult.getCorrelationId(), rqst.getCorrelationId());
Map<String, ParameterInfo> params = rqst.getMappedRequestParams();
assertEquals(complexResult.getResultValue("firstObject", null), params.get("object1").getValue());
assertEquals(complexResult.getResultValue("myComplex", "varA"), params.get("stringFromMyComplex").getValue());
assertEquals(complexResult.getResultValue("myComplex", "varB"), params.get("intValue").getValue());
System.out.println(rqst);
System.out.println(complexResult);
}
use of org.kie.api.pmml.PMMLRequestData in project drools by kiegroup.
the class DecisionTreeTest method testMissingTreeWeighted1.
@Test
public void testMissingTreeWeighted1() throws Exception {
Resource res = ResourceFactory.newClassPathResource(source2);
KieBase kbase = new KieHelper().addResource(res, ResourceType.PMML).build();
RuleUnitExecutor executor = RuleUnitExecutor.create().bind(kbase);
KieRuntimeLogger console = ((InternalRuleUnitExecutor) executor).addConsoleLogger();
PMMLRequestData requestData = new PMMLRequestData("123", "Missing");
requestData.addRequestParam(new ParameterInfo<>("123", "fld1", Double.class, -1.0));
requestData.addRequestParam(new ParameterInfo<>("123", "fld2", Double.class, -1.0));
requestData.addRequestParam(new ParameterInfo<>("123", "fld3", String.class, "optA"));
PMML4Result resultHolder = new PMML4Result();
// , requestData);
DataSource<PMMLRequestData> data = executor.newDataSource("request");
// , resultHolder);
DataSource<PMML4Result> results = executor.newDataSource("results");
DataSource<PMML4Data> pmmlData = executor.newDataSource("pmmlData");
List<String> possiblePackages = calculatePossiblePackageNames("Missing");
Class<? extends RuleUnit> unitClass = getStartingRuleUnit("RuleUnitIndicator", (InternalKnowledgeBase) kbase, possiblePackages);
assertNotNull(unitClass);
int x = executor.run(unitClass);
data.insert(requestData);
results.insert(resultHolder);
int y = executor.run(unitClass);
console.close();
System.out.println(resultHolder);
Collection<?> objects = ((InternalRuleUnitExecutor) executor).getSessionObjects();
objects.forEach(o -> {
System.out.println(o);
});
pmmlData.forEach(pd -> {
System.out.println(pd);
});
AbstractTreeToken missingTreeToken = (AbstractTreeToken) resultHolder.getResultValue("MissingTreeToken", null);
assertNotNull(missingTreeToken);
assertEquals(0.8, missingTreeToken.getConfidence(), 0.0);
assertEquals("null", missingTreeToken.getCurrent());
assertEquals(50.0, missingTreeToken.getTotalCount(), 0.0);
Object fld9 = resultHolder.getResultValue("Fld9", null);
assertNotNull(fld9);
String value = (String) resultHolder.getResultValue("Fld9", "value");
assertNotNull(value);
assertEquals("tgtX", value);
}
use of org.kie.api.pmml.PMMLRequestData in project drools by kiegroup.
the class DecisionTreeTest method testLastPredictionMissingValueStrategy.
@Test
public void testLastPredictionMissingValueStrategy() {
KieBase kieBase = PMMLKieBaseUtil.createKieBaseWithPMML(TREE_LAST_CHILD_MISSING_STRATEGY);
PMMLExecutor executor = new PMMLExecutor(kieBase);
PMMLRequestData request = new PMMLRequestData("123", "TreeTest");
request.addRequestParam("fld1", 30.0);
PMML4Result resultHolder = executor.run(request);
Assertions.assertThat(resultHolder).isNotNull();
String targetValue = resultHolder.getResultValue("Fld3", "value", String.class).orElse(null);
Assertions.assertThat(targetValue).isEqualTo("tgtY");
request = new PMMLRequestData("123", "TreeTest");
request.addRequestParam("fld1", 100.0);
resultHolder = executor.run(request);
Assertions.assertThat(resultHolder).isNotNull();
targetValue = resultHolder.getResultValue("Fld3", "value", String.class).orElse(null);
Assertions.assertThat(targetValue).isEqualTo("tgtA");
}
use of org.kie.api.pmml.PMMLRequestData in project drools by kiegroup.
the class DecisionTreeTest method testReturnNullNoTrueChildPredictionStrategy.
@Test
public void testReturnNullNoTrueChildPredictionStrategy() {
KieBase kieBase = PMMLKieBaseUtil.createKieBaseWithPMML(TREE_RETURN_NULL_NOTRUECHILD_STRATEGY);
PMMLExecutor executor = new PMMLExecutor(kieBase);
PMMLRequestData request = new PMMLRequestData("123", "TreeTest");
request.addRequestParam("fld1", 30.0);
PMML4Result resultHolder = executor.run(request);
Assertions.assertThat(resultHolder).isNotNull();
String targetValue = resultHolder.getResultValue("Fld2", "value", String.class).orElse(null);
Assertions.assertThat(targetValue).isEqualTo("tgtY");
request = new PMMLRequestData("123", "TreeTest");
request.addRequestParam("fld1", 50.0);
resultHolder = executor.run(request);
Assertions.assertThat(resultHolder).isNotNull();
Assertions.assertThat(resultHolder.getResultValue("Fld2", "value", String.class)).isEmpty();
}
use of org.kie.api.pmml.PMMLRequestData in project drools by kiegroup.
the class DecisionTreeTest method testSimpleTree.
@Test
public void testSimpleTree() throws Exception {
RuleUnitExecutor executor = createExecutor(source1);
PMMLRequestData request = new PMMLRequestData("123", "TreeTest");
request.addRequestParam("fld1", 30.0);
request.addRequestParam("fld2", 60.0);
request.addRequestParam("fld3", "false");
request.addRequestParam("fld4", "optA");
PMML4Result resultHolder = new PMML4Result();
List<String> possiblePackages = calculatePossiblePackageNames("TreeTest");
Class<? extends RuleUnit> unitClass = getStartingRuleUnit("RuleUnitIndicator", (InternalKnowledgeBase) kbase, possiblePackages);
assertNotNull(unitClass);
int x = executor.run(unitClass);
data.insert(request);
resultData.insert(resultHolder);
executor.run(unitClass);
assertEquals("OK", resultHolder.getResultCode());
Object obj = resultHolder.getResultValue("Fld5", null);
assertNotNull(obj);
String targetValue = resultHolder.getResultValue("Fld5", "value", String.class).orElse(null);
assertEquals("tgtY", targetValue);
}
Aggregations