X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;ds=sidebyside;f=spec%2Ferd_handler%2Flabel_spec.rb;h=6f09b95e91336434dfbec22cc3b35bbdfd8ac2ae;hb=HEAD;hp=b432b46f447005612e2cf1ccce31f8490dfa4e6e;hpb=df86d6dec3f5944842cf8e5cdcaa909bfc7e0406;p=erd-marker.git diff --git a/spec/erd_handler/label_spec.rb b/spec/erd_handler/label_spec.rb index b432b46..6f09b95 100644 --- a/spec/erd_handler/label_spec.rb +++ b/spec/erd_handler/label_spec.rb @@ -2,11 +2,34 @@ require 'spec_helper' module ErdHandler describe Label do + describe '#initialize' do + it "should give an error if not given an original string" do + # Label.new.should raise_error(ArgumentError) + expect {Label.new}.to raise_error(ArgumentError) + end + + it "should create a copy of the original as the processed string" do + test_label = "Test label" + l1 = Label.new test_label + l1.original.should == test_label + end + + it "should tidy the processed string if asked" do + test_label = "testingLabeller string, he_pontificated" + l1 = Label.new test_label.dup, true + l2 = Label.new test_label.dup + l2.split.downcase.stem + l1.processed.should == l2.processed + end + end # initialze + describe '#original' do it "reports the string it was initialised with" do 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 +168,36 @@ module ErdHandler end end # tidy + describe "#length" do + it "returns the length of the processed label" do + l1 = Label.new "testingLabeller string, he_pontificated" + l1.tidy + l1.length.should == l1.processed.join('').length + end + end # length + + 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