Пример #1
0
        private int[] GetTestResults(ILevenshteinDistanceCalculator calculator)
        {
            var results = new List <int>();

            for (var i = 0; i < ValidationData.Count; i++)
            {
                var testPair  = ValidationData[i];
                var tmpResult = -1;
                if (calculator is ILevenshteinDistanceSpanCalculator spanCalculator)
                {
                    tmpResult = spanCalculator.CalculateDistance(
                        testPair.Item1,
                        testPair.Item2
                        );
                }
                else if (calculator is ILevenshteinDistanceMemoryCalculator memoryCalculator)
                {
                    tmpResult = memoryCalculator.CalculateDistance(
                        testPair.Item1.AsMemory(),
                        testPair.Item2.AsMemory()
                        );
                }
                else
                {
                    throw new InvalidOperationException(
                              $"Invalid type of calculator! Must implement {nameof(ILevenshteinDistanceSpanCalculator)} or {nameof(ILevenshteinDistanceMemoryCalculator)}"
                              );
                }

                results.Add(tmpResult);
            }

            return(results.ToArray());
        }
 public LevenshteinDistanceController(ILogger <LevenshteinDistanceController> logger, ILevenshteinDistanceCalculator distanceCalculator)
 {
     _logger             = logger;
     _distanceCalculator = distanceCalculator;
 }