コード例 #1
0
ファイル: EventQueue.cs プロジェクト: vasica38/Online-Judge
        public void EventLoop()
        {
            while (events.Count > 0)
            {
                LoadTests   loader = new LoadTests();
                List <Test> tests  = new List <Test>();
                List <Test> tests1 = new List <Test>();

                tests  = loader.Get("B:\\tests\\adunare", "adunare");
                tests1 = loader.Get("B:\\tests\\ciurul", "ciurul");

                GCC gcc = new GCC(@"C:\MinGW\bin\g++.exe");
                CompilerFactory.RegisterCompiler("C++", gcc);
                CompilerFactory.RegisterCompiler("C++11", gcc);
                CompilerFactory.RegisterCompiler("C+11", gcc);

                CompilerFactory.RegisterCompiler("C++14", gcc);
                CompilerFactory.RegisterCompiler("C", gcc);



                tests.AddRange(tests1);
                Repository repository = new Repository();
                repository.Tests = tests;


                Judge          judge      = new Judge("B:\\evaluare", "C++", repository);
                SubmissionJson submission = events.Dequeue().Submission;

                submission.Code = submission.Code.Replace("@", System.Environment.NewLine);


                SaveSolution saveSolution = new SaveSolution(submission.Code, @"B:\solutions", submission.ProblemName + submission.SubmissionAccountId, "cpp");
                saveSolution.SaveFile();

                Dictionary <int, string> submissionsPaths = new Dictionary <int, string>();
                submissionsPaths[submission.Id] = saveSolution.GetCodePath();

                judge.SetSubmissionPath(submissionsPaths);

                judge.Evaluate(submission);
            }
        }
コード例 #2
0
ファイル: Judge.cs プロジェクト: bivoldaniel/Online-Judge
        public void Evaluate(SubmissionJson submission)
        {
            Console.WriteLine("Evaluation Started");

            ICompiler compiler       = CompilerFactory.GetCompiler(submission.Language);
            string    executablePath = String.Empty;
            string    testsFolder    = String.Empty;

            if (compiler != null)
            {
                if (compiler.Compile(submissionsPaths[submission.Id], out executablePath))
                {
                    testsFolder = TestsDirectory.FullName + "\\" + submission.SubmissionProblemId + "\\";
                    File.Copy(executablePath, WorkAreaDirectory.FullName + "\\" + submission.SubmissionProblemId + Constants.exe, true);


                    foreach (var test in repository.Tests)
                    {
                    }
                }
            }
        }