Sha256: d58803348e161f6cff9123fea7219450f7fa3d4ce069ee553ff78a7efec5eb1d

Contents?: true

Size: 1.57 KB

Versions: 9

Compression:

Stored size: 1.57 KB

Contents

# encoding: UTF-8

# Copyright 2012 Twitter, Inc
# http://www.apache.org/licenses/LICENSE-2.0

require 'spec_helper'

include TwitterCldr::Formatters

describe LongDecimalFormatter do
  let(:data_reader) do
    TwitterCldr::DataReaders::NumberDataReader.new(:en, :type => :long_decimal)
  end

  let(:formatter) { data_reader.formatter }
  let(:tokenizer) { data_reader.tokenizer }

  it "formats valid numbers correctly (from 10^3 - 10^15)" do
    expected = {
      10 ** 3 => "1 thousand",
      10 ** 4 => "10 thousand",
      10 ** 5 => "100 thousand",
      10 ** 6 => "1 million",
      10 ** 7 => "10 million",
      10 ** 8 => "100 million",
      10 ** 9 => "1 billion",
      10 ** 10 => "10 billion",
      10 ** 11 => "100 billion",
      10 ** 12 => "1 trillion",
      10 ** 13 => "10 trillion",
      10 ** 14 => "100 trillion"
    }

    expected.each do |num, text|
      pattern = data_reader.pattern(num)
      expect(formatter.format(tokenizer.tokenize(pattern), num)).to eq(text)
    end
  end

  def format_number(number, options = {})
    pattern = data_reader.pattern(number)
    formatter.format(tokenizer.tokenize(pattern), number, options)
  end

  it "formats the number as if it were a straight decimal if it exceeds 10^15" do
    expect(format_number(10**15)).to eq("1,000,000,000,000,000")
  end

  it "formats the number as if it were a straight decimal if it's less than 1000" do
    expect(format_number(500)).to eq("500")
  end

  it "respects the :precision option" do
    expect(format_number(12345, :precision => 3)).to match_normalized("12.345 thousand")
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
twitter_cldr-3.0.10 spec/formatters/numbers/abbreviated/long_decimal_formatter_spec.rb
twitter_cldr-3.0.9 spec/formatters/numbers/abbreviated/long_decimal_formatter_spec.rb
twitter_cldr-3.0.8 spec/formatters/numbers/abbreviated/long_decimal_formatter_spec.rb
twitter_cldr-3.0.7 spec/formatters/numbers/abbreviated/long_decimal_formatter_spec.rb
twitter_cldr-3.0.6 spec/formatters/numbers/abbreviated/long_decimal_formatter_spec.rb
twitter_cldr-3.0.5 spec/formatters/numbers/abbreviated/long_decimal_formatter_spec.rb
twitter_cldr-3.0.4 spec/formatters/numbers/abbreviated/long_decimal_formatter_spec.rb
twitter_cldr-3.0.3 spec/formatters/numbers/abbreviated/long_decimal_formatter_spec.rb
twitter_cldr-3.0.2 spec/formatters/numbers/abbreviated/long_decimal_formatter_spec.rb