Sha256: e5d4b64240bc76d7e12a7501e4de01f3eb3e2fb17c3eb39cdb5f669f38bb4760

Contents?: true

Size: 1.6 KB

Versions: 2

Compression:

Stored size: 1.6 KB

Contents

require "test_helper"

class Measured::UnitSystemBuilderTest < ActiveSupport::TestCase
  test "#unit adds a new unit" do
    measurable = Measured.build do
      unit :m
      unit :in, aliases: [:inch], value: "0.0254 m"
    end

    assert_equal 2, measurable.unit_names.count
  end

  test "#unit cannot add duplicate unit names" do
    assert_raises Measured::UnitError do
      Measured.build do
        unit :m
        unit :in, aliases: [:inch], value: "0.0254 m"
        unit :in, aliases: [:thing], value: "123 m"
      end
    end

    assert_raises Measured::UnitError do
      Measured.build(case_sensitive: true) do
        unit :m
        unit :in, aliases: [:inch], value: "0.0254 m"
        unit :inch, aliases: [:thing], value: "123 m"
      end
    end

    assert_raises Measured::UnitError do
      Measured.build(case_sensitive: false) do
        unit :normal
        unit :bold, aliases: [:strong], value: "10 normal"
        unit :bolder, aliases: [:BOLD], value: "100 normal"
      end
    end
  end

  test "#case_sensitive true produces a case-sensitive conversion" do
    measurable = Measured.build(case_sensitive: true) do
      unit :normal
      unit :bold, value: "10 normal"
      unit :BOLD, value: "100 normal"
    end

    assert_equal 'BOLD', measurable.unit_system.unit_for!(:BOLD).name
  end

  test "case-insensitive conversion is produced by default" do
    measurable = Measured.build(case_sensitive: false) do
      unit :normal
      unit :bold, value: "10 normal"
      unit :bolder, value: "100 normal"
    end

    assert_equal 'bold', measurable.unit_system.unit_for!(:bOlD).name
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
measured-2.0.0.pre3 test/unit_system_builder_test.rb
measured-2.0.0.pre2 test/unit_system_builder_test.rb