Class SymTblTest
In: lib/sym_tbl.rb
Parent: Test::Unit::TestCase

Methods

Public Instance methods

[Source]

# File lib/sym_tbl.rb, line 127
    def setup
      @father = SymTbl.new
      @father[:a] = 0
      @father[:b] = 1
      @son = SymTbl.new(@father)
      @son[:a] = 10
      @son[:c] = 2
    end

[Source]

# File lib/sym_tbl.rb, line 136
    def test1
      root = SymTbl.new

      root[:a] = 0
      root[:b] = 1

      assert_equal(1, root[:b], 't1')
      assert_equal(0, root[:a], 't2')

      sub1 = SymTbl.new(root)

      sub1[:a] = 2
      sub1[:c] = 3

      assert_equal(1, sub1[:b], 't3')
      assert_equal(2, sub1[:a], 't4')
      assert_equal(3, sub1[:c], 't5')

      assert_equal(0, root[:a], 't6')

      sub2 = SymTbl.new(sub1)

      assert_equal(2, sub2[:a], 't7')

      sub2[:a] = 42

      assert_equal(42, sub2[:a], 't8')

      assert_equal([{4=>{:a=>42}}, {3=>{:a=>2, :c=>3}}, {2=>{:b=>1, :a=>0}}],
                   YAML::load(sub2.desc))
    end

[Source]

# File lib/sym_tbl.rb, line 168
    def test_has_key?
      assert(@son.has_key?(:a))
      assert(@son.has_key?(:b))
      assert(@son.has_key?(:c))
      assert(! @son.has_key?(:not_a_key))
    end

[Source]

# File lib/sym_tbl.rb, line 184
    def test_merge
      s = SymTbl.new
      s[:a] = 40
      s[:c] = 42
      r = @son.merge(s)
      assert_equal(10, @son[:a])
      assert_equal(2, @son[:c])
      assert_equal(40, r[:a])
      assert_equal(1, r[:b])
      assert_equal(42, r[:c])
      assert_equal(@son, r.father)
    end

[Source]

# File lib/sym_tbl.rb, line 175
    def test_merge!
      s = SymTbl.new
      s[:a] = 40
      s[:c] = 42
      @son.merge!(s)
      assert_equal(40, @son[:a])
      assert_equal(42, @son[:c])
    end

[Validate]