use of org.kie.pmml.commons.model.ProcessingDTO in project drools by kiegroup.
the class KiePMMLDefineFunctionTest method evaluateEmptyParamValues.
@Test(expected = IllegalArgumentException.class)
public void evaluateEmptyParamValues() {
final KiePMMLParameterField parameterField1 = KiePMMLParameterField.builder(PARAM_1, Collections.emptyList()).build();
final KiePMMLParameterField parameterField2 = KiePMMLParameterField.builder(PARAM_2, Collections.emptyList()).build();
final KiePMMLDefineFunction defineFunction = new KiePMMLDefineFunction(CUSTOM_FUNCTION, Collections.emptyList(), null, OP_TYPE.CONTINUOUS, Arrays.asList(parameterField1, parameterField2), null);
ProcessingDTO processingDTO = getProcessingDTO(Collections.emptyList());
defineFunction.evaluate(processingDTO, Collections.emptyList());
}
use of org.kie.pmml.commons.model.ProcessingDTO in project drools by kiegroup.
the class KiePMMLApplyTest method evaluateFromBuiltIn.
@Test
public void evaluateFromBuiltIn() {
// <Apply function="/">
// <Constant>33.0</Constant>
// <Constant>27.0</Constant>
// </Apply>
final KiePMMLConstant kiePMMLConstant1 = new KiePMMLConstant("NAME-1", Collections.emptyList(), value1, null);
final KiePMMLConstant kiePMMLConstant2 = new KiePMMLConstant("NAME-1", Collections.emptyList(), value2, null);
KiePMMLApply kiePMMLApply = KiePMMLApply.builder("NAME", Collections.emptyList(), "/").withKiePMMLExpressions(Arrays.asList(kiePMMLConstant1, kiePMMLConstant2)).build();
ProcessingDTO processingDTO = getProcessingDTO(Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList());
Object retrieved = kiePMMLApply.evaluate(processingDTO);
assertEquals(expected, retrieved);
//
// <Apply function="/">
// <Constant>33.0</Constant>
// <FieldRef>FIELD_NAME</FieldRef>
// </Apply>
// Apply with a Constant and a FieldRef: returns kiePMMLConstant1 divided evaluation of FieldRef from
// kiePMMLNameValues
final KiePMMLFieldRef kiePMMLFieldRef = new KiePMMLFieldRef(FIELD_NAME, Collections.emptyList(), null);
kiePMMLApply = KiePMMLApply.builder("NAME", Collections.emptyList(), "/").withKiePMMLExpressions(Arrays.asList(kiePMMLConstant1, kiePMMLFieldRef)).build();
List<KiePMMLNameValue> kiePMMLNameValues = Collections.singletonList(new KiePMMLNameValue(FIELD_NAME, value2));
processingDTO = getProcessingDTO(Collections.emptyList(), Collections.emptyList(), kiePMMLNameValues, Collections.emptyList());
retrieved = kiePMMLApply.evaluate(processingDTO);
assertEquals(expected, retrieved);
// Apply with a Constant and a FieldRef: returns kiePMMLConstant1 divided evaluation of FieldRef from
// derivedFields
final KiePMMLDerivedField kiePMMLDerivedField = KiePMMLDerivedField.builder(FIELD_NAME, Collections.emptyList(), DATA_TYPE.DOUBLE, OP_TYPE.CONTINUOUS, kiePMMLConstant2).build();
final List<KiePMMLDerivedField> derivedFields = Collections.singletonList(kiePMMLDerivedField);
kiePMMLNameValues = Collections.singletonList(new KiePMMLNameValue("UNKNOWN", "WRONG"));
processingDTO = getProcessingDTO(Collections.emptyList(), derivedFields, kiePMMLNameValues, Collections.emptyList());
retrieved = kiePMMLApply.evaluate(processingDTO);
assertEquals(expected, retrieved);
// <Apply function="isMissing">
// <FieldRef>FIELD_NAME</FieldRef>
// </Apply>
// Apply with FieldRef: returns true with missing input
kiePMMLApply = KiePMMLApply.builder("NAME", Collections.emptyList(), "isMissing").withKiePMMLExpressions(Collections.singletonList(kiePMMLFieldRef)).build();
processingDTO = getProcessingDTO(Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), Collections.singletonList(getReferredByFieldRef(FIELD_NAME)));
retrieved = kiePMMLApply.evaluate(processingDTO);
assertTrue(retrieved instanceof Boolean);
assertTrue((boolean) retrieved);
// Apply with FieldRef: returns false with corresponding input
kiePMMLApply = KiePMMLApply.builder("NAME", Collections.emptyList(), "isMissing").withKiePMMLExpressions(Collections.singletonList(kiePMMLFieldRef)).build();
kiePMMLNameValues = Collections.singletonList(new KiePMMLNameValue(FIELD_NAME, value2));
processingDTO = getProcessingDTO(Collections.emptyList(), Collections.emptyList(), kiePMMLNameValues, Collections.singletonList(getReferredByFieldRef(FIELD_NAME)));
retrieved = kiePMMLApply.evaluate(processingDTO);
assertTrue(retrieved instanceof Boolean);
assertFalse((boolean) retrieved);
}
use of org.kie.pmml.commons.model.ProcessingDTO in project drools by kiegroup.
the class KiePMMLFieldRefTest method evaluateFromKiePMMLNameValues.
@Test
public void evaluateFromKiePMMLNameValues() {
final Object value = 234.45;
final List<KiePMMLNameValue> kiePMMLNameValues = Collections.singletonList(new KiePMMLNameValue(FIELD_NAME, value));
final KiePMMLFieldRef kiePMMLFieldRef = new KiePMMLFieldRef(FIELD_NAME, Collections.emptyList(), null);
ProcessingDTO processingDTO = getProcessingDTO(Collections.emptyList(), kiePMMLNameValues);
final Object retrieved = kiePMMLFieldRef.evaluate(processingDTO);
assertEquals(value, retrieved);
}
use of org.kie.pmml.commons.model.ProcessingDTO in project drools by kiegroup.
the class KiePMMLFieldRefTest method evaluateFromDerivedFields.
@Test
public void evaluateFromDerivedFields() {
final Object value = 234.45;
final KiePMMLConstant kiePMMLConstant = new KiePMMLConstant("NAME", Collections.emptyList(), value, null);
final KiePMMLDerivedField kiePMMLDerivedField = KiePMMLDerivedField.builder(FIELD_NAME, Collections.emptyList(), DATA_TYPE.DOUBLE, OP_TYPE.CONTINUOUS, kiePMMLConstant).build();
final List<KiePMMLDerivedField> derivedFields = Collections.singletonList(kiePMMLDerivedField);
final List<KiePMMLNameValue> kiePMMLNameValues = Collections.singletonList(new KiePMMLNameValue("UNKNOWN", "WRONG"));
final KiePMMLFieldRef kiePMMLFieldRef = new KiePMMLFieldRef(FIELD_NAME, Collections.emptyList(), null);
ProcessingDTO processingDTO = getProcessingDTO(derivedFields, kiePMMLNameValues);
final Object retrieved = kiePMMLFieldRef.evaluate(processingDTO);
assertEquals(value, retrieved);
}
use of org.kie.pmml.commons.model.ProcessingDTO in project drools by kiegroup.
the class KiePMMLFieldRefTest method evaluateFromMapMissingTo.
@Test
public void evaluateFromMapMissingTo() {
final String value = "234.45";
final KiePMMLConstant kiePMMLConstant = new KiePMMLConstant("NAME", Collections.emptyList(), "WRONG-CONSTANT", null);
final KiePMMLDerivedField kiePMMLDerivedField = KiePMMLDerivedField.builder("ANOTHER_FIELD", Collections.emptyList(), DATA_TYPE.DOUBLE, OP_TYPE.CONTINUOUS, kiePMMLConstant).build();
final List<KiePMMLDerivedField> derivedFields = Collections.singletonList(kiePMMLDerivedField);
final List<KiePMMLNameValue> kiePMMLNameValues = Collections.singletonList(new KiePMMLNameValue("UNKNOWN", "WRONG"));
final KiePMMLFieldRef kiePMMLFieldRef = new KiePMMLFieldRef(FIELD_NAME, Collections.emptyList(), value);
ProcessingDTO processingDTO = getProcessingDTO(derivedFields, kiePMMLNameValues);
final Object retrieved = kiePMMLFieldRef.evaluate(processingDTO);
assertEquals(value, retrieved);
}
Aggregations