Пример #1
0
 static void Main(string[] args)
 {
     while (true)
     {
         ProblemA.Main(args);
         Console.WriteLine("--------------------------------------");
     }
 }
        private static void DoProblemA()
        {
            Console.WriteLine("Problem A");
            var sw = new Stopwatch();

            sw.Start();
            using (var p = new ProblemA())
            {
                p.Solve("A-small-practice-1");
            }
            sw.Stop();

            Console.WriteLine(sw.Elapsed);

            sw.Reset();
            sw.Start();
            using (var p = new ProblemA())
            {
                p.Solve("A-small-practice-2");
            }
            sw.Start();

            Console.WriteLine(sw.Elapsed);
        }
        static void Main(string[] args)
        {
            IProblem question    = new ProblemA();
            IProblem naiveSolver = new NaiveSolver();

            long count = 0;

            while (true)
            {
                using var input          = new MemoryStream();
                using var expectedOutput = new MemoryStream();
                using var actualOutput   = new MemoryStream();
                var expectedIO           = new IOManager(input, expectedOutput);
                var actualIO             = new IOManager(input, actualOutput);
                var inputReader          = new StreamReader(input);
                var inputWriter          = new StreamWriter(input);
                var expectedOutputReader = new StreamReader(expectedOutput);
                var actualOutputReader   = new StreamReader(actualOutput);

                // 入力作成
                GenerateInput(inputWriter);
                inputWriter.Flush();

                // チェック
                input.Position = 0;
                naiveSolver.Solve(expectedIO);
                expectedIO.Flush();
                input.Position = 0;
                question.Solve(actualIO);
                actualIO.Flush();

                input.Position          = 0;
                expectedOutput.Position = 0;
                actualOutput.Position   = 0;

                Console.WriteLine($"[Test {count++}]");
                Console.ForegroundColor = ConsoleColor.DarkGray;
                Console.WriteLine("[Input]");
                Console.ResetColor();
                Console.Write(inputReader.ReadToEnd());

                var expected = expectedOutputReader.ReadToEnd();
                var actual   = actualOutputReader.ReadToEnd();

                Console.ForegroundColor = ConsoleColor.DarkGray;
                Console.WriteLine("[Expected]");
                Console.ResetColor();
                Console.Write(expected);

                Console.ForegroundColor = ConsoleColor.DarkGray;
                Console.WriteLine("[Actual]");
                Console.ResetColor();
                Console.Write(actual);

                if (expected == actual)
                {
                    Console.ForegroundColor = ConsoleColor.DarkGreen;
                    Console.WriteLine("Accepted");
                    Console.ResetColor();
                    Console.WriteLine();
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.DarkRed;
                    Console.WriteLine("Wrong Answer");
                    Console.ResetColor();
                    Console.WriteLine();
                    break;
                }
            }
        }
Пример #4
0
 public void GetPNorm_Test()
 {
     Assert.AreEqual(1.4142135624, ProblemA.GetPNorm(1.0, 1.0, 2.0, 2.0, 2.0));
     Assert.AreEqual(2.0000000000, ProblemA.GetPNorm(1.0, 1.0, 2.0, 2.0, 1.0));
     Assert.AreEqual(20.3636957882, ProblemA.GetPNorm(1.0, 1.0, 20.0, 20.0, 10.0));
 }