protected override void DoRun(CancellationToken token) { var ans = PlagiarismChecker.Check(TestData.Source1, TestData.Source2); foreach (var res in ans.AlgoResults) { Logger.Info("Check result - Id: {0}, Similarity: {1}, Verdict: {2}", res.AlgorithmId, res.Similarity, res.AlgorithmVerdict); Sleeper.Sleep(); } Logger.Info("Aggregated result - Id: {0}, Similarity: {1}, Verdict: {2}", ans.AggregationInfo.AlgorithmId, ans.AggregationInfo.Similarity, ans.AggregationInfo.AlgorithmVerdict); }
private bool RunTestMachine(Job job, ref string result) { Source src1 = LoadSource(job.SolutionToJudge.SolutionHash, job.SolutionToJudge.Language); if (src1 == null) { return(false); } var comparasions = new List <ComparasionResult>(); double plagiarismLevel = 0.0; Stopwatch sw = Stopwatch.StartNew(); foreach (var soluition in job.SolutionsToCompare) { Logger.Debug("Testing {0} and {1}", job.SolutionToJudge.SolutionId, soluition.SolutionId); var src2 = LoadSource(soluition.SolutionHash, soluition.Language); if (src2 == null) { return(false); } var checkerResult = PlagiarismChecker.Check(src1, src2); comparasions.Add(new ComparasionResult { SolutionId = soluition.SolutionId, TestResult = checkerResult }); plagiarismLevel = Math.Max(plagiarismLevel, checkerResult.AggregationInfo.Similarity); } sw.Stop(); Logger.Info("Tested {0} soluitons in {1} ms; result = {2:0.00}", job.SolutionsToCompare.Length, sw.ElapsedMilliseconds, plagiarismLevel); Logger.Debug("Cached solutions: {0}", Cache.Size()); result = JsonConvert.SerializeObject(new JobTestResult { SolutionId = job.SolutionToJudge.SolutionId, OtherSolutions = comparasions.ToArray(), PlagiarismLevel = plagiarismLevel }); return(true); }