public void CreateInstanceShouldReturnInstanceOfExpectedType(HammingDistanceStrategies strategy, Type expectedType)
        {
            // Act
            var result = HammingDistanceCalculatorFactory.CreateInstance(strategy);

            // Assert
            Assert.IsInstanceOfType(result, expectedType);
        }
 /// <summary>
 /// Instantiates the proper calculator strategy based on "-method" argument provided to the application.
 /// If the "-method" argument is not provided or is not recognized, Standard strategy is adopted.
 /// </summary>
 /// <param name="method">Method argument value provided to the console application</param>
 /// <returns>An instance of the selected IHammingDistanceCalculatorStrategy</returns>
 private static IHammingDistanceCalculatorStrategy GetHammingDistanceCalculatorStrategy(string method)
 {
     if (!string.IsNullOrEmpty(method))
     {
         if (Enum.TryParse(typeof(HammingDistanceStrategies), method, out object strategyInput))
         {
             return(HammingDistanceCalculatorFactory.CreateInstance((HammingDistanceStrategies)strategyInput));
         }
     }
     return(HammingDistanceCalculatorFactory.CreateInstance(HammingDistanceStrategies.Standard));
 }
 public void Initialize()
 {
     _hammingDistanceCalculatorFactory = new HammingDistanceCalculatorFactory();
 }