Search in sources :

Example 6 with KiePMMLInterval

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

the class PreProcessTest method verifyAddMissingValuesNotMissingNotReturnInvalidReplacement.

@Test
public void verifyAddMissingValuesNotMissingNotReturnInvalidReplacement() {
    KiePMMLMiningField miningField0 = KiePMMLMiningField.builder("FIELD-0", null).withDataType(DATA_TYPE.STRING).withMissingValueTreatmentMethod(MISSING_VALUE_TREATMENT_METHOD.AS_IS).withMissingValueReplacement("123").withAllowedValues(Arrays.asList("123", "124", "125")).build();
    KiePMMLMiningField miningField1 = KiePMMLMiningField.builder("FIELD-1", null).withDataType(DATA_TYPE.DOUBLE).withMissingValueTreatmentMethod(MISSING_VALUE_TREATMENT_METHOD.AS_IS).withMissingValueReplacement("1.23").withAllowedValues(Arrays.asList("1.23", "12.4", "1.25")).build();
    List<KiePMMLInterval> intervals = Arrays.asList(new KiePMMLInterval(0.0, 12.4, CLOSURE.CLOSED_CLOSED), new KiePMMLInterval(12.6, 14.5, CLOSURE.OPEN_CLOSED));
    KiePMMLMiningField miningField2 = KiePMMLMiningField.builder("FIELD-2", null).withDataType(DATA_TYPE.FLOAT).withMissingValueTreatmentMethod(MISSING_VALUE_TREATMENT_METHOD.AS_IS).withMissingValueReplacement("12.9").withIntervals(intervals).build();
    List<KiePMMLMiningField> miningFields = Arrays.asList(miningField0, miningField1, miningField2);
    PMMLRequestData pmmlRequestData = new PMMLRequestData("123", "modelName");
    assertTrue(pmmlRequestData.getRequestParams().isEmpty());
    PreProcess.verifyAddMissingValues(miningFields, pmmlRequestData);
    Map<String, ParameterInfo> mappedRequestParams = pmmlRequestData.getMappedRequestParams();
    assertEquals(miningFields.size(), mappedRequestParams.size());
    assertEquals("123", mappedRequestParams.get("FIELD-0").getValue());
    assertEquals(1.23, mappedRequestParams.get("FIELD-1").getValue());
    assertEquals(12.9f, mappedRequestParams.get("FIELD-2").getValue());
}
Also used : PMMLRequestData(org.kie.api.pmml.PMMLRequestData) KiePMMLInterval(org.kie.pmml.commons.model.expressions.KiePMMLInterval) ParameterInfo(org.kie.api.pmml.ParameterInfo) KiePMMLMiningField(org.kie.pmml.commons.model.KiePMMLMiningField) Test(org.junit.Test)

Example 7 with KiePMMLInterval

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

the class KiePMMLIntervalInstanceFactoryTest method getKiePMMLInterval.

@Test
public void getKiePMMLInterval() {
    Interval toConvert = getRandomInterval();
    KiePMMLInterval retrieved = KiePMMLIntervalInstanceFactory.getKiePMMLInterval(toConvert);
    commonVerifyKiePMMLInterval(retrieved, toConvert);
}
Also used : InstanceFactoriesTestCommon.commonVerifyKiePMMLInterval(org.kie.pmml.compiler.commons.factories.InstanceFactoriesTestCommon.commonVerifyKiePMMLInterval) KiePMMLInterval(org.kie.pmml.commons.model.expressions.KiePMMLInterval) Interval(org.dmg.pmml.Interval) InstanceFactoriesTestCommon.commonVerifyKiePMMLInterval(org.kie.pmml.compiler.commons.factories.InstanceFactoriesTestCommon.commonVerifyKiePMMLInterval) KiePMMLInterval(org.kie.pmml.commons.model.expressions.KiePMMLInterval) PMMLModelTestUtils.getRandomInterval(org.kie.pmml.compiler.api.testutils.PMMLModelTestUtils.getRandomInterval) Test(org.junit.Test)

Example 8 with KiePMMLInterval

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

the class PreProcessTest method verifyFixInvalidValuesInvalidAsMissing.

@Test
public void verifyFixInvalidValuesInvalidAsMissing() {
    KiePMMLMiningField miningField0 = KiePMMLMiningField.builder("FIELD-0", null).withDataType(DATA_TYPE.STRING).withInvalidValueTreatmentMethod(INVALID_VALUE_TREATMENT_METHOD.AS_MISSING).withAllowedValues(Arrays.asList("123", "124", "125")).build();
    KiePMMLMiningField miningField1 = KiePMMLMiningField.builder("FIELD-1", null).withDataType(DATA_TYPE.DOUBLE).withInvalidValueTreatmentMethod(INVALID_VALUE_TREATMENT_METHOD.AS_MISSING).withAllowedValues(Arrays.asList("1.23", "12.4", "1.25")).build();
    List<KiePMMLInterval> intervals = Arrays.asList(new KiePMMLInterval(0.0, 12.4, CLOSURE.CLOSED_CLOSED), new KiePMMLInterval(12.6, 14.5, CLOSURE.OPEN_CLOSED));
    KiePMMLMiningField miningField2 = KiePMMLMiningField.builder("FIELD-2", null).withDataType(DATA_TYPE.DOUBLE).withInvalidValueTreatmentMethod(INVALID_VALUE_TREATMENT_METHOD.AS_MISSING).withIntervals(intervals).build();
    List<KiePMMLMiningField> miningFields = Arrays.asList(miningField0, miningField1, miningField2);
    PMMLRequestData pmmlRequestData = new PMMLRequestData("123", "modelName");
    pmmlRequestData.addRequestParam("FIELD-0", "122");
    pmmlRequestData.addRequestParam("FIELD-1", 12.5);
    pmmlRequestData.addRequestParam("FIELD-2", 14.6);
    PreProcess.verifyFixInvalidValues(miningFields, pmmlRequestData);
    assertTrue(pmmlRequestData.getRequestParams().isEmpty());
}
Also used : PMMLRequestData(org.kie.api.pmml.PMMLRequestData) KiePMMLInterval(org.kie.pmml.commons.model.expressions.KiePMMLInterval) KiePMMLMiningField(org.kie.pmml.commons.model.KiePMMLMiningField) Test(org.junit.Test)

Example 9 with KiePMMLInterval

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

the class PreProcessTest method verifyFixInvalidValuesInvalidAsValueWithoutReplacement.

@Test(expected = KiePMMLException.class)
public void verifyFixInvalidValuesInvalidAsValueWithoutReplacement() {
    KiePMMLMiningField miningField0 = KiePMMLMiningField.builder("FIELD-0", null).withDataType(DATA_TYPE.STRING).withInvalidValueTreatmentMethod(INVALID_VALUE_TREATMENT_METHOD.AS_VALUE).withAllowedValues(Arrays.asList("123", "124", "125")).build();
    KiePMMLMiningField miningField1 = KiePMMLMiningField.builder("FIELD-1", null).withDataType(DATA_TYPE.DOUBLE).withInvalidValueTreatmentMethod(INVALID_VALUE_TREATMENT_METHOD.AS_VALUE).withAllowedValues(Arrays.asList("1.23", "12.4", "1.25")).build();
    List<KiePMMLInterval> intervals = Arrays.asList(new KiePMMLInterval(0.0, 12.4, CLOSURE.CLOSED_CLOSED), new KiePMMLInterval(12.6, 14.5, CLOSURE.OPEN_CLOSED));
    KiePMMLMiningField miningField2 = KiePMMLMiningField.builder("FIELD-2", null).withDataType(DATA_TYPE.DOUBLE).withInvalidValueTreatmentMethod(INVALID_VALUE_TREATMENT_METHOD.AS_VALUE).withIntervals(intervals).build();
    List<KiePMMLMiningField> miningFields = Arrays.asList(miningField0, miningField1, miningField2);
    PMMLRequestData pmmlRequestData = new PMMLRequestData("123", "modelName");
    pmmlRequestData.addRequestParam("FIELD-0", "122");
    pmmlRequestData.addRequestParam("FIELD-1", 12.5);
    pmmlRequestData.addRequestParam("FIELD-2", 14.6);
    PreProcess.verifyFixInvalidValues(miningFields, pmmlRequestData);
}
Also used : PMMLRequestData(org.kie.api.pmml.PMMLRequestData) KiePMMLInterval(org.kie.pmml.commons.model.expressions.KiePMMLInterval) KiePMMLMiningField(org.kie.pmml.commons.model.KiePMMLMiningField) Test(org.junit.Test)

Example 10 with KiePMMLInterval

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

the class PreProcessTest method verifyFixInvalidValuesInvalidAsValueWithReplacement.

@Test
public void verifyFixInvalidValuesInvalidAsValueWithReplacement() {
    KiePMMLMiningField miningField0 = KiePMMLMiningField.builder("FIELD-0", null).withDataType(DATA_TYPE.STRING).withInvalidValueTreatmentMethod(INVALID_VALUE_TREATMENT_METHOD.AS_VALUE).withInvalidValueReplacement("123").withAllowedValues(Arrays.asList("123", "124", "125")).build();
    KiePMMLMiningField miningField1 = KiePMMLMiningField.builder("FIELD-1", null).withDataType(DATA_TYPE.DOUBLE).withInvalidValueTreatmentMethod(INVALID_VALUE_TREATMENT_METHOD.AS_VALUE).withInvalidValueReplacement("1.23").withAllowedValues(Arrays.asList("1.23", "12.4", "1.25")).build();
    List<KiePMMLInterval> intervals = Arrays.asList(new KiePMMLInterval(0.0, 12.4, CLOSURE.CLOSED_CLOSED), new KiePMMLInterval(12.6, 14.5, CLOSURE.OPEN_CLOSED));
    KiePMMLMiningField miningField2 = KiePMMLMiningField.builder("FIELD-2", null).withDataType(DATA_TYPE.DOUBLE).withInvalidValueTreatmentMethod(INVALID_VALUE_TREATMENT_METHOD.AS_VALUE).withInvalidValueReplacement("12.3").withIntervals(intervals).build();
    List<KiePMMLMiningField> miningFields = Arrays.asList(miningField0, miningField1, miningField2);
    PMMLRequestData pmmlRequestData = new PMMLRequestData("123", "modelName");
    pmmlRequestData.addRequestParam("FIELD-0", "122");
    pmmlRequestData.addRequestParam("FIELD-1", 12.5);
    pmmlRequestData.addRequestParam("FIELD-2", 14.6);
    PreProcess.verifyFixInvalidValues(miningFields, pmmlRequestData);
    Map<String, ParameterInfo> mappedRequestParams = pmmlRequestData.getMappedRequestParams();
    assertEquals("123", mappedRequestParams.get("FIELD-0").getValue());
    assertEquals(1.23, mappedRequestParams.get("FIELD-1").getValue());
    assertEquals(12.3, mappedRequestParams.get("FIELD-2").getValue());
}
Also used : PMMLRequestData(org.kie.api.pmml.PMMLRequestData) KiePMMLInterval(org.kie.pmml.commons.model.expressions.KiePMMLInterval) ParameterInfo(org.kie.api.pmml.ParameterInfo) KiePMMLMiningField(org.kie.pmml.commons.model.KiePMMLMiningField) Test(org.junit.Test)

Aggregations

KiePMMLInterval (org.kie.pmml.commons.model.expressions.KiePMMLInterval)10 Test (org.junit.Test)8 KiePMMLMiningField (org.kie.pmml.commons.model.KiePMMLMiningField)8 PMMLRequestData (org.kie.api.pmml.PMMLRequestData)7 ParameterInfo (org.kie.api.pmml.ParameterInfo)3 DataField (org.dmg.pmml.DataField)1 Interval (org.dmg.pmml.Interval)1 DATA_TYPE (org.kie.pmml.api.enums.DATA_TYPE)1 FIELD_USAGE_TYPE (org.kie.pmml.api.enums.FIELD_USAGE_TYPE)1 INVALID_VALUE_TREATMENT_METHOD (org.kie.pmml.api.enums.INVALID_VALUE_TREATMENT_METHOD)1 MISSING_VALUE_TREATMENT_METHOD (org.kie.pmml.api.enums.MISSING_VALUE_TREATMENT_METHOD)1 OP_TYPE (org.kie.pmml.api.enums.OP_TYPE)1 KiePMMLDiscretizeBin (org.kie.pmml.commons.model.expressions.KiePMMLDiscretizeBin)1 PMMLModelTestUtils.getRandomInterval (org.kie.pmml.compiler.api.testutils.PMMLModelTestUtils.getRandomInterval)1 InstanceFactoriesTestCommon.commonVerifyKiePMMLInterval (org.kie.pmml.compiler.commons.factories.InstanceFactoriesTestCommon.commonVerifyKiePMMLInterval)1