use of org.kie.pmml.commons.model.tuples.KiePMMLNameValue 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.tuples.KiePMMLNameValue 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.tuples.KiePMMLNameValue 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.tuples.KiePMMLNameValue 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);
}
use of org.kie.pmml.commons.model.tuples.KiePMMLNameValue in project drools by kiegroup.
the class KiePMMLNormContinuousTest method evaluate.
@Test
public void evaluate() {
String fieldName = "fieldName";
Number input = 24;
KiePMMLNormContinuous kiePMMLNormContinuous = getKiePMMLNormContinuous(fieldName, null, null);
ProcessingDTO processingDTO = new ProcessingDTO(Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), Collections.singletonList(new KiePMMLNameValue(fieldName, input)), Collections.emptyList(), Collections.emptyList());
Number retrieved = (Number) kiePMMLNormContinuous.evaluate(processingDTO);
Number expected = kiePMMLNormContinuous.linearNorms.get(0).getNorm() + ((input.doubleValue() - kiePMMLNormContinuous.linearNorms.get(0).getOrig()) / (kiePMMLNormContinuous.linearNorms.get(1).getOrig() - kiePMMLNormContinuous.linearNorms.get(0).getOrig())) * (kiePMMLNormContinuous.linearNorms.get(1).getNorm() - kiePMMLNormContinuous.linearNorms.get(0).getNorm());
assertEquals(expected, retrieved);
}
Aggregations