Sha256: 382a50a21cce6b768749e93a56b182d8b630081c3d686360199a60349b2021ed

Contents?: true

Size: 1.76 KB

Versions: 1

Compression:

Stored size: 1.76 KB

Contents

require_relative '../../spec_helper'

describe AIXM::F do
  subject do
    AIXM::Factory.f
  end

  describe :freq= do
    it "fails on invalid values" do
      [:foobar].wont_be_written_to subject, :freq
    end

    it "converts Numeric to Float" do
      subject.tap { |s| s.freq = 5 }.freq.must_equal 5.0
    end
  end

  describe :unit= do
    it "fails on invalid values" do
      [:foobar, 123].wont_be_written_to subject, :unit
    end

    it "symbolizes and downcases values" do
      subject.tap { |s| s.unit = "MHz" }.unit.must_equal :mhz
    end
  end

  describe :between? do
    subject do
      AIXM.f(100, :mhz)
    end

    it "detect frequencies within a frequency band" do
      subject.between?(90, 110, :mhz).must_equal true
      subject.between?(90, 100, :mhz).must_equal true
      subject.between?(100.0, 100.1, :mhz).must_equal true
    end

    it "detect frequencies outside of a frequency band" do
      subject.between?(90, 110, :khz).must_equal false
      subject.between?(90, 95, :mhz).must_equal false
    end
  end

  describe :== do
    it "recognizes objects with identical frequency and unit as equal" do
      a = AIXM.f(123.0, :mhz)
      b = AIXM.f(123, 'MHZ')
      a.must_equal b
    end

    it "recognizes objects with different frequency or unit as unequal" do
      a = AIXM.f(123.35, :mhz)
      b = AIXM.f(123.35, :khz)
      a.wont_equal b
    end

    it "recognizes objects of different class as unequal" do
      a = AIXM.f(123.35, :mhz)
      b = :oggy
      a.wont_equal b
    end
  end

  describe :hash do
    it "returns an integer" do
      subject.hash.must_be_instance_of Integer
    end

    it "allows for the use of instances as hash keys" do
      dupe = subject.dup
      { subject => true }[dupe].must_equal true
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aixm-0.3.3 spec/lib/aixm/f_spec.rb