public void CalculateDistanceShouldCallCalculateMethodOnceWhenInputsAreValid() { // Arrange var input1 = new byte[] { 0, 0, 1 }; var input2 = new byte[] { 0, 1, 1 }; // Act var result = _hammingCalculatorHelper.CalculateDistance(input1, input2); // Assert _hammingDistanceCalculatorStrategyMock.Verify(m => m.Calculate(It.IsAny <byte[]>(), It.IsAny <byte[]>()), Times.Once); }
public static void Main(string[] args) { // Parses all program arguments into ProgramOptions object var options = new ProgramOptions(args); //Creates a Hamming Calculator instance basead on the current strategy var hammingCalculator = new HammingCalculatorHelper(options.CalculatorStrategy); //Calculates the Hamming Distance according to the 2 inputs var watch = Stopwatch.StartNew(); var distance = hammingCalculator.CalculateDistance(options.InputsBytes.Item1, options.InputsBytes.Item2); watch.Stop(); // Writes the calculation inputs and results to console Console.WriteLine("Calculating Hamming Distance for the inputs below:"); Console.WriteLine($"Input 1: {options.Inputs.Item1}"); Console.WriteLine($"Input 2: {options.Inputs.Item2}"); Console.WriteLine($"Strategy: {options.CalculatorStrategy.ToString()}"); Console.WriteLine(); Console.WriteLine($"Hamming distance for the provided inputs is {distance}."); Console.WriteLine(); Console.WriteLine($"Elapsed Milliseconds: {watch.ElapsedMilliseconds}"); }