private void setBooleanPredicate(Attribute pmmlAttribute, String field, String predicateAsString) { SimplePredicate simplePredicate = new SimplePredicate(); simplePredicate.setField(field); simplePredicate.setOperator(PMMLOperators.EQUAL); if ("TRUE".equalsIgnoreCase(predicateAsString)){ simplePredicate.setValue("TRUE"); } else if ("FALSE".equalsIgnoreCase(predicateAsString)){ simplePredicate.setValue("FALSE"); } pmmlAttribute.setSimplePredicate(simplePredicate); }
public SimpleSegmentPredicate(SimplePredicate predicate) { this.baseFieldName = predicate.getField(); this.operator = predicate.getOperator(); this.value = predicate.getValue(); this.stringLiteralValue = checkValueForStringLiteral(this.value); if (this.operator == null) { throw new IllegalStateException("PMML - SimplePredicate: Missing operator"); } }
@Before public void setUp() throws Exception { predicate = new SimplePredicate(); predicate.setField("TF2"); predicate.setValue("123"); stringPred = new SimplePredicate(); stringPred.setField("TF3"); stringPred.setValue("optA"); }
@Test(expected=IllegalStateException.class) public void testBadOperator() { predicate.setOperator(BAD_OP); SimpleSegmentPredicate ssp = new SimpleSegmentPredicate(predicate); String text = ssp.getPredicateRule(); assertNull(text); }
/** * Create an instance of {@link SimplePredicate } * */ public SimplePredicate createSimplePredicate() { return new SimplePredicate(); }
public static String extractFieldNameFromCharacteristic(Characteristic c) { String field = ""; Attribute scoreAttribute = c.getAttributes().get(0); if (scoreAttribute.getSimplePredicate() != null) { field = scoreAttribute.getSimplePredicate().getField(); } else if (scoreAttribute.getSimpleSetPredicate() != null) { field = scoreAttribute.getSimpleSetPredicate().getField(); } else if (scoreAttribute.getCompoundPredicate() != null) { Object predicate = scoreAttribute.getCompoundPredicate().getSimplePredicatesAndCompoundPredicatesAndSimpleSetPredicates().get(0); if (predicate instanceof SimplePredicate){ field = ((SimplePredicate)predicate).getField(); } else if (predicate instanceof SimpleSetPredicate){ field = ((SimpleSetPredicate)predicate).getField(); } } return field; }
@Test public void testStringValue() { stringPred.setOperator(SimpleSegmentPredicate.EQUAL); SimpleSegmentPredicate ssp = new SimpleSegmentPredicate(stringPred); String text = ssp.getPredicateRule(); assertNotNull(text); assertEquals("( mTF3 == false ) && ( vTF3 == \"optA\" )",text); predicate.setOperator(SimpleSegmentPredicate.EQUAL); ssp = new SimpleSegmentPredicate(predicate); text = ssp.getPredicateRule(); assertNotNull(text); assertEquals("( mTF2 == false ) && ( vTF2 == 123 )",text); }
private void setupSimplePredicate(int index, String fieldName, String operator, String value) { if (index < 0 || index >= simplePredicate.length) { throw new IndexOutOfBoundsException("Invalid index for setting up SimplePredicate"); } simplePredicate[index] = new SimplePredicate(); simplePredicate[index].setField(fieldName); simplePredicate[index].setOperator(operator); simplePredicate[index].setValue(value); }
@Test public void testEquals() { predicate.setOperator(SimpleSegmentPredicate.EQUAL); SimpleSegmentPredicate ssp = new SimpleSegmentPredicate(predicate); String text = ssp.getPredicateRule(); assertNotNull(text); assertEquals("( mTF2 == false ) && ( vTF2 == 123 )",text); }
String left = predicateAsString.substring(0, predicateAsString.indexOf("-")).trim(); String right = predicateAsString.substring(predicateAsString.indexOf("-") + 1).trim(); SimplePredicate simplePredicate = new SimplePredicate(); simplePredicate.setField(field); simplePredicate.setOperator(PMMLOperators.GREATER_OR_EQUAL); simplePredicate.setValue(left); compoundPredicate.getSimplePredicatesAndCompoundPredicatesAndSimpleSetPredicates().add(simplePredicate); simplePredicate = new SimplePredicate(); simplePredicate.setField(field); simplePredicate.setOperator(PMMLOperators.LESS_THAN); simplePredicate.setValue(right); compoundPredicate.getSimplePredicatesAndCompoundPredicatesAndSimpleSetPredicates().add(simplePredicate); pmmlAttribute.setCompoundPredicate(compoundPredicate); } else { SimplePredicate simplePredicate = new SimplePredicate(); simplePredicate.setField(field); if (predicateAsString.startsWith("<=")) { simplePredicate.setOperator(PMMLOperators.LESS_OR_EQUAL); simplePredicate.setValue(predicateAsString.substring(3).trim()); } else if (predicateAsString.startsWith(">=")) { simplePredicate.setOperator(PMMLOperators.GREATER_OR_EQUAL); simplePredicate.setValue(predicateAsString.substring(3).trim()); } else if (predicateAsString.startsWith("=")) { simplePredicate.setOperator(PMMLOperators.EQUAL); simplePredicate.setValue(predicateAsString.substring(2).trim()); } else if (predicateAsString.startsWith("!=")) { simplePredicate.setOperator(PMMLOperators.NOT_EQUAL); simplePredicate.setValue(predicateAsString.substring(3).trim()); } else if (predicateAsString.startsWith("<")) {
@Test public void testLessThan() { predicate.setOperator(SimpleSegmentPredicate.LESSER); SimpleSegmentPredicate ssp = new SimpleSegmentPredicate(predicate); String text = ssp.getPredicateRule(); assertNotNull(text); assertEquals("( mTF2 == false ) && ( vTF2 < 123 )",text); }
pmmlAttribute.setSimpleSetPredicate(simpleSetPredicate); } else { SimplePredicate simplePredicate = new SimplePredicate(); simplePredicate.setField(field); if ("!=".equalsIgnoreCase(operator)) { simplePredicate.setOperator(PMMLOperators.NOT_EQUAL); } else { simplePredicate.setOperator(PMMLOperators.EQUAL); simplePredicate.setValue(predicateAsString); pmmlAttribute.setSimplePredicate(simplePredicate);
@Test public void testNotEquals() { predicate.setOperator(SimpleSegmentPredicate.NOT_EQUAL); SimpleSegmentPredicate ssp = new SimpleSegmentPredicate(predicate); String text = ssp.getPredicateRule(); assertNotNull(text); assertEquals("( mTF2 == false ) && ( vTF2 != 123 )",text); }
@Test public void testGreaterThan() { predicate.setOperator(SimpleSegmentPredicate.GREATER); SimpleSegmentPredicate ssp = new SimpleSegmentPredicate(predicate); String text = ssp.getPredicateRule(); assertNotNull(text); assertEquals("( mTF2 == false ) && ( vTF2 > 123 )",text); }
@Test public void testGreaterEqual() { predicate.setOperator(SimpleSegmentPredicate.GREATER_EQUAL); SimpleSegmentPredicate ssp = new SimpleSegmentPredicate(predicate); String text = ssp.getPredicateRule(); assertNotNull(text); assertEquals("( mTF2 == false ) && ( vTF2 >= 123 )",text); }
@Test public void testLesserEqual() { predicate.setOperator(SimpleSegmentPredicate.LESSER_EQUAL); SimpleSegmentPredicate ssp = new SimpleSegmentPredicate(predicate); String text = ssp.getPredicateRule(); assertNotNull(text); assertEquals("( mTF2 == false ) && ( vTF2 <= 123 )",text); }
@Test public void testMissing() { predicate.setOperator(SimpleSegmentPredicate.MISSING); SimpleSegmentPredicate ssp = new SimpleSegmentPredicate(predicate); String text = ssp.getPredicateRule(); assertNotNull(text); assertEquals("mTF2 == true",text); }
@Test public void testNotMissing() { predicate.setOperator(SimpleSegmentPredicate.NOT_MISSING); SimpleSegmentPredicate ssp = new SimpleSegmentPredicate(predicate); String text = ssp.getPredicateRule(); assertNotNull(text); assertEquals("mTF2 == false",text); }