Exemplo n.º 1
0
        public void VariousTests()
        {
            RegressionTest[] lRegressionTests =   {
                new RegressionTest( "#? [D17]", "D17", GTPRegressionResult.passed ),
                new RegressionTest( "#? [!D17]", "B8", GTPRegressionResult.passed ),
                new RegressionTest( "#? [B7|D17|X9]", "D17", GTPRegressionResult.passed ),
                new RegressionTest( "#? [!D17]", "D17", GTPRegressionResult.failed ),

                new RegressionTest( "#? [!D17]*", "D17", GTPRegressionResult.FAILED ),
                new RegressionTest( "#? [D17]*", "D17", GTPRegressionResult.PASSED ),
                new RegressionTest( "#? [D17]*", "=8 D17", GTPRegressionResult.PASSED )
            };

            foreach (RegressionTest lRegressionTest in lRegressionTests)
            {
                GTPRegressionPattern lGTPRegressionPattern = new GTPRegressionPattern(lRegressionTest.Pattern);
                GTPRegressionResult lResult = lGTPRegressionPattern.Test(lRegressionTest.Input);

                Assert.AreEqual(lResult, lRegressionTest.ExpectedResult, lRegressionTest.Pattern);
            }
        }
        public void VariousTests()
        {
            RegressionTest[] lRegressionTests =
            {
                new RegressionTest("#? [D17]",       "D17",    GTPRegressionResult.passed),
                new RegressionTest("#? [!D17]",      "B8",     GTPRegressionResult.passed),
                new RegressionTest("#? [B7|D17|X9]", "D17",    GTPRegressionResult.passed),
                new RegressionTest("#? [!D17]",      "D17",    GTPRegressionResult.failed),

                new RegressionTest("#? [!D17]*",     "D17",    GTPRegressionResult.FAILED),
                new RegressionTest("#? [D17]*",      "D17",    GTPRegressionResult.PASSED),
                new RegressionTest("#? [D17]*",      "=8 D17", GTPRegressionResult.PASSED)
            };

            foreach (RegressionTest lRegressionTest in lRegressionTests)
            {
                GTPRegressionPattern lGTPRegressionPattern = new GTPRegressionPattern(lRegressionTest.Pattern);
                GTPRegressionResult  lResult = lGTPRegressionPattern.Test(lRegressionTest.Input);

                Assert.AreEqual(lResult, lRegressionTest.ExpectedResult, lRegressionTest.Pattern);
            }
        }
        public static bool ExecuteTest(MemFile memFile, string directory)
        {
            GoBoard         lGoBoard         = new GoBoard(19);
            GTPGoBoard      lGTPGoBoard      = new GTPGoBoard(lGoBoard);
            GTPCommInternal lGTPCommInternal = new GTPCommInternal();
            GTPEngine       lGTPEngine       = new GTPEngine(lGTPGoBoard, lGTPCommInternal);

            lGTPGoBoard.Directory = directory;

            GTPCommand lGTcommand = new GTPCommand("");
            string     lInput     = string.Empty;

            int[] lRegressionResults = new int[5];

            while (!memFile.EOF)
            {
                string lBuffer = memFile.ReadLine('\n');

                if ((lBuffer.Length >= 4) && (lBuffer.Substring(0, 4) == "quit"))
                {
                    break;
                }

                if ((lBuffer.Length >= 2) && (lBuffer.Substring(0, 2) == "#?"))
                {
                    GTPRegressionPattern lPattern = new GTPRegressionPattern(lBuffer);

                    GTPRegressionResult lRegressionResult = GTPRegressionPattern.Test(lPattern, lInput);

                    lRegressionResults[(int)lRegressionResult]++;

                    switch (lRegressionResult)
                    {
                    case GTPRegressionResult.passed: /* Console.WriteLine("PASSED");*/ break;

                    case GTPRegressionResult.PASSED: Console.WriteLine(lGTcommand.ToString()); Console.WriteLine(lGTcommand.CommandNbr.ToString() + " unexpected PASS!"); break;

                    case GTPRegressionResult.failed: Console.WriteLine(lGTcommand.ToString()); Console.WriteLine(lGTcommand.CommandNbr.ToString() + " failed: Correct '" + lPattern + "', got '" + Proper(lInput) + "'"); break;

                    case GTPRegressionResult.FAILED: Console.WriteLine(lGTcommand.ToString()); Console.WriteLine(lGTcommand.CommandNbr.ToString() + " unexpected failure: Correct '" + lPattern + "', got '" + Proper(lInput) + "'"); break;

                    case GTPRegressionResult.ignore: Console.WriteLine(lGTcommand.ToString()); Console.WriteLine(lGTcommand.CommandNbr.ToString() + " ignoring '" + lPattern + "', got '" + Proper(lInput) + "'"); break;

                    default: Console.WriteLine("ERROR!!!"); break;
                    }
                }
                else
                if (lBuffer.Length > 0)
                {
                    GTPCommand lGTcommand2 = new GTPCommand(lBuffer);

                    if (lGTcommand2.Command.Length != 0)
                    {
                        lGTPCommInternal.SendToEngine(lBuffer);
                        lGTPCommInternal.SendToEngine("\n");

                        lInput = lGTPCommInternal.GetResponse();

                        lGTcommand = lGTcommand2;
                    }
                }
            }

            for (int lRegressionResultIndex = 0; lRegressionResultIndex < 5; lRegressionResultIndex++)
            {
                Console.WriteLine((GTPRegressionResult)lRegressionResultIndex + " " + lRegressionResults[lRegressionResultIndex]);
            }


            return(lRegressionResults[3] == 0);              // false, only for unexpected failures
        }