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);
        }
Exemplo n.º 2
0
        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}");
        }