# encoding: utf-8 require "spec_helper" describe String do before(:each) { String.normalizer = nil; String.tokenizer = nil; } it "should call normalizer" do text = "TOTO" normalizer = double() String.normalizer = normalizer normalizer.stub(:normalize) { |txt| txt.downcase } normalizer.should_receive(:normalize).with(text) text = text.normalize text.should eq "TOTO".downcase normalizer.should_not_receive(:normalize).with(text) text.normalize.should eq "TOTO".downcase end it "should call tokenizer" do text = "TOTO" tokenizer = double() String.tokenizer = tokenizer tokenizer.should_receive(:tokenize).with(text) text.tokenize end it "should call translator" do text = "TOTO" translator = double() translator.should_receive(:translate).with(text) text.translate(translator) end it "should compute similarity" do "il fait chaud".similarity("il fait chaud").should eq 1.0 "il fait chaud".similarity("putin c nul ici").should eq 0.0 "il fait chaud".similarity("youhou ca le fait").should be_within(0.01).of(0.29) "".similarity("il fait chaud").should eq 0.0 "il fait chaud".similarity("").should eq 0.0 end end