private static void ProcessData() { Console.WriteLine("Загрузка результатов вопросов..."); var files = Directory.GetFiles( Directory.GetCurrentDirectory(), "TR_*.json", SearchOption.TopDirectoryOnly); var testResults = files .Select(BaseHelper.LoadJson <TestResult>) .ToList(); var combinedResult = new TestResult(); foreach (var text in testResults.SelectMany(tr => tr.Result.Questions).Select(q => q.Text)) { var questions = testResults .SelectMany(tr => tr.Result.Questions) .Where(q => q.Text == text && q.AnswerTime.HasValue) .ToArray(); var timings = questions .Select(q => q.AnswerTime.Value.TotalMilliseconds) .ToArray(); var average = timings.Average(); var sumOfSquaresOfDifferences = timings .Select(val => (val - average) * (val - average)) .Sum(); var sd = Math .Sqrt(sumOfSquaresOfDifferences / timings.Length); combinedResult.AddQuestion(new Question(questions.First(), TimeSpan.FromMilliseconds(average), sd)); } combinedResult.SaveJson($"PR_{DateTime.Now:yyyy-dd-M--HH-mm-ss}.json"); var graph = WeightedGraph.FromTestResult(combinedResult); File.WriteAllText($"PR_{DateTime.Now:yyyy-dd-M--HH-mm-ss}.dot", graph.ToDot()); }