require_relative "helper" module Parfait class TestDictionary < ParfaitTest def setup super @lookup = ::Parfait::Dictionary.new end def test_dict_create assert_equal 0 , @lookup.length assert @lookup.empty? end def test_empty_dict_doesnt_return assert_nil @lookup.get(3) assert_nil @lookup.get(:any) end def test_one_set1 assert_equal 1 , @lookup.set(1,1) assert_equal 1 , @lookup.length end def test_one_double assert_equal 1 , @lookup.set(1,1) assert_equal 3 , @lookup.set(1,3) assert_equal 1 , @lookup.length end def test_one_double2 assert_equal 1 , @lookup.set(:one,1) assert_equal 3 , @lookup.set(:one,3) assert_equal 1 , @lookup.length end def test_one_set2 assert_equal :some , @lookup.set(1,:some) end def test_two_sets assert_equal 1 , @lookup.set(1,1) assert_equal :some , @lookup.set(1,:some) end def test_one_get1 test_one_set1 assert_equal 1 , @lookup.get(1) end def test_one_get2 test_one_set2 assert_equal :some , @lookup.get(1) end def test_inspect1 @lookup[:key] = :value assert_equal "Dictionary{key => value ,}" , @lookup.inspect end def test_inspect2 @lookup[:key1] = :value1 @lookup[:key2] = :value2 assert_equal "Dictionary{key1 => value1 ,key2 => value2 ,}" , @lookup.inspect end def test_many_get shouldda = { :one => 1 , :two => 2 , :three => 3} shouldda.each do |k,v| @lookup.set(k,v) end @lookup.each do |k,v| assert_equal v , shouldda[k] end end def test_values @lookup[2] = 2 assert @lookup.values.get_length == 1 end def test_keys @lookup[2] = 2 assert @lookup.keys.get_length == 1 end def test_override_exising @lookup[2] = 2 @lookup[2] = :two assert @lookup[2] == :two end end class TestDictionaryNextValue < ParfaitTest def setup super @lookup = ::Parfait::Dictionary.new @lookup[:key1] = :value1 @lookup[:key2] = :value2 @lookup[:key3] = :value3 end def test_next_value_ok assert_equal :value2 , @lookup.next_value(:value1) end def test_next_value_end assert_equal :value3 , @lookup.next_value(:value2) end def test_next_value_not assert_nil @lookup.next_value(:value3) end end end