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; }