rubyx/test/parfait/test_dictionary.rb

98 lines
2.4 KiB
Ruby
Raw Normal View History

2018-04-26 11:31:37 +02:00
require_relative "helper"
2018-04-26 11:31:37 +02:00
module Parfait
class TestDictionary < ParfaitTest
2018-04-26 11:31:37 +02:00
def setup
super
@lookup = ::Parfait::Dictionary.new
end
2018-04-26 11:31:37 +02:00
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