public void GetSimilarWords_a50Sab48aWb48_ReturnsSab48a() { //S - это разграничитель слов (separator) //W - это разграничитель между словами из словаря и проверяемыми словами //Этот метод проверяет экстремальный случай когда в словаре лежит слово len("aaaaa...") = 50 //И len("ab...ba") = 50 //А проверяемое слово len("b...b") = 48, должно получиться "ab....ba" //Arrange string[] dictionary = { "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba" }; var tree = new BKtree(dictionary.Length); for (int i = 0; i < dictionary.Length; ++i) { Node tmp = new Node(dictionary[i]); tree.Add(tree.root, tmp); } //Act var similarWords = tree.GetSimilarWords(tree.root, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); var result = string.Join(" ", similarWords); //Assert Assert.AreEqual("abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba", result); }
public void GetSimilarWords_batSvbaWvbatt_ReturnsSbat() { //S - это разграничитель слов (separator) //W - это разграничитель между словами из словаря и проверяемыми словами //Этот метод проверяет если словарь состоит из слов "bat" и "vba" //А проверяемое слово vbatt, вернуться должен только bat т.к vba отличаеться от bat двумя вставками подряд //Arrange string[] dictionary = { "bat", "vba" }; var tree = new BKtree(dictionary.Length); for (int i = 0; i < dictionary.Length; ++i) { Node tmp = new Node(dictionary[i]); tree.Add(tree.root, tmp); } //Act var similarWords = tree.GetSimilarWords(tree.root, "vbatt"); var result = string.Join(" ", similarWords); //Assert Assert.AreEqual("bat", result); }