Search in sources :

Example 46 with ProcessingDTO

use of org.kie.pmml.commons.model.ProcessingDTO in project drools by kiegroup.

the class KiePMMLMapValuesTest method evaluateKeyNotFound.

@Test
public void evaluateKeyNotFound() {
    KiePMMLMapValues kiePMMLMapValues = getKiePMMLMapValues();
    ProcessingDTO processingDTO = getProcessingDTO(Collections.emptyList());
    assertEquals(MAPMISSINGTO, kiePMMLMapValues.evaluate(processingDTO));
}
Also used : CommonTestingUtility.getProcessingDTO(org.kie.pmml.commons.CommonTestingUtility.getProcessingDTO) ProcessingDTO(org.kie.pmml.commons.model.ProcessingDTO) Test(org.junit.Test)

Example 47 with ProcessingDTO

use of org.kie.pmml.commons.model.ProcessingDTO in project drools by kiegroup.

the class KiePMMLNormDiscreteTest method evaluateMissingValue.

@Test
public void evaluateMissingValue() {
    String fieldName = "fieldName";
    String fieldValue = "fieldValue";
    Number mapMissingTo = 1.0;
    KiePMMLNormDiscrete kiePMMLNormContinuous = getKiePMMLNormDiscrete(fieldName, fieldValue, mapMissingTo);
    ProcessingDTO processingDTO = getProcessingDTO(Collections.emptyList());
    Object retrieved = kiePMMLNormContinuous.evaluate(processingDTO);
    assertNotNull(retrieved);
    assertEquals(mapMissingTo, retrieved);
}
Also used : CommonTestingUtility.getProcessingDTO(org.kie.pmml.commons.CommonTestingUtility.getProcessingDTO) ProcessingDTO(org.kie.pmml.commons.model.ProcessingDTO) Test(org.junit.Test)

Example 48 with ProcessingDTO

use of org.kie.pmml.commons.model.ProcessingDTO in project drools by kiegroup.

the class KiePMMLApply method evaluate.

@Override
public Object evaluate(final ProcessingDTO processingDTO) {
    if (kiePMMLExpressions == null) {
        return null;
    }
    // <- Insertion order matter
    List<Object> expressionValues = new ArrayList<>();
    MiningField referredByFieldRef = null;
    for (KiePMMLExpression kiePMMLExpression : kiePMMLExpressions) {
        expressionValues.add(kiePMMLExpression.evaluate(processingDTO));
        if (kiePMMLExpression instanceof KiePMMLFieldRef && BUILTIN_FUNCTIONS.isBUILTIN_FUNCTIONS_VALIDATION(function)) {
            String referredField = ((KiePMMLFieldRef) kiePMMLExpression).getName();
            referredByFieldRef = processingDTO.getMiningFields().stream().filter(miningField -> referredField.equals(miningField.getName())).findFirst().orElseThrow(() -> new IllegalArgumentException(String.format("Missing required field %s", referredField)));
        }
    }
    if (BUILTIN_FUNCTIONS.isBUILTIN_FUNCTIONS(function)) {
        BUILTIN_FUNCTIONS builtinFunction = BUILTIN_FUNCTIONS.byName(function);
        return builtinFunction.getValue(expressionValues.toArray(new Object[0]), referredByFieldRef);
    } else {
        final KiePMMLDefineFunction definedFunction = processingDTO.getDefineFunctions().stream().filter(defineFunction -> defineFunction.getName().equals(function)).findFirst().orElseThrow(() -> new IllegalArgumentException("Unknown function " + function));
        return definedFunction.evaluate(processingDTO, expressionValues);
    }
}
Also used : Objects(java.util.Objects) List(java.util.List) KiePMMLDefineFunction(org.kie.pmml.commons.transformations.KiePMMLDefineFunction) BUILTIN_FUNCTIONS(org.kie.pmml.api.enums.BUILTIN_FUNCTIONS) StringJoiner(java.util.StringJoiner) KiePMMLExtension(org.kie.pmml.commons.model.KiePMMLExtension) ProcessingDTO(org.kie.pmml.commons.model.ProcessingDTO) AbstractKiePMMLComponent(org.kie.pmml.commons.model.abstracts.AbstractKiePMMLComponent) Collections(java.util.Collections) ArrayList(java.util.ArrayList) INVALID_VALUE_TREATMENT_METHOD(org.kie.pmml.api.enums.INVALID_VALUE_TREATMENT_METHOD) MiningField(org.kie.pmml.api.models.MiningField) BUILTIN_FUNCTIONS(org.kie.pmml.api.enums.BUILTIN_FUNCTIONS) MiningField(org.kie.pmml.api.models.MiningField) KiePMMLDefineFunction(org.kie.pmml.commons.transformations.KiePMMLDefineFunction) ArrayList(java.util.ArrayList)

Aggregations

ProcessingDTO (org.kie.pmml.commons.model.ProcessingDTO)48 Test (org.junit.Test)44 CommonTestingUtility.getProcessingDTO (org.kie.pmml.commons.CommonTestingUtility.getProcessingDTO)41 KiePMMLNameValue (org.kie.pmml.commons.model.tuples.KiePMMLNameValue)19 PMML4Result (org.kie.api.pmml.PMML4Result)15 KiePMMLTestingModel (org.kie.pmml.commons.testingutility.KiePMMLTestingModel)15 KiePMMLOutputField (org.kie.pmml.commons.model.KiePMMLOutputField)13 KiePMMLFieldRef (org.kie.pmml.commons.model.expressions.KiePMMLFieldRef)13 KiePMMLConstant (org.kie.pmml.commons.model.expressions.KiePMMLConstant)12 KiePMMLApply (org.kie.pmml.commons.model.expressions.KiePMMLApply)11 KiePMMLDerivedField (org.kie.pmml.commons.transformations.KiePMMLDerivedField)9 KiePMMLTransformationDictionary (org.kie.pmml.commons.transformations.KiePMMLTransformationDictionary)7 KiePMMLDefineFunction (org.kie.pmml.commons.transformations.KiePMMLDefineFunction)6 Collections (java.util.Collections)4 List (java.util.List)4 ArrayList (java.util.ArrayList)3 HashMap (java.util.HashMap)3 Map (java.util.Map)3 Collectors (java.util.stream.Collectors)3 IntStream (java.util.stream.IntStream)3