spec/name_spec.rb in icu_name-1.0.2 vs spec/name_spec.rb in icu_name-1.0.3

- old
+ new

@@ -106,19 +106,33 @@ Name.new('Anna-Marie J.-K.', 'Liviu-Dieter').name.should == 'Anna-Marie J.-K. Liviu-Dieter' Name.new('Èric Cantona').name.should == 'Èric Cantona' end end - context "last names involving a quote" do - it "should be handled correctly" do + context "last names involving single quote-like characters" do + before(:each) do + @una = Name.new('Una', "O'Boyle") + end + + it "should use apostrophe (0027) as the canonical choice" do Name.new('una', "O'boyle").name.should == "Una O'Boyle" + Name.new('Una', "o’boyle").name.should == "Una O'Boyle" Name.new('jonathan', 'd`arcy').name.should == "Jonathan D'Arcy" - Name.new('erwin e', "L'AMI").name.should == "Erwin E. L'Ami" + Name.new('erwin e', "L′AMI").name.should == "Erwin E. L'Ami" Name.new('cormac', "o brien").name.should == "Cormac O'Brien" Name.new('türko', "o özgür").name.should == "Türko O'Özgür" - Name.new('türko', "l`özgür").name.should == "Türko L'Özgür" + Name.new('türko', "l‘özgür").name.should == "Türko L'Özgür" end + + it "backticks (0060), opening (2018) and closing (2019) single quotes, primes (2032) and high reversed 9 quotes (201B) should be equivalent" do + @una.match("Una", "O`Boyle").should be_true + @una.match("Una", "O’Boyle").should be_true + @una.match("Una", "O‘Boyle").should be_true + @una.match("Una", "O′Boyle").should be_true + @una.match("Una", "O‛Boyle").should be_true + @una.match("Una", "O‚Boyle").should be_false + end end context "last beginning with Mc or Mac" do it "should be handled correctly" do Name.new('shane', "mccabe").name.should == "Shane McCabe" @@ -469,13 +483,17 @@ Name.new('Stephen M.', 'Ffrench').alternatives(:first).should =~ %w{Steve} Name.new('S.', 'Ffrench').alternatives(:first).should =~ [] Name.new('Sean', 'Bradley').alternatives(:first).should =~ [] end + it "should have automatic last name alternatives for apostrophes to cater for FIDE's habits" do + Name.new('Mairead', "O'Siochru").alternatives(:last).should =~ ["O`Siochru"] + Name.new('Erwin E.', "L`Ami").alternatives(:last).should =~ ["L`Ami"] + end + it "should not have any last name alternatives" do Name.new('William', 'Ffrench').alternatives(:last).should =~ [] - Name.new('Mairead', "O'Siochru").alternatives(:last).should =~ [] Name.new('Oissine', 'Murphy').alternatives(:last).should =~ [] Name.new('Debbie', 'Quinn').alternatives(:last).should =~ [] end end @@ -493,10 +511,10 @@ Name.new('John', 'Bradley').alternatives(:first).should =~ %w{Sean Johnny} end it "should have some last name alternatives" do Name.new('William', 'Ffrench').alternatives(:last).should =~ %w{French} - Name.new('Mairead', "O'Siochru").alternatives(:last).should =~ %w{King} + Name.new('Mairead', "O'Siochru").alternatives(:last).should =~ %w{King O`Siochru} Name.new('Oissine', 'Murphy').alternatives(:last).should =~ %w{Murchadha} Name.new('Debbie', 'Quinn').alternatives(:last).should =~ %w{Benjamin} Name.new('Mark', 'Quinn').alternatives(:last).should =~ [] Name.new('Debbie', 'Quinn-French').alternatives(:last).should =~ %w{Benjamin Ffrench} end