Ejemplo n.º 1
0
        public void Run()
        {
            object input    = (RunMode == RunModes.Solution) ? SolutionInput : TestInput;
            object response = Run(RunMode, input, Logging);
            object solution = (RunMode == RunModes.Solution) ? SolutionResponse : TestResponse;

            RunResponse = new RunResponse(input, response, solution);
            //Console.WriteLine(String.Format("{0}", response));

            //return new RunResponse(input, response, solution);
        }
Ejemplo n.º 2
0
        public void Run(Problem problemToSolve, RunModes runMode, BatchModes batchMode = BatchModes.None)
        {
            problemToSolve.RunMode = runMode;
            problemToSolve.Logging = Logging;

            Thread problemThread = new Thread(problemToSolve.Run);

            DateTime start = DateTime.Now;

            problemThread.Start();

            bool  useTimer   = batchMode != BatchModes.None;
            bool  tooSlow    = false;
            Timer EulerTimer = new Timer(
                (obj) => {
                if (useTimer)
                {
                    if (problemThread.ThreadState == ThreadState.Running)
                    {
                        useTimer = false;
                        tooSlow  = true;
                        Console.WriteLine(String.Format("{0} - {1}", problemToSolve.GetType(), SlowString));
                        var stat = new Statistics(problemToSolve.GetType(), SlowString, new TimeSpan(0, 1, 0), false);
                        StatisticsWriter.Add(stat);
                        problemThread.Abort();
                    }
                }
            }, null, Minute, Minute);

            problemThread.Join();

            if (!tooSlow)
            {
                useTimer = false;
                RunResponse response = problemToSolve.RunResponse;
                var         elapsed  = DateTime.Now - start;
                var         correct  = response.Response != null && response.Solution != null &&
                                       response.Response.Equals(response.Solution);
                var stat = new Statistics(problemToSolve.GetType(), response.Response, elapsed, correct);
                StatisticsWriter.Add(stat);
                //if (!batchMode) {
                Console.WriteLine(stat);
                //}
            }
        }