Class: TestKyaniteDictionary

Inherits
UnitTest
  • Object
show all
Defined in
test/test_dictionary.rb

Dictionary Additions

Kyanite definitions

Dictionary, Hash

Kyanite tests and examples

TestKyaniteDictionary

Base class

Hashery::Dictionary (A Dictionary is a Hash that preserves order.)

Usage

require 'kyanite/dictionary'

Instance Method Summary (collapse)

Instance Method Details

- (Object) test_create



49
50
51
52
# File 'test/test_dictionary.rb', line 49

def test_create 
  hsh = Dictionary['z', 1, 'a', 2, 'c', 3] 
  assert_equal( ['z','a','c'], hsh.keys )
end

- (Object) test_each



33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'test/test_dictionary.rb', line 33

def test_each
  test = Dictionary[ 'a', 1, 'b', 2, 'c', 3 ]
  test.each do | k, v|
    assert_equal String, k.class
    assert_equal Fixnum, v.class
  end
  
  test.each_with_index do | k, v, i|
    assert_equal String, k.class
    assert_equal Fixnum, v.class
    assert_equal Fixnum, i.class
  end
    
end

- (Object) test_insert



79
80
81
82
83
84
85
86
87
88
89
90
# File 'test/test_dictionary.rb', line 79

def test_insert
  # front
  h = Dictionary['a', 1, 'b', 2, 'c', 3]
  r = Dictionary['d', 4, 'a', 1, 'b', 2, 'c', 3]
  assert_equal( 4, h.insert(0,'d',4) )
  assert_equal( r, h )
  # back
  h = Dictionary['a', 1, 'b', 2, 'c', 3]
  r = Dictionary['a', 1, 'b', 2, 'c', 3, 'd', 4]
  assert_equal( 4, h.insert(-1,'d',4) )
  assert_equal( r, h )
end

- (Object) test_is_collection



14
15
16
# File 'test/test_dictionary.rb', line 14

def test_is_collection
  assert Dictionary[1,2,3,4].is_collection?
end

- (Object) test_merge



109
110
111
112
113
114
115
116
117
118
119
120
# File 'test/test_dictionary.rb', line 109

def test_merge
  # with other orderred hash
  h1 = Dictionary['a', 1, 'b', 2, 'c', 3]
  h2 = Dictionary['d', 4]
  r = Dictionary['a', 1, 'b', 2, 'c', 3, 'd', 4]
  assert_equal( r, h1.merge(h2) )
  # with other hash
  h1 = Dictionary['a', 1, 'b', 2, 'c', 3]
  h2 = { 'd' => 4 }
  r = Dictionary['a', 1, 'b', 2, 'c', 3, 'd', 4]
  assert_equal( r, h1.merge(h2) )
end

- (Object) test_op_store



55
56
57
58
59
60
61
# File 'test/test_dictionary.rb', line 55

def test_op_store
  hsh = Dictionary.new
  hsh['z'] = 1
  hsh['a'] = 2
  hsh['c'] = 3
  assert_equal( ['z','a','c'], hsh.keys )
end

- (Object) test_order_by



123
124
125
126
127
128
# File 'test/test_dictionary.rb', line 123

def test_order_by
  h1 = Dictionary['a', 3, 'b', 2, 'c', 1]
  h1.order_by{ |k,v| v }
  assert_equal( [1,2,3], h1.values )
  assert_equal( ['c','b','a'], h1.keys )
end

- (Object) test_push



64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'test/test_dictionary.rb', line 64

def test_push
  hsh = Dictionary['a', 1, 'c', 2, 'z', 3]
  assert( hsh.push('end', 15) )
  assert_equal( 15, hsh['end'] )
  assert( ! hsh.push('end', 30) )
  assert( hsh.unshift('begin', 50) )
  assert_equal( 50, hsh['begin'] )
  assert( ! hsh.unshift('begin', 60) )
  assert_equal( ["begin", "a", "c", "z", "end"], hsh.keys )
  assert_equal( ["end", 15], hsh.pop )
  assert_equal( ["begin", "a", "c", "z"], hsh.keys )
  assert_equal( ["begin", 50], hsh.shift )
end

- (Object) test_to_dictionary



19
20
21
22
23
24
25
26
27
28
# File 'test/test_dictionary.rb', line 19

def test_to_dictionary
  test = {  :a => 1, 
            :b => 2,
            :c => 3  }
  dict = test.to_dictionary
  assert_equal 3,    dict.size
  assert_equal 1,    dict[:a]
  assert_equal 2,    dict[:b]
  assert_equal 3,    dict[:c]
end

- (Object) test_update



93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'test/test_dictionary.rb', line 93

def test_update
  # with other orderred hash
  h1 = Dictionary['a', 1, 'b', 2, 'c', 3]
  h2 = Dictionary['d', 4]
  r = Dictionary['a', 1, 'b', 2, 'c', 3, 'd', 4]
  assert_equal( r, h1.update(h2) )
  assert_equal( r, h1 )
  # with other hash
  h1 = Dictionary['a', 1, 'b', 2, 'c', 3]
  h2 = { 'd' => 4 }
  r = Dictionary['a', 1, 'b', 2, 'c', 3, 'd', 4]
  assert_equal( r, h1.update(h2) )
  assert_equal( r, h1 )
end