예제 #1
0
        public void ValidateTestResults()
        {
            Console.WriteLine("Validate: {0}", TestCaseName);

            XElement xDocument = XElement.Load(Path.Combine(Properties.Settings.Default.TestsFolder, TestCaseName));

            int testCaseNumber = 0;

            foreach (XElement xTestCase in xDocument.Elements(TestCaseElementName))
            {
                Console.WriteLine("Test case {0}.", ++testCaseNumber);

                string       testCaseSource       = xTestCase.Element(SourceElementName).Value;
                CodeSentence testCaseCodeSentence = CodeSentence.Create(xTestCase.Element(CodeSentence.ElementName));

                CodeSentence[] codeSentences = Parser.Parse(testCaseSource);
                if (codeSentences == null ||
                    codeSentences.Length == 0)
                {
                    Console.WriteLine("*** Could not parse source.");
                }
                else if (codeSentences.Length > 1)
                {
                    Console.WriteLine("*** More than one CodeSentence returned by parser.");
                }
                else if (testCaseCodeSentence != codeSentences[0])
                {
                    Console.WriteLine("*** CodeSentence mismatch.");
                }
            }

            Console.WriteLine("Validate complete: {0}", TestCaseName);
        }
예제 #2
0
        public void ValidateTestResults()
        {
            Console.WriteLine("Validate: {0}", TestCaseName);

            var xDocument = XElement.Load(Path.Combine(_configuration["Paths:TestFolder"], TestCaseName));

            var testCaseNumber = 0;

            foreach (var xTestCase in xDocument.Elements(TestCaseElementName))
            {
                Console.WriteLine("Test case {0}.", ++testCaseNumber);

                var testCaseSource       = xTestCase.Element(SourceElementName).Value;
                var testCaseCodeSentence = CodeSentence.Create(xTestCase.Element(CodeSentence.ElementName));

                var codeSentences = Parser.Parse(testCaseSource);
                if (codeSentences == null || codeSentences.Length == 0)
                {
                    Console.WriteLine("*** Could not parse source.");
                }
                else if (codeSentences.Length > 1)
                {
                    Console.WriteLine("*** More than one CodeSentence returned by parser.");
                }
                else if (testCaseCodeSentence != codeSentences[0])
                {
                    Console.WriteLine("*** CodeSentence mismatch.");
                }
            }
            Console.WriteLine("Validate complete: {0}", TestCaseName);
        }
예제 #3
0
        public void CreateTestResults()
        {
            Program program = Program.Load(Path.Combine(Properties.Settings.Default.SamplesFolder, ProgramName));

            XElement xDocument =
                new XElement(RootElementName,
                             new XAttribute(ProgramNameAttributeName, ProgramName));

            foreach (Procedure procedure in program.Procedures)
            {
                foreach (Clause clause in procedure.Clauses)
                {
                    XElement xCodeSentence = clause.CodeSentence.ToXElement();

                    CodeSentence codeSentence = CodeSentence.Create(xCodeSentence);
                    Debug.Assert(codeSentence == clause.CodeSentence);

                    XElement xTest =
                        new XElement(TestCaseElementName,
                                     new XElement(SourceElementName, clause.ToString()),
                                     xCodeSentence);

                    xDocument.Add(xTest);
                }
            }

            xDocument.Save(Path.Combine(Properties.Settings.Default.TestsFolder, TestCaseName));
        }
예제 #4
0
        public void CreateTestResults()
        {
            var filename = Path.Combine(_configuration["Paths:SampleFolder"], ProgramName);

            if (!File.Exists(filename))
            {
                Console.WriteLine("File {0} not found, aborting", filename);
                return;
            }

            var program   = Prolog.Program.Load(filename);
            var xDocument = new XElement(RootElementName, new XAttribute(ProgramNameAttributeName, ProgramName));

            foreach (var procedure in program.Procedures)
            {
                foreach (var clause in procedure.Clauses)
                {
                    var xCodeSentence = clause.CodeSentence.ToXElement();

                    var codeSentence = CodeSentence.Create(xCodeSentence);
                    Debug.Assert(codeSentence == clause.CodeSentence);

                    var xTest = new XElement(TestCaseElementName, new XElement(SourceElementName, clause.ToString()), xCodeSentence);
                    xDocument.Add(xTest);
                }
            }
            xDocument.Save(Path.Combine(_configuration["Paths:TestFolder"], TestCaseName));
        }