public void Conclude_containsNumberIsOneCondition_DontCareConclusionWhenGivenATwo() { TransformationRule<int> rule = new TransformationRule<int>(); rule.AddPremise(i => i == 1, new Conclusion("Not used")); Assert.IsInstanceOf<DontCareConclusion>(rule.Conclude(2)); }
public void Conclude_containsNumberIsOneCondition_CorrectConclusionWhenGivenOne() { TransformationRule<int> rule = new TransformationRule<int>(); rule.AddPremise(i => i == 1, new Conclusion("correct")); string expected = "correct"; string actual = rule.Conclude(1).ToString(); Assert.AreEqual(expected, actual); }
public void Conclude_containsTwoCondradictionaryConclusions_RaiseException() { TransformationRule<int> rule = new TransformationRule<int>(); rule.AddPremise(i => i == 1, new Conclusion("Correct")); rule.AddPremise(i => i == 1, new Conclusion("Not Correct")); bool exceptionthrown = false; Exception exception = null; try { rule.Conclude(1); } catch (MultiConclusionException e) { exceptionthrown = true; exception = e; } Assert.IsTrue(exceptionthrown); Assert.IsInstanceOf<MultiConclusionException>(exception); }
public void Conclude_aLowPriorityAndAHighPrioryWhereHighPriorityHaveNoOpinion_ConcludeBasedOnTheLowPrioritiesRules() { TransformationRule<int> lowpriority = new TransformationRule<int>(); TransformationRule<int> highpriority = new TransformationRule<int>(); RuleHierarchy<string, int> hierarch = new RuleHierarchy<string, int>(); hierarch.AddLayer("low priority", lowpriority); hierarch.AddLayer("high priority", highpriority); lowpriority.AddPremise(i => i == 1, new Conclusion("not correct")); string expected = "not correct"; string actual = hierarch.Conclude(1).ToString(); Assert.AreEqual(expected, actual); }