private void PrintMachineResultAnalysis(MachineTestMachineResult machineResult) { string machineDir = Path.Combine(_outputDir, machineResult.MachineName) + "/"; Directory.CreateDirectory(machineDir); for (int i = 0; i < machineResult.UserResults.Count; i++) { MachineTestUserResult userResult = machineResult.UserResults[i]; MachineTestUserResultPrinter userPrinter = new MachineTestUserResultPrinter(userResult); userPrinter.WriteResult(machineDir, MachineTestPrintFileNameMode.UserId); MachineTestAnalysisResult singleAnalysisResult = MachineTestAnalysisHelper.Instance.AnalyzeSingleUser(userResult); userResult.AnalysisResult = singleAnalysisResult; MachineTestAnalysisResultPrinter singleAnalysisPrinter = new MachineTestAnalysisResultPrinter(_config, userResult, singleAnalysisResult); singleAnalysisPrinter.WriteResult(machineDir); } MachineTestAnalysisResult analysisResult = MachineTestAnalysisHelper.Instance.AnalyzeSingleMachine(machineResult, _config._userCount); machineResult.AnalysisResult = analysisResult; MachineTestAnalysisResultPrinter analysisPrinter = new MachineTestAnalysisResultPrinter(_config, machineResult, analysisResult); analysisPrinter.WriteResult(machineDir); }
public MachineTestAnalysisResultPrinter(MachineTestConfig config, MachineTestMachineResult machineResult, MachineTestAnalysisResult analysisResult) { _mode = MachineTestAnalysisMode.Machine; _config = config; _machineResult = machineResult; _analysisResult = analysisResult; }
public MachineTestAnalysisResultPrinter(MachineTestConfig config, MachineTestUserResult userResult, MachineTestAnalysisResult analysisResult) { _mode = MachineTestAnalysisMode.User; _config = config; _userResult = userResult; _analysisResult = analysisResult; }
public MachineTestAnalysisResult AnalyzeSingleUser(MachineTestUserResult userResult) { _machineConfig = MachineConfig.Instance; MachineTestAnalysisResult result = new MachineTestAnalysisResult(); result._spinCountBeforeReachLuckyThreshold = GetSpinCountBeforeReachLuckyThreshold(userResult.RoundResults); result._spinCountBeforeLuckyZero = GetSpinCountBeforeLuckyZero(userResult.RoundResults); for (int i = 0; i < (int)MachineTestLuckyMode.Count; i++) { MachineTestLuckyMode mode = (MachineTestLuckyMode)i; result._luckyModeResults[(int)mode] = GetLuckyModeResult(mode, userResult.RoundResults); } return(result); }
public MachineTestAnalysisResult AnalyzeSingleMachine(MachineTestMachineResult machineResult, int userCount) { _machineConfig = MachineConfig.Instance; MachineTestAnalysisResult result = new MachineTestAnalysisResult(); result._spinCountBeforeReachLuckyThreshold = GetAverageSpinCountBeforeReachLuckyThreshold(machineResult.UserResults); result._spinCountBeforeLuckyZero = GetAverageSpinCountBeforeLuckyZero(machineResult.UserResults); for (int i = 0; i < (int)MachineTestLuckyMode.Count; i++) { MachineTestLuckyMode mode = (MachineTestLuckyMode)i; List <MachineTestRoundResult> roundResults = new List <MachineTestRoundResult>(userCount * machineResult.UserResults.Count); for (int k = 0; k < machineResult.UserResults.Count; k++) { roundResults.AddRange(machineResult.UserResults[k].RoundResults); } result._luckyModeResults[(int)mode] = GetLuckyModeResult(mode, roundResults); } return(result); }