public List <String> TryToFixSubmission(Submission2 submission, List <String> testCasesList, List <Core.Transformation> transformationsList) { List <String> fixedCodesList = new List <String>(); for (int i = 0; i < transformationsList.Count; i++) { try { var transformation = transformationsList[i]; var generatedCodesList = refazer.Apply(transformation, submission.Code).ToList(); if (generatedCodesList.Count > 15) { generatedCodesList = generatedCodesList.GetRange(0, 20); } foreach (var code in generatedCodesList) { Tuple <bool, List <String> > testResult = RunPythonTest. Execute(testCasesList, code); if (testResult.Item1) { fixedCodesList.Add(code); break; } } if (!fixedCodesList.IsEmpty()) { break; } } catch (Exception e) { Trace.TraceError("Could not apply transformations because " + e.Message); } } return(fixedCodesList); }
public IHttpActionResult FixSubmission(Submission2 submission) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Attempt attempt = new Attempt(); attempt.EndPoint = submission.EndPoint; attempt.SubmittedCode = submission.Code; List <String> testCasesList = db.Assignments.Find( submission.EndPoint).getTestCasesAsList(); Tuple <bool, List <String> > testResult = RunPythonTest. Execute(testCasesList, submission.Code); attempt.LogsList = testResult.Item2; attempt.PassedTests = testResult.Item1; if (attempt.PassedTests) { return(Ok(attempt)); } RefazerOnline refazerOnline = RefazerOnline.Instance; if (!refazerOnline.IsAvailableFor(submission.KeyPoint())) { attempt.FixedCodeList = WakeUpRefazerOnDemand( refazerOnline, submission, testCasesList); return(Ok(attempt)); } attempt.FixedCodeList = refazerOnline. TryToFixSubmission(submission, testCasesList); return(Ok(attempt)); }
private void BtnTestPython_Click(object sender, RoutedEventArgs e) { RunPythonTest rptWindow = new RunPythonTest(); rptWindow.Show(); }