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);
        }
示例#4
0
        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);
        }