use of org.kie.pmml.pmml_4_2.model.mining.SegmentExecution in project drools by kiegroup.
the class MiningmodelTest method testSelectSecondSegmentFirst.
@Test
public void testSelectSecondSegmentFirst() {
RuleUnitExecutor executor = createExecutor(source1);
// KieRuntimeLogger console = ((InternalRuleUnitExecutor)executor).addConsoleLogger();
PMMLRequestData request = new PMMLRequestData("1234", "SampleMine");
request.addRequestParam(new ParameterInfo<>("1234", "fld1", Double.class, 45.0));
request.addRequestParam(new ParameterInfo<>("1234", "fld2", Double.class, 60.0));
request.addRequestParam(new ParameterInfo<>("1234", "fld6", String.class, "optA"));
PMML4Result resultHolder = new PMML4Result();
resultHolder.setCorrelationId(request.getCorrelationId());
DataSource<PMMLRequestData> childModelRequest = executor.newDataSource("childModelRequest");
DataSource<PMML4Result> childModelResults = executor.newDataSource("childModelResults");
DataSource<SegmentExecution> childModelSegments = executor.newDataSource("childModelSegments");
DataSource<? extends AbstractPMMLData> miningModelPojo = executor.newDataSource("miningModelPojo");
List<String> possiblePackages = this.calculatePossiblePackageNames("SampleMine");
Class<? extends RuleUnit> ruleUnitClass = this.getStartingRuleUnit("Start Mining - SampleMine", (InternalKnowledgeBase) kbase, possiblePackages);
assertNotNull(ruleUnitClass);
data.insert(request);
resultData.insert(resultHolder);
executor.run(ruleUnitClass);
// console.close();
resultData.forEach(rd -> {
assertEquals(request.getCorrelationId(), rd.getCorrelationId());
assertEquals("OK", rd.getResultCode());
if (rd.getSegmentationId() == null) {
assertNotNull(rd.getResultValue("Fld5", null));
String value = rd.getResultValue("Fld5", "value", String.class).orElse(null);
assertEquals("tgtZ", value);
AbstractTreeToken token = rd.getResultValue("MissingTreeToken", null, AbstractTreeToken.class).orElse(null);
assertNotNull(token);
assertEquals(0.6, token.getConfidence().doubleValue(), 0.0);
assertEquals("null", token.getCurrent());
}
});
int segmentsExecuted = 0;
for (Iterator<SegmentExecution> iter = childModelSegments.iterator(); iter.hasNext(); ) {
SegmentExecution cms = iter.next();
assertEquals(request.getCorrelationId(), cms.getCorrelationId());
if (cms.getState() == SegmentExecutionState.COMPLETE)
segmentsExecuted++;
}
assertEquals(1, segmentsExecuted);
}
Aggregations