예제 #1
0
        private static string GenerateTest(string generatorFileName, string inputTestFileName, string outputTestFileName,
                                           int timeLimit, int memoryLimit, Language language)
        {
            LanguageHandler currentLanguageHandler;

            switch (language)
            {
            case Language.CSharp:
                currentLanguageHandler = new CSharpHandler();
                break;

            case Language.Cpp:
                currentLanguageHandler = new CppHandler();
                break;

            default:
                currentLanguageHandler = new CSharpHandler();
                break;
            }

            var parameters = new CheckParametersForGenerator(generatorFileName, inputTestFileName, outputTestFileName,
                                                             timeLimit > 0 ? timeLimit : 0, memoryLimit > 0 ? memoryLimit : 0)
            {
                LanguageHandler = currentLanguageHandler
            };

            return(ContestHandler.GenerateTestOutput(parameters));
        }
예제 #2
0
        public static string GenerateTestOutput(CheckParametersForGenerator parameters)
        {
            var output     = "";
            var tempErrors = "";

            double usedTime   = 0;
            double usedMemory = 0;

            var compilationAndExecutionResult = CompileAndExecute(parameters, ref output, ref tempErrors, ref usedTime, ref usedMemory);

            if (compilationAndExecutionResult == ResultMessage.CE || compilationAndExecutionResult == ResultMessage.EE)
            {
                return("Ошибки: " + tempErrors);
            }

            var sw = new StreamWriter(parameters.OutputTestFileName);

            sw.Write(output);
            sw.Close();
            return("");
        }