Exemple #1
0
        static void Main(string[] args)
        {
            var perfectDisjunctionNormalForm = new PerfectDisjunctionNormalFormBinary(
                BitTools.GetOutputBool(KaterynaBodnarchukTask.KateBodnarchukCase));

            uint input  = uint.Parse(Console.ReadLine());
            bool result = perfectDisjunctionNormalForm.Evaluate(input);

            Console.WriteLine(result ? 1 : 0);
            Console.ReadKey();
        }
        public void TestPerfectDisjunctionNormalForm()
        {
            bool[] outputsBool = BitTools.GetOutputBool(KaterynaBodnarchukTask.KateBodnarchukCase);
            var    perfectDisjunctionNormalForm = new PerfectDisjunctionNormalFormBinary(outputsBool);
            var    perfectConjunctionNormalForm = new PerfectConjunctionNormalFormBinary(outputsBool);

            for (uint input = 0; input < BitTools.rowsCount; input++)
            {
                bool expected = outputsBool[input];
                bool actualPerfectDisjunctionNormalForm = perfectDisjunctionNormalForm.Evaluate(input);
                bool actualPerfectConjunctionNormalForm = perfectConjunctionNormalForm.Evaluate(input);
                Assert.AreEqual(expected, actualPerfectDisjunctionNormalForm);
                Assert.AreEqual(expected, actualPerfectConjunctionNormalForm);
            }
        }
        public void TestMethod1()
        {
            uint[]            outputIntegers = KaterynaBodnarchukTask.YouTubeCase;
            bool[]            output         = BitTools.GetOutputBool(outputIntegers);
            Func <uint, bool> perfectDisjunctionNormalFunction =
                new PerfectDisjunctionNormalFormBinary(output).Evaluate;
            Func <uint, bool> minimalDisjunctionalNormalFunction =
                value => ImplicantDisjunctionNormalForm.Evaluate(
                    PositiveMcCluskeyMethod.GetImplicantDisjunctionNormalForm(output),
                    value
                    );

            for (uint i = 0; i < BitTools.rowsCount; i++)
            {
                bool actual = output[i];
                Assert.AreEqual(actual, perfectDisjunctionNormalFunction(i));
                Assert.AreEqual(actual, minimalDisjunctionalNormalFunction(i));
            }
        }