public void CalculateDistanceWithSourceShorterThanTargetAndTotallyUnrelated() { IStringDistance distance = new LevenshteinDistance(); int actual = distance.Distance("Mat", "Geoffery"); Assert.AreEqual(8, actual); }
public void CalculateDistanceWithSingleCharacters() { IStringDistance distance = new LevenshteinDistance(); int actual = distance.Distance("a", "b"); Assert.AreEqual(1, actual); }
public void CalculateDistanceWithSourceShorterThanTarget() { IStringDistance distance = new LevenshteinDistance(); int actual = distance.Distance("Steve", "Stephen"); Assert.AreEqual(3, actual); }
public static List <ParallelSearchResult> ArrayThreadTask(object paramObj) { ParallelSearchThreadParam param = (ParallelSearchThreadParam)paramObj; string wordUpper = param.WordPattern.Trim().ToUpper(); List <ParallelSearchResult> Result = new List <ParallelSearchResult>(); foreach (string str in param.TempList) { int dist = LevenshteinDistance.Distance(str.ToUpper(), wordUpper); if (dist <= param.MaxDist) { ParallelSearchResult temp = new ParallelSearchResult() { Word = str, Dist = dist, ThreadNum = param.ThreadNum }; Result.Add(temp); } } return(Result); }
private void ButtonCalcDistance_Click(object sender, RoutedEventArgs e) { string currentWord = TextBoxCurrentWord.Text.Trim(); if (!string.IsNullOrWhiteSpace(currentWord) && words.Count > 0) { if (!int.TryParse(TextBoxMaxDistance.Text.Trim(), out int maxDistance)) { MessageBox.Show("Введите максимальное расстояние"); return; } if (maxDistance < 1 || maxDistance > 5) { MessageBox.Show("Максимальное расстояние должно быть в диапазоне от 1 до 5"); return; } List <string> tempList = new List <string>(); Stopwatch timer = new Stopwatch(); timer.Start(); foreach (string str in words) { int distance = LevenshteinDistance.Distance(str, currentWord); if (distance <= maxDistance) { tempList.Add(str + " (расстояние: " + distance + ")"); } } timer.Stop(); LabelTimeCalc.Content = timer.Elapsed.ToString(); ListBoxResult.ItemsSource = tempList; } else { MessageBox.Show("Выберите файл и введите слово для вычисления расстояния"); } }
public void CalculateDistanceOfGetAndGrtWithDifferentCases() { IStringDistance distance = new LevenshteinDistance(); Assert.AreEqual(1, distance.Distance("Get", "Grt")); }
public void CalculateDistanceOfKittenAndSittenWithDifferentCases() { IStringDistance distance = new LevenshteinDistance(); Assert.AreEqual(3, distance.Distance("Kitten", "siTTing")); }
public void CalculateDistanceOfKittenAndSitten() { IStringDistance distance = new LevenshteinDistance(); Assert.AreEqual(3, distance.Distance("kitten", "sitting")); }
public void ThrowArgumentNullExceptionIfTargetIsNull() { IStringDistance distance = new LevenshteinDistance(); distance.Distance("name", null); }
public void ThrowArgumentNullExceptionIfSourceIsNull() { IStringDistance distance = new LevenshteinDistance(); distance.Distance(null, null); }
public double Distance(NGram <Chord>[] first, NGram <Chord>[] second) { return(distance.Distance( first.SelectMany(x => x.SelectMany(y => y.Notes)).Select(z => z.Octave * 11 + (int)z.Note).ToArray(), second.SelectMany(x => x.SelectMany(y => y.Notes)).Select(z => (int)(z.Octave * 11 + (int)z.Note)).ToArray())); }
public double Distance(NGram <Chord>[] first, NGram <Chord>[] second) { return(distance.Distance(first.SelectMany(x => x.SelectMany(y => y.Notes)).ToArray(), second.SelectMany(x => x.SelectMany(y => y.Notes)).ToArray())); }