Added edit distance to Label
[erd-marker.git] / spec / erd_handler / label_spec.rb
index b432b46f447005612e2cf1ccce31f8490dfa4e6e..a1ea5a480513b52980798f8a02149bee368ff9c9 100644 (file)
@@ -7,6 +7,8 @@ module ErdHandler
         test_label = "Test label"
         l1 = Label.new test_label
         l1.original.should == test_label
+        l1 = Label.new
+        l1.original.should == ""
       end
     end # original
 
@@ -145,5 +147,28 @@ module ErdHandler
       end
     end # tidy
     
+    describe "#levenshtein" do
+      it "calculates the Levenshtein distance of the processed string" do
+        l1 = Label.new "Fred"
+        l1.levenshtein("Fred").should == 0
+        l1.levenshtein("Free").should == 1
+        l1.levenshtein("").should == 4
+        l2 = Label.new
+        l2.levenshtein("Free").should == 4
+        l2.levenshtein("").should == 0
+        l3 = Label.new "meilenstein"
+        l3.levenshtein("levenshtein").should == 4
+        l4 = Label.new "testingLabeller string, he_pontificated"
+        l4.tidy.levenshtein("testlabelstringhepontif").should == 0
+        l4.tidy.levenshtein("testlabelXstringhepontif").should == 1
+      end
+      
+      it "calculates the Levenshtein distance between Labels" do
+        l1 = Label.new "meilenstein"
+        l2 = Label.new "levenshtein"
+        l1.levenshtein(l2).should == 4
+      end
+    end
+    
   end
 end