Add more test cases for StringRef::edit_distance
authorAlex Denisov <1101.debian@gmail.com>
Fri, 14 Apr 2017 08:34:32 +0000 (08:34 +0000)
committerAlex Denisov <1101.debian@gmail.com>
Fri, 14 Apr 2017 08:34:32 +0000 (08:34 +0000)
Example strings taken from here: http://www.let.rug.nl/~kleiweg/lev/

llvm-svn: 300312

llvm/unittests/ADT/StringRefTest.cpp

index bd93878..e308f2d 100644 (file)
@@ -504,8 +504,22 @@ TEST(StringRefTest, Count) {
 }
 
 TEST(StringRefTest, EditDistance) {
-  StringRef Str("hello");
-  EXPECT_EQ(2U, Str.edit_distance("hill"));
+  StringRef Hello("hello");
+  EXPECT_EQ(2U, Hello.edit_distance("hill"));
+
+  StringRef Industry("industry");
+  EXPECT_EQ(6U, Industry.edit_distance("interest"));
+
+  StringRef Soylent("soylent green is people");
+  EXPECT_EQ(19U, Soylent.edit_distance("people soiled our green"));
+  EXPECT_EQ(26U, Soylent.edit_distance("people soiled our green",
+                                      /* allow replacements = */ false));
+  EXPECT_EQ(9U, Soylent.edit_distance("people soiled our green",
+                                      /* allow replacements = */ true,
+                                      /* max edit distance = */ 8));
+  EXPECT_EQ(53U, Soylent.edit_distance("people soiled our green "
+                                       "people soiled our green "
+                                       "people soiled our green "));
 }
 
 TEST(StringRefTest, Misc) {