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 IFunctionSelector CreateGoodnessOfFit(GoodnessOfFitKind goodnessOfFit) { goodnessOfFit.ThrowIfNull(nameof(goodnessOfFit)); if (GoodnessOfFitKind.CoefficientOfDetermination.Equals(goodnessOfFit)) { return(new FunctionSelectorBasedOnCoefficientOfDetermination()); } if (GoodnessOfFitKind.RSquaredValue.Equals(goodnessOfFit)) { return(new FunctionSelectorBasedOnRSquaredValue()); } throw new ArgumentOutOfRangeException( nameof(goodnessOfFit), goodnessOfFit, $"Unknown goodness of fit kind value: {goodnessOfFit.ToLogString()}" ); }