Sha256: 60e557df8bb21afaaeac64d48740b0350fb6abf0c6b64f5a4119049f2cc782ae

Contents?: true

Size: 1.92 KB

Versions: 1

Compression:

Stored size: 1.92 KB

Contents

# 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 normalize the receiver string" do
    text = "TOTO"
    normalizer = double()
    String.normalizer = normalizer
    normalizer.stub(:normalize) { |txt| txt.downcase }
    text.normalize!
    text.should eq "TOTO".downcase
    text.normalized.should be_true
  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 / translators" do
    text = "TOTO"
    transformer1 = double()
    transformer1.should_receive(:transform).with(text)
    text.transform(transformer1)
    transformer1 = double()
    transformer1.stub(:transform) { |text| text.tr("T","U") }
    transformer2 = double()
    transformer2.stub(:transform) { |text| text.tr("O","A") }
    transformer1.should_receive(:transform).with("TOTO")
    transformer2.should_receive(:transform).with("UOUO")
    text = text.transform(transformer1,transformer2)
    text.should eq "UAUA"
    text.transform([transformer1,transformer2])
  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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
text_nlp-0.0.3 spec/string_spec.rb