Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make about_hashes.rb pass #6

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 33 additions & 33 deletions about_hashes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,27 @@
class AboutHashes < Neo::Koan
def test_creating_hashes
empty_hash = Hash.new
assert_equal __, empty_hash.class
assert_equal(__, empty_hash)
assert_equal __, empty_hash.size
assert_equal Hash, empty_hash.class
assert_equal({}, empty_hash)
assert_equal 0, empty_hash.size
end

def test_hash_literals
hash = { :one => "uno", :two => "dos" }
assert_equal __, hash.size
assert_equal 2, hash.size
end

def test_accessing_hashes
hash = { :one => "uno", :two => "dos" }
assert_equal __, hash[:one]
assert_equal __, hash[:two]
assert_equal __, hash[:doesnt_exist]
assert_equal "uno", hash[:one]
assert_equal "dos", hash[:two]
assert_equal nil, hash[:doesnt_exist]
end

def test_accessing_hashes_with_fetch
hash = { :one => "uno" }
assert_equal __, hash.fetch(:one)
assert_raise(___) do
assert_equal "uno", hash.fetch(:one)
assert_raise(KeyError) do
hash.fetch(:doesnt_exist)
end

Expand All @@ -36,8 +36,8 @@ def test_changing_hashes
hash = { :one => "uno", :two => "dos" }
hash[:one] = "eins"

expected = { :one => __, :two => "dos" }
assert_equal __, hash
expected = { :one => "uno", :two => "dos" }
assert_equal false, expected == hash

# Bonus Question: Why was "expected" broken out into a variable
# rather than used as a literal?
Expand All @@ -47,47 +47,47 @@ def test_hash_is_unordered
hash1 = { :one => "uno", :two => "dos" }
hash2 = { :two => "dos", :one => "uno" }

assert_equal __, hash1 == hash2
assert_equal true, hash1 == hash2
end

def test_hash_keys
hash = { :one => "uno", :two => "dos" }
assert_equal __, hash.keys.size
assert_equal __, hash.keys.include?(:one)
assert_equal __, hash.keys.include?(:two)
assert_equal __, hash.keys.class
assert_equal 2, hash.keys.size
assert_equal true, hash.keys.include?(:one)
assert_equal true, hash.keys.include?(:two)
assert_equal Array, hash.keys.class
end

def test_hash_values
hash = { :one => "uno", :two => "dos" }
assert_equal __, hash.values.size
assert_equal __, hash.values.include?("uno")
assert_equal __, hash.values.include?("dos")
assert_equal __, hash.values.class
assert_equal 2, hash.values.size
assert_equal true, hash.values.include?("uno")
assert_equal true, hash.values.include?("dos")
assert_equal Array, hash.values.class
end

def test_combining_hashes
hash = { "jim" => 53, "amy" => 20, "dan" => 23 }
new_hash = hash.merge({ "jim" => 54, "jenny" => 26 })

assert_equal __, hash != new_hash
assert_equal true, hash != new_hash

expected = { "jim" => __, "amy" => 20, "dan" => 23, "jenny" => __ }
assert_equal __, expected == new_hash
assert_equal false, expected == new_hash
end

def test_default_value
hash1 = Hash.new
hash1[:one] = 1

assert_equal __, hash1[:one]
assert_equal __, hash1[:two]
assert_equal 1, hash1[:one]
assert_equal nil, hash1[:two]

hash2 = Hash.new("dos")
hash2[:one] = 1

assert_equal __, hash2[:one]
assert_equal __, hash2[:two]
assert_equal 1, hash2[:one]
assert_equal "dos", hash2[:two]
end

def test_default_value_is_the_same_object
Expand All @@ -96,11 +96,11 @@ def test_default_value_is_the_same_object
hash[:one] << "uno"
hash[:two] << "dos"

assert_equal __, hash[:one]
assert_equal __, hash[:two]
assert_equal __, hash[:three]
assert_equal ["uno", "dos"], hash[:one]
assert_equal ["uno", "dos"], hash[:two]
assert_equal ["uno", "dos"], hash[:three]

assert_equal __, hash[:one].object_id == hash[:two].object_id
assert_equal true, hash[:one].object_id == hash[:two].object_id
end

def test_default_value_with_block
Expand All @@ -109,8 +109,8 @@ def test_default_value_with_block
hash[:one] << "uno"
hash[:two] << "dos"

assert_equal __, hash[:one]
assert_equal __, hash[:two]
assert_equal __, hash[:three]
assert_equal ["uno"], hash[:one]
assert_equal ["dos"], hash[:two]
assert_equal [], hash[:three]
end
end