Sha256: 32fe9bf16863742c3f2a43ffd622f78bda489c55b11392afb8c3f366eeedf914

Contents?: true

Size: 1.92 KB

Versions: 1

Compression:

Stored size: 1.92 KB

Contents

require 'test/unit'
require 'test/framework'

require 'units'

class TC_formatting_derived < Test::Unit::TestCase
  
  understands UnitsTest

  def test_formatting_derived

    Units.create :length do |m|
      m.system :metric do |s|
        s.unit :name => :meter, :abbrev => :m, :greek => :ten
      end
    end
    Units.derive :volume, Units.length**3 do |m|
      m.system :metric do |s|
        s.unit :name => :milliliter, :abbrev => :ml, :equals => 1.cm**3
      end
    end
    Units.create :time do |m|
      m.system :base do |s|
        s.unit :name => :second, :abbrev => :s
      end
    end

    assert((225.ml/5.cm) =~ (45.0.cm^2))

    a = 225.ml
    assert(a.to_s == "225 milliliters")

    b = 5.cm
    c = 15.cm^3
    assert((a/b).to_s == "45.0 cm^2")
    assert((b/a).to_s == "222.222222222222 1/m^2")
    assert((a*b).to_s == "1125.0 cm^4")
    ba = (b*a).to_s
    assert((ba == "1.125e-05 m^4")||(ba == "1.125e-005 m^4"))
    assert((a+c).to_s == "240.0 cm^3")
    assert((c+a).to_s == "0.00024 m^3")
    assert((a-c).to_s == "210.0 cm^3")
    assert((c-a).to_s == "-0.00021 m^3")

    assert(c.in_ml.to_s == "15.0 milliliters")

    c = 15.cm^7
    assert(c.ml.to_s == "15.0 cm ml^2")
    NumericWithUnits.derived_align_type = :fractional_powers
    assert(c.ml.to_s == "15.0 ml^2.33333333333333")

    d = 15.ml^(7.0/3)
    assert(d =~ c)
    assert(c =~ d)
    assert(c.ml =~ d)
    assert(d.cm =~ c)

    assert(c.in_ml =~ 15.ml^(7.0/3))
    d = c.to_ml
    assert(d.to_s == "15.0 ml^2.33333333333333")

    NumericWithUnits.derived_align_type = :whole_powers
    assert((225.ml/5.cm).to_s == '45.0 cm^2')
    assert((225.ml/5.cm).in_ml.to_s == '45.0 ml / cm')

    assert((225.ml/5.cm).align([1.cm^2]).to_s == '45.0 cm^2')
    assert((225.ml/5.cm).align([1.ml,1/cm]).to_s == '45.0 ml / cm')
    assert((225.ml/5.cm).align([1.m^2]).to_s == '0.0045 m^2')
    assert((225.ml/5.cm).align([1.ml,1/m]).to_s == '4500.0 ml / m')

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
eymiha_units-0.1.0 test/tc_formatting_derived.rb