/// <summary> /// Default constructor. /// Initializes all arguments values, populating the public fields with data parsed from arguments list. /// </summary> /// <param name="args">Program arguments</param> public ProgramOptions(string[] args) { _args = args; if (!args.Contains(SourceInlineParam) && !args.Contains(SourceFileParam)) { throw new ArgumentException($"Either {SourceInlineParam} or {SourceFileParam} argument should be provided"); } if (args.Contains(SourceInlineParam)) { Inputs = GetTwoArgumentsValuesByName(SourceInlineParam); InputsBytes = ReadBytesFromArguments(); } else { Inputs = GetTwoArgumentsValuesByName(SourceFileParam); InputsBytes = ReadBytesFromFiles(); } string method = GetArgumentValueByName(MethodParam); CalculatorStrategy = GetHammingDistanceCalculatorStrategy(method); }
public HammingCalculatorHelper(IHammingDistanceCalculatorStrategy hammingDistanceCalculatorStrategy) { _hammingDistanceCalculatorStrategy = hammingDistanceCalculatorStrategy; }