require_relative "../helper" class TestDictionary < MiniTest::Test def setup @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