Search in sources :

Example 11 with MiningField

use of org.kie.pmml.api.models.MiningField in project drools by kiegroup.

the class KiePMMLModelFactoryUtilsTest method commonVerifyMiningFieldsObjectCreation.

private void commonVerifyMiningFieldsObjectCreation(List<Expression> toVerify, List<MiningField> miningFields) {
    toVerify.forEach(expression -> {
        assertTrue(expression instanceof ObjectCreationExpr);
        ObjectCreationExpr objCrt = (ObjectCreationExpr) expression;
        assertEquals(MiningField.class.getCanonicalName(), objCrt.getType().asString());
        Optional<MiningField> miningFieldOpt = miningFields.stream().filter(miningField -> miningField.getName().equals(objCrt.getArgument(0).asStringLiteralExpr().asString())).findFirst();
        assertTrue(miningFieldOpt.isPresent());
        MiningField miningField = miningFieldOpt.get();
        assertEquals(MiningField.class.getCanonicalName(), objCrt.getType().asString());
        String expected = miningField.getUsageType() != null ? FIELD_USAGE_TYPE.class.getCanonicalName() + "." + miningField.getUsageType() : "null";
        assertEquals(expected, objCrt.getArgument(1).toString());
        expected = miningField.getOpType() != null ? OP_TYPE.class.getCanonicalName() + "." + miningField.getOpType() : "null";
        assertEquals(expected, objCrt.getArgument(2).toString());
        expected = miningField.getDataType() != null ? DATA_TYPE.class.getCanonicalName() + "." + miningField.getDataType() : "null";
        assertEquals(expected, objCrt.getArgument(3).toString());
        expected = miningField.getMissingValueTreatmentMethod() != null ? MISSING_VALUE_TREATMENT_METHOD.class.getCanonicalName() + "." + miningField.getMissingValueTreatmentMethod() : "null";
        assertEquals(expected, objCrt.getArgument(4).toString());
        expected = miningField.getInvalidValueTreatmentMethod() != null ? INVALID_VALUE_TREATMENT_METHOD.class.getCanonicalName() + "." + miningField.getInvalidValueTreatmentMethod() : "null";
        assertEquals(expected, objCrt.getArgument(5).toString());
        expected = miningField.getMissingValueReplacement() != null ? miningField.getMissingValueReplacement() : "null";
        assertEquals(expected, objCrt.getArgument(6).asStringLiteralExpr().asString());
        expected = miningField.getInvalidValueReplacement() != null ? miningField.getInvalidValueReplacement() : "null";
        assertEquals(expected, objCrt.getArgument(7).asStringLiteralExpr().asString());
        MethodCallExpr allowedValuesMethod = objCrt.getArgument(8).asMethodCallExpr();
        IntStream.range(0, 3).forEach(i -> {
            String exp = miningField.getAllowedValues().get(i);
            assertEquals(exp, allowedValuesMethod.getArgument(i).asStringLiteralExpr().asString());
        });
        MethodCallExpr intervalsMethod = objCrt.getArgument(9).asMethodCallExpr();
        IntStream.range(0, 3).forEach(i -> {
            Interval interval = miningField.getIntervals().get(i);
            ObjectCreationExpr objectCreationExpr = intervalsMethod.getArgument(i).asObjectCreationExpr();
            String exp = interval.getLeftMargin().toString();
            assertEquals(exp, objectCreationExpr.getArgument(0).asNameExpr().toString());
            exp = interval.getRightMargin().toString();
            assertEquals(exp, objectCreationExpr.getArgument(1).asNameExpr().toString());
        });
    });
}
Also used : ObjectCreationExpr(com.github.javaparser.ast.expr.ObjectCreationExpr) RESULT_FEATURE(org.kie.pmml.api.enums.RESULT_FEATURE) Arrays(java.util.Arrays) Spliterators(java.util.Spliterators) Random(java.util.Random) OP_TYPE(org.kie.pmml.api.enums.OP_TYPE) FIELD_USAGE_TYPE(org.kie.pmml.api.enums.FIELD_USAGE_TYPE) GET_CREATED_MININGFIELDS(org.kie.pmml.compiler.commons.codegenfactories.KiePMMLModelFactoryUtils.GET_CREATED_MININGFIELDS) KiePMMLUtil(org.kie.pmml.compiler.commons.utils.KiePMMLUtil) ConstructorDeclaration(com.github.javaparser.ast.body.ConstructorDeclaration) NullLiteralExpr(com.github.javaparser.ast.expr.NullLiteralExpr) GET_CREATED_LOCAL_TRANSFORMATIONS(org.kie.pmml.compiler.commons.codegenfactories.KiePMMLModelFactoryUtils.GET_CREATED_LOCAL_TRANSFORMATIONS) GET_CREATED_TRANSFORMATION_DICTIONARY(org.kie.pmml.compiler.commons.codegenfactories.KiePMMLModelFactoryUtils.GET_CREATED_TRANSFORMATION_DICTIONARY) ObjectCreationExpr(com.github.javaparser.ast.expr.ObjectCreationExpr) GET_CREATED_OUTPUTFIELDS(org.kie.pmml.compiler.commons.codegenfactories.KiePMMLModelFactoryUtils.GET_CREATED_OUTPUTFIELDS) GET_CREATED_KIEPMMLOUTPUTFIELDS(org.kie.pmml.compiler.commons.codegenfactories.KiePMMLModelFactoryUtils.GET_CREATED_KIEPMMLOUTPUTFIELDS) Expression(com.github.javaparser.ast.expr.Expression) Assert.fail(org.junit.Assert.fail) CompilationUnit(com.github.javaparser.ast.CompilationUnit) Interval(org.kie.pmml.api.models.Interval) ModelUtils(org.kie.pmml.compiler.api.utils.ModelUtils) NodeList(com.github.javaparser.ast.NodeList) PMML(org.dmg.pmml.PMML) CommonCodegenUtils(org.kie.pmml.compiler.commons.utils.CommonCodegenUtils) KiePMMLTargetValue(org.kie.pmml.commons.model.KiePMMLTargetValue) GET_CREATED_KIEPMMLTARGETS(org.kie.pmml.compiler.commons.codegenfactories.KiePMMLModelFactoryUtils.GET_CREATED_KIEPMMLTARGETS) MethodCallExpr(com.github.javaparser.ast.expr.MethodCallExpr) TreeModel(org.dmg.pmml.tree.TreeModel) Collectors(java.util.stream.Collectors) ExplicitConstructorInvocationStmt(com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt) FileUtils.getFileContent(org.kie.test.util.filesystem.FileUtils.getFileContent) List(java.util.List) Stream(java.util.stream.Stream) CommonCompilationDTO(org.kie.pmml.compiler.api.dto.CommonCompilationDTO) Optional(java.util.Optional) BlockStmt(com.github.javaparser.ast.stmt.BlockStmt) Spliterator(java.util.Spliterator) ClassOrInterfaceDeclaration(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration) IntStream(java.util.stream.IntStream) ExpressionStmt(com.github.javaparser.ast.stmt.ExpressionStmt) BeforeClass(org.junit.BeforeClass) OutputField(org.kie.pmml.api.models.OutputField) JavaParserUtils.getFromFileName(org.kie.pmml.compiler.commons.utils.JavaParserUtils.getFromFileName) TargetField(org.kie.pmml.api.models.TargetField) MiningField(org.kie.pmml.api.models.MiningField) CAST_INTEGER(org.kie.pmml.api.enums.CAST_INTEGER) StreamSupport(java.util.stream.StreamSupport) GET_CREATED_KIEPMMLMININGFIELDS(org.kie.pmml.compiler.commons.codegenfactories.KiePMMLModelFactoryUtils.GET_CREATED_KIEPMMLMININGFIELDS) MISSING_VALUE_TREATMENT_METHOD(org.kie.pmml.api.enums.MISSING_VALUE_TREATMENT_METHOD) Before(org.junit.Before) INVALID_VALUE_TREATMENT_METHOD(org.kie.pmml.api.enums.INVALID_VALUE_TREATMENT_METHOD) CompilationDTO(org.kie.pmml.compiler.api.dto.CompilationDTO) JavaParserUtils(org.kie.pmml.compiler.commons.utils.JavaParserUtils) PACKAGE_NAME(org.kie.pmml.commons.Constants.PACKAGE_NAME) CommonCodegenUtils.getChainedMethodCallExprFrom(org.kie.pmml.compiler.commons.utils.CommonCodegenUtils.getChainedMethodCallExprFrom) Assert.assertNotNull(org.junit.Assert.assertNotNull) PMMLModelTestUtils.getRandomOpType(org.kie.pmml.compiler.api.testutils.PMMLModelTestUtils.getRandomOpType) Assert.assertTrue(org.junit.Assert.assertTrue) IOException(java.io.IOException) Test(org.junit.Test) NameExpr(com.github.javaparser.ast.expr.NameExpr) PMMLModelTestUtils.getRandomDataField(org.kie.pmml.compiler.api.testutils.PMMLModelTestUtils.getRandomDataField) Statement(com.github.javaparser.ast.stmt.Statement) DATA_TYPE(org.kie.pmml.api.enums.DATA_TYPE) PMMLModelTestUtils.getRandomOutputField(org.kie.pmml.compiler.api.testutils.PMMLModelTestUtils.getRandomOutputField) PMMLModelTestUtils.getRandomTarget(org.kie.pmml.compiler.api.testutils.PMMLModelTestUtils.getRandomTarget) KiePMMLTarget(org.kie.pmml.commons.model.KiePMMLTarget) FileUtils.getFileInputStream(org.kie.test.util.filesystem.FileUtils.getFileInputStream) MethodDeclaration(com.github.javaparser.ast.body.MethodDeclaration) CodegenTestUtils.commonValidateCompilationWithImports(org.kie.pmml.compiler.commons.testutils.CodegenTestUtils.commonValidateCompilationWithImports) PMMLModelTestUtils.getRandomCastInteger(org.kie.pmml.compiler.api.testutils.PMMLModelTestUtils.getRandomCastInteger) PMMLModelTestUtils.getRandomMiningField(org.kie.pmml.compiler.api.testutils.PMMLModelTestUtils.getRandomMiningField) HasClassLoaderMock(org.kie.pmml.compiler.commons.mocks.HasClassLoaderMock) GET_MODEL(org.kie.pmml.commons.Constants.GET_MODEL) Collections(java.util.Collections) Assert.assertEquals(org.junit.Assert.assertEquals) TargetValue(org.kie.pmml.api.models.TargetValue) MiningField(org.kie.pmml.api.models.MiningField) PMMLModelTestUtils.getRandomMiningField(org.kie.pmml.compiler.api.testutils.PMMLModelTestUtils.getRandomMiningField) FIELD_USAGE_TYPE(org.kie.pmml.api.enums.FIELD_USAGE_TYPE) MethodCallExpr(com.github.javaparser.ast.expr.MethodCallExpr) Interval(org.kie.pmml.api.models.Interval)

Example 12 with MiningField

use of org.kie.pmml.api.models.MiningField in project drools by kiegroup.

the class BUILTIN_FUNCTIONSTest method getSupportedValueEmptyInput.

@Test
public void getSupportedValueEmptyInput() {
    final Object[] input = {};
    supportedBuiltinFunctions.forEach(builtinFunction -> {
        try {
            builtinFunction.getValue(input, new MiningField(null, null, null, null, null, null, null, null, null, null));
            fail("Expecting IllegalArgumentException");
        } catch (Exception e) {
            assertTrue(e instanceof IllegalArgumentException);
        }
    });
}
Also used : MiningField(org.kie.pmml.api.models.MiningField) KiePMMLException(org.kie.pmml.api.exceptions.KiePMMLException) Test(org.junit.Test)

Example 13 with MiningField

use of org.kie.pmml.api.models.MiningField in project drools by kiegroup.

the class BooleanFunctionsTest method getIsValidValueWrongSizeInput.

@Test(expected = IllegalArgumentException.class)
public void getIsValidValueWrongSizeInput() {
    final Object[] input = { 34, 34 };
    MiningField referredByFieldRef = getReferredByFieldRef(null, null, Arrays.asList(new Interval(20, 29), new Interval(30, 40), new Interval(41, 50)));
    BooleanFunctions.IS_VALID.getValue(input, referredByFieldRef);
}
Also used : MiningField(org.kie.pmml.api.models.MiningField) Interval(org.kie.pmml.api.models.Interval) Test(org.junit.Test)

Example 14 with MiningField

use of org.kie.pmml.api.models.MiningField in project drools by kiegroup.

the class BooleanFunctionsTest method getIsValidValueCorrectInput.

@Test
public void getIsValidValueCorrectInput() {
    Object[] input1 = { 35 };
    MiningField referredByFieldRef = getReferredByFieldRef(null, null, Arrays.asList(new Interval(20, 29), new Interval(30, 40), new Interval(41, 50)));
    Object retrieved = BooleanFunctions.IS_VALID.getValue(input1, referredByFieldRef);
    assertTrue((boolean) retrieved);
    referredByFieldRef = getReferredByFieldRef(null, null, Arrays.asList(new Interval(20, 29), new Interval(41, 50)));
    retrieved = BooleanFunctions.IS_VALID.getValue(input1, referredByFieldRef);
    assertFalse((boolean) retrieved);
    referredByFieldRef = getReferredByFieldRef(null, Arrays.asList("123", "35"), Arrays.asList(new Interval(20, 29), new Interval(41, 50)));
    retrieved = BooleanFunctions.IS_VALID.getValue(input1, referredByFieldRef);
    assertTrue((boolean) retrieved);
    referredByFieldRef = getReferredByFieldRef(null, Arrays.asList("123", "36"), Arrays.asList(new Interval(20, 29), new Interval(41, 50)));
    retrieved = BooleanFunctions.IS_VALID.getValue(input1, referredByFieldRef);
    assertFalse((boolean) retrieved);
    Object[] input2 = { "VALUE" };
    referredByFieldRef = getReferredByFieldRef(null, Arrays.asList("123", "VALUE"), Collections.emptyList());
    retrieved = BooleanFunctions.IS_VALID.getValue(input2, referredByFieldRef);
    assertTrue((boolean) retrieved);
    referredByFieldRef = getReferredByFieldRef(null, Arrays.asList("123", "VELUE"), Collections.emptyList());
    retrieved = BooleanFunctions.IS_VALID.getValue(input2, referredByFieldRef);
    assertFalse((boolean) retrieved);
    Object[] input3 = { null };
    retrieved = BooleanFunctions.IS_VALID.getValue(input3, referredByFieldRef);
    assertFalse((boolean) retrieved);
}
Also used : MiningField(org.kie.pmml.api.models.MiningField) Interval(org.kie.pmml.api.models.Interval) Test(org.junit.Test)

Example 15 with MiningField

use of org.kie.pmml.api.models.MiningField in project drools by kiegroup.

the class BooleanFunctionsTest method getIsNotMissingValueCorrectInput.

@Test
public void getIsNotMissingValueCorrectInput() {
    Object[] input1 = { 35 };
    Object retrieved = BooleanFunctions.IS_NOT_MISSING.getValue(input1, EMPTY_MINING_FIELD);
    assertTrue((boolean) retrieved);
    Object[] input2 = { null };
    retrieved = BooleanFunctions.IS_NOT_MISSING.getValue(input2, EMPTY_MINING_FIELD);
    assertFalse((boolean) retrieved);
    for (INVALID_VALUE_TREATMENT_METHOD invalidValueTreatmentMethod : INVALID_VALUE_TREATMENT_METHOD.values()) {
        MiningField referredByFieldRef = getReferredByFieldRef(invalidValueTreatmentMethod, null, Arrays.asList(new Interval(20, 29), new Interval(41, 50)));
        boolean expected = !INVALID_VALUE_TREATMENT_METHOD.AS_MISSING.equals(invalidValueTreatmentMethod);
        assertEquals(expected, BooleanFunctions.IS_NOT_MISSING.getValue(input1, referredByFieldRef));
    }
}
Also used : MiningField(org.kie.pmml.api.models.MiningField) INVALID_VALUE_TREATMENT_METHOD(org.kie.pmml.api.enums.INVALID_VALUE_TREATMENT_METHOD) Interval(org.kie.pmml.api.models.Interval) Test(org.junit.Test)

Aggregations

MiningField (org.kie.pmml.api.models.MiningField)18 Test (org.junit.Test)14 Interval (org.kie.pmml.api.models.Interval)11 INVALID_VALUE_TREATMENT_METHOD (org.kie.pmml.api.enums.INVALID_VALUE_TREATMENT_METHOD)8 List (java.util.List)7 Collections (java.util.Collections)6 Collectors (java.util.stream.Collectors)6 DATA_TYPE (org.kie.pmml.api.enums.DATA_TYPE)6 Arrays (java.util.Arrays)5 Optional (java.util.Optional)5 IntStream (java.util.stream.IntStream)5 Assert.assertEquals (org.junit.Assert.assertEquals)5 Assert.assertTrue (org.junit.Assert.assertTrue)5 ConstructorDeclaration (com.github.javaparser.ast.body.ConstructorDeclaration)4 Expression (com.github.javaparser.ast.expr.Expression)4 MethodCallExpr (com.github.javaparser.ast.expr.MethodCallExpr)4 NameExpr (com.github.javaparser.ast.expr.NameExpr)4 NullLiteralExpr (com.github.javaparser.ast.expr.NullLiteralExpr)4 BlockStmt (com.github.javaparser.ast.stmt.BlockStmt)4 ArrayList (java.util.ArrayList)4