spec/number_formatting_spec.rb in ffi-icu-0.2.0 vs spec/number_formatting_spec.rb in ffi-icu-0.3.0

- old
+ new

@@ -1,69 +1,72 @@ # encoding: UTF-8 -require 'spec_helper' - module ICU module NumberFormatting describe 'NumberFormatting' do it 'should format a simple integer' do - NumberFormatting.format_number("en", 1).should == "1" - NumberFormatting.format_number("en", 1_000).should == "1,000" - NumberFormatting.format_number("de-DE", 1_000_000).should == "1.000.000" + expect(NumberFormatting.format_number("en", 1)).to eq("1") + expect(NumberFormatting.format_number("en", 1_000)).to eq("1,000") + expect(NumberFormatting.format_number("de-DE", 1_000_000)).to eq("1.000.000") end it 'should format a float' do - NumberFormatting.format_number("en", 1.0).should == "1" - NumberFormatting.format_number("en", 1.123).should == "1.123" - NumberFormatting.format_number("en", 1_000.1238).should == "1,000.124" - NumberFormatting.format_number("en", 1_000.1238, max_fraction_digits: 4).should == "1,000.1238" + expect(NumberFormatting.format_number("en", 1.0)).to eq("1") + expect(NumberFormatting.format_number("en", 1.123)).to eq("1.123") + expect(NumberFormatting.format_number("en", 1_000.1238)).to eq("1,000.124") + expect(NumberFormatting.format_number("en", 1_000.1238, max_fraction_digits: 4)).to eq("1,000.1238") NumberFormatting.set_default_options(fraction_digits: 5) - NumberFormatting.format_number("en", 1_000.1238).should == "1,000.12380" + expect(NumberFormatting.format_number("en", 1_000.1238)).to eq("1,000.12380") NumberFormatting.clear_default_options end it 'should format a decimal' do - NumberFormatting.format_number("en", BigDecimal.new("10000.123")).should == "10,000.123" + expect(NumberFormatting.format_number("en", BigDecimal("10000.123"))).to eq("10,000.123") end it 'should format a currency' do - NumberFormatting.format_currency("en", 123.45, 'USD').should == "$123.45" - NumberFormatting.format_currency("en", 123_123.45, 'USD').should == "$123,123.45" - NumberFormatting.format_currency("de-DE", 123_123.45, 'EUR').should == "123.123,45\u{A0}€" + expect(NumberFormatting.format_currency("en", 123.45, 'USD')).to eq("$123.45") + expect(NumberFormatting.format_currency("en", 123_123.45, 'USD')).to eq("$123,123.45") + expect(NumberFormatting.format_currency("de-DE", 123_123.45, 'EUR')).to eq("123.123,45\u{A0}€") end it 'should format a percent' do - NumberFormatting.format_percent("en", 1.1).should == "110%" - NumberFormatting.format_percent("da", 0.15).should == "15\u{A0}%" - NumberFormatting.format_percent("da", -0.1545, max_fraction_digits: 10).should == "-15,45\u{A0}%" + expect(NumberFormatting.format_percent("en", 1.1)).to eq("110%") + expect(NumberFormatting.format_percent("da", 0.15)).to eq("15\u{A0}%") + expect(NumberFormatting.format_percent("da", -0.1545, max_fraction_digits: 10)).to eq("-15,45\u{A0}%") end it 'should spell numbers' do - NumberFormatting.spell("en_US", 1_000).should == 'one thousand' - NumberFormatting.spell("de-DE", 123.456).should == "ein\u{AD}hundert\u{AD}drei\u{AD}und\u{AD}zwanzig Komma vier fünf sechs" + expect(NumberFormatting.spell("en_US", 1_000)).to eq('one thousand') + expect(NumberFormatting.spell("de-DE", 123.456)).to eq("ein\u{AD}hundert\u{AD}drei\u{AD}und\u{AD}zwanzig Komma vier fünf sechs") end it 'should be able to re-use number formatter objects' do numf = NumberFormatting.create('fr-CA') - numf.format(1_000).should == "1\u{A0}000" - numf.format(1_000.123).should == "1\u{A0}000,123" + expect(numf.format(1_000)).to eq("1\u{A0}000") + expect(numf.format(1_000.123)).to eq("1\u{A0}000,123") end it 'should be able to re-use currency formatter objects' do curf = NumberFormatting.create('en-US', :currency) - curf.format(1_000.12, 'USD').should == "$1,000.12" + expect(curf.format(1_000.12, 'USD')).to eq("$1,000.12") end it 'should allow for various styles of currency formatting if the version is new enough' do if ICU::Lib.version.to_a.first >= 53 curf = NumberFormatting.create('en-US', :currency, style: :iso) - curf.format(1_000.12, 'USD').should == "USD1,000.12" + expected = if ICU::Lib.version.to_a.first >= 62 + "USD\u00A01,000.12" + else + "USD1,000.12" + end + expect(curf.format(1_000.12, 'USD')).to eq(expected) curf = NumberFormatting.create('en-US', :currency, style: :plural) - curf.format(1_000.12, 'USD').should == "1,000.12 US dollars" + expect(curf.format(1_000.12, 'USD')).to eq("1,000.12 US dollars") expect { NumberFormatting.create('en-US', :currency, style: :fake) }.to raise_error(StandardError) else curf = NumberFormatting.create('en-US', :currency, style: :default) - curf.format(1_000.12, 'USD').should == '$1,000.12' + expect(curf.format(1_000.12, 'USD')).to eq('$1,000.12') expect { NumberFormatting.create('en-US', :currency, style: :iso) }.to raise_error(StandardError) end end end end # NumberFormatting