Skip to content

Instantly share code, notes, and snippets.

@JeffCohen
Created August 6, 2012 01:38
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save JeffCohen/3268926 to your computer and use it in GitHub Desktop.
Save JeffCohen/3268926 to your computer and use it in GitHub Desktop.
Coin Change Machine
require 'test/unit'
class ChangeMachine
# Returns an array indicating the quantity of
# each denomination required.
# [pennies, nickels, dimes, quarters]
def issue_coins(amount)
end
end
class ChangeMachineTest < Test::Unit::TestCase
def test_one_penny
machine = ChangeMachine.new
coins = machine.issue_coins(1)
assert_equal [1, 0, 0, 0], coins
end
def test_pennies
machine = ChangeMachine.new
coins = machine.issue_coins(4)
assert_equal [4, 0, 0, 0], coins
end
def test_nickels
machine = ChangeMachine.new
coins = machine.issue_coins(5)
assert_equal [0, 1, 0, 0], coins
end
def test_nickels_and_pennies
machine = ChangeMachine.new
coins = machine.issue_coins(6)
assert_equal [1, 1, 0, 0], coins
end
def test_dimes
machine = ChangeMachine.new
coins = machine.issue_coins(10)
assert_equal [0, 0, 1, 0], coins
end
def test_dimes_and_nickels
machine = ChangeMachine.new
coins = machine.issue_coins(15)
assert_equal [0, 1, 1, 0], coins
end
def test_quarters
machine = ChangeMachine.new
coins = machine.issue_coins(25)
assert_equal [0, 0, 0, 1], coins
end
def test_quarters_and_dimes
machine = ChangeMachine.new
coins = machine.issue_coins(35)
assert_equal [0, 0, 1, 1], coins
end
def test_99
machine = ChangeMachine.new
coins = machine.issue_coins(99)
assert_equal [4, 0, 2, 3], coins
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment