internal static string GetOrCreateDataFolder(ParametersPack args) { args.ThrowIfNull(nameof(args)); return(PathHelper.GetOrCreateFolderUsingFilePath( args.OutputFilenamePattern, PredefinedPaths.DefaultDataFolderPath )); }
public AnalysisContext CreateWith(ParametersPack args) { return(new AnalysisContext( args: args, launchContext: LaunchContext, outputExcelFile: OutputExcelFile, phaseOnePartOne: PhaseOnePartOne, phaseOnePartTwo: PhaseOnePartTwo, phaseTwo: PhaseTwo, goodnessOfFit: GoodnessOfFit )); }
public AnalysisContext( ParametersPack args, AnalysisLaunchContext launchContext, FileInfo outputExcelFile, PhaseOnePartOneAnalysisKind phaseOnePartOne, PhaseOnePartTwoAnalysisKind phaseOnePartTwo, PhaseTwoAnalysisKind phaseTwo, GoodnessOfFitKind goodnessOfFit) { Args = args.ThrowIfNull(nameof(args)); LaunchContext = launchContext.ThrowIfNull(nameof(launchContext)); OutputExcelFile = outputExcelFile.ThrowIfNull(nameof(outputExcelFile)); PhaseOnePartOne = phaseOnePartOne.ThrowIfNull(nameof(phaseOnePartOne)); PhaseOnePartTwo = phaseOnePartTwo.ThrowIfNull(nameof(phaseOnePartTwo)); PhaseTwo = phaseTwo.ThrowIfNull(nameof(phaseTwo)); GoodnessOfFit = goodnessOfFit.ThrowIfNull(nameof(goodnessOfFit)); }
internal static IAnalysisPhaseOnePartOne CreateAnalysisPhaseOnePartOne( PhaseOnePartOneAnalysisKind phaseOnePartOne, ParametersPack args) { phaseOnePartOne.ThrowIfNull(nameof(phaseOnePartOne)); if (PhaseOnePartOneAnalysisKind.NormalDistribution.Equals(phaseOnePartOne)) { return(new NormalDistributionAnalysisPhaseOnePartOne(args)); } if (PhaseOnePartOneAnalysisKind.BetaDistribution.Equals(phaseOnePartOne)) { // TODO: add formulas for solution based on beta distribution. throw new NotImplementedException( "Beta distribution analysis for phase 1 part 1 is not implemented." ); } throw new ArgumentOutOfRangeException( nameof(phaseOnePartOne), phaseOnePartOne, $"Unknown analysis kind for phase 1 part 1 value: {phaseOnePartOne.ToLogString()}" ); }
internal static IAnalysisPhaseTwo CreateAnalysisPhaseTwo( PhaseTwoAnalysisKind phaseTwo, IFunctionSelector goodnessOfFit, ParametersPack args) { phaseTwo.ThrowIfNull(nameof(phaseTwo)); if (PhaseTwoAnalysisKind.NormalDistribution.Equals(phaseTwo)) { // TODO: add formulas for solution based on Sturges's formula. throw new NotImplementedException( "Normal distribution analysis for phase 2 is not implemented." ); } if (PhaseTwoAnalysisKind.BetaDistribution.Equals(phaseTwo)) { var regression = Regression.Create(goodnessOfFit); return(new BetaDistributionAnalysisPhaseTwo(args, regression)); } throw new ArgumentOutOfRangeException( nameof(phaseTwo), phaseTwo, $"Unknown analysis kind for phase 2 value: {phaseTwo.ToLogString()}" ); }
internal static IAnalysisPhaseOnePartTwo CreateAnalysisPhaseOnePartTwo( PhaseOnePartTwoAnalysisKind phaseOnePartTwo, ParametersPack args) { phaseOnePartTwo.ThrowIfNull(nameof(phaseOnePartTwo)); if (PhaseOnePartTwoAnalysisKind.BetaDistributionWithScott.Equals(phaseOnePartTwo)) { return(new BetaDistributionAnalysisPhaseOnePartTwo( new ScottFrequencyHistogramBuilder(args), args )); } if (PhaseOnePartTwoAnalysisKind.BetaDistributionWithSturges.Equals(phaseOnePartTwo)) { // TODO: add formulas for solution based on Sturges's formula. throw new NotImplementedException( "Sturges's analysis for phase 1 part 2 is not implemented." ); } throw new ArgumentOutOfRangeException( nameof(phaseOnePartTwo), phaseOnePartTwo, $"Unknown analysis kind for phase 1 part 2 value: {phaseOnePartTwo.ToLogString()}" ); }