Sha256: 2cb2758bd39ff2de5a3028f0d8647cbe13645f53733ff0eb2cdb42d09e4789cb

Contents?: true

Size: 1.24 KB

Versions: 3

Compression:

Stored size: 1.24 KB

Contents

require 'test_helper'
require 'unitwise/ext'
describe Numeric do

  describe "#convert" do
    it "must work for Integer" do
      measurement = 22.convert("kg")
      measurement.must_be_instance_of(Unitwise::Measurement)
      measurement.value.must_equal 22
    end
    it "must work for Fixnum" do
      measurement = 24.25.convert("[ft_i]")
      measurement.must_be_instance_of(Unitwise::Measurement)
      measurement.value.must_equal 24.25
    end
    it "must work for Float" do
      measurement = (22.0/7).convert("[mi_i]")
      measurement.must_be_instance_of(Unitwise::Measurement)
      measurement.value.must_equal 3.142857142857143
    end
    it "must work for Rational" do
      measurement = Rational(22/7).convert("N/m2")
      measurement.must_be_instance_of(Unitwise::Measurement)
      measurement.value.must_equal Rational(22/7)
    end
  end

  describe "#method_missing" do
    it "must match mm" do
      mm = 2.5.mm
      mm.must_be_instance_of(Unitwise::Measurement)
      mm.value.must_equal 2.5
    end
    it "must match foot" do
      ft = 4.foot
      ft.must_be_instance_of(Unitwise::Measurement)
      ft.value.must_equal 4
    end
    it "must not match 'foo'" do
      ->{ 1.foo }.must_raise NoMethodError
    end

  end


end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
unitwise-0.3.2 test/unitwise/ext/numeric_test.rb
unitwise-0.3.1 test/unitwise/ext/numeric_test.rb
unitwise-0.3.0 test/unitwise/ext/numeric_test.rb