public void addConstraintMatch(boolean constraintMatchEnabled) { HardSoftScoreHolder scoreHolder = new HardSoftScoreHolder(constraintMatchEnabled); scoreHolder.addHardConstraintMatch(mockRuleContext("scoreRule1"), -1000); RuleContext ruleContext2 = mockRuleContext("scoreRule2"); scoreHolder.addHardConstraintMatch(ruleContext2, -200); callUnMatch(ruleContext2); RuleContext ruleContext3 = mockRuleContext("scoreRule3"); scoreHolder.addSoftConstraintMatch(ruleContext3, -30); scoreHolder.addSoftConstraintMatch(ruleContext3, -3); // Overwrite existing scoreHolder.addHardConstraintMatch(ruleContext3, -300); // Different score level scoreHolder.addHardConstraintMatch(ruleContext3, -400); // Overwrite existing RuleContext ruleContext4 = mockRuleContext("scoreRule4"); scoreHolder.addHardConstraintMatch(ruleContext4, -1); scoreHolder.addSoftConstraintMatch(ruleContext4, -1); callUnMatch(ruleContext4); assertEquals(HardSoftScore.valueOf(-1400, -3), scoreHolder.extractScore()); if (constraintMatchEnabled) { assertEquals(6, scoreHolder.getConstraintMatchTotals().size()); } }
public void addConstraintMatch(boolean constraintMatchEnabled) { HardSoftDoubleScoreHolder scoreHolder = new HardSoftDoubleScoreHolder(constraintMatchEnabled); scoreHolder.addHardConstraintMatch(createRuleContext("scoreRule1"), -10.00); // Rule match added RuleContext ruleContext2 = createRuleContext("scoreRule2"); scoreHolder.addHardConstraintMatch(ruleContext2, -2.00); // Rule match added callUnMatch(ruleContext2); // Rule match removed RuleContext ruleContext3 = createRuleContext("scoreRule3"); scoreHolder.addSoftConstraintMatch(ruleContext3, -0.30); // Rule match added scoreHolder.addSoftConstraintMatch(ruleContext3, -0.06); // Rule match modified assertEquals(HardSoftDoubleScore.valueOf(-10.00, -0.06), scoreHolder.extractScore()); if (constraintMatchEnabled) { assertEquals(3, scoreHolder.getConstraintMatchTotals().size()); } }