Example #1
0
    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);
    }