summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coins2.py38
1 files changed, 28 insertions, 10 deletions
diff --git a/coins2.py b/coins2.py
index c2c128b..bc23c56 100644
--- a/coins2.py
+++ b/coins2.py
@@ -4,26 +4,34 @@ DIME = 0.10
NICKEL = 0.05
PENNY = 0.01
-def calculate_with(total, coin):
+def coins(total, coin):
+ if total < coin:
+ return 0
+
remainder = round(total % coin, 2)
return round((total - remainder) / coin)
-def calculate(money):
- quarters = calculate_with(money, QUARTER)
- money = money - (quarters * QUARTER)
+def calculate(total):
+ quarters = coins(total, QUARTER)
+ total = round(total - (quarters * QUARTER), 2)
- dimes = calculate_with(money, DIME)
- money = money - (dimes * DIME)
+ dimes = coins(total, DIME)
+ total = round(total - (dimes * DIME), 2)
- nickels = calculate_with(money, NICKEL)
- money = money - (nickels * NICKEL)
+ nickels = coins(total, NICKEL)
+ total = round(total - (nickels * NICKEL), 2)
- pennies = round(money * 100)
+ pennies = round(total * 100)
+ print([quarters, dimes, nickels, pennies])
return [quarters, dimes, nickels, pennies]
-assert [0, 0, 0, 0] == calculate(0.00)
+def receipt(total):
+ coins = calculate(total)
+ return f"quarters:{coins[0]}; dimes:{coins[1]}; nickels:{coins[2]}; pennies:{coins[3]}"
+assert [76, 1, 1, 0] == calculate(19.15)
+assert [0, 0, 0, 0] == calculate(0.00)
assert [0, 0, 0, 1] == calculate(0.01)
assert [0, 0, 1, 0] == calculate(0.05)
assert [0, 0, 1, 1] == calculate(0.06)
@@ -34,6 +42,16 @@ assert [1, 0, 0, 0] == calculate(0.25)
assert [1, 0, 0, 1] == calculate(0.26)
assert [1, 0, 1, 1] == calculate(0.31)
assert [1, 1, 1, 1] == calculate(0.41)
+assert [3, 1, 1, 4] == calculate(0.94)
assert [4, 0, 0, 1] == calculate(1.01)
+assert [5, 0, 1, 1] == calculate(1.31)
+
+
+assert "quarters:0; dimes:1; nickels:0; pennies:0" == receipt(0.10)
+assert "quarters:1; dimes:0; nickels:0; pennies:0" == receipt(0.25)
+assert "quarters:1; dimes:1; nickels:1; pennies:1" == receipt(0.41)
+assert "quarters:3; dimes:1; nickels:1; pennies:4" == receipt(0.94)
+assert "quarters:5; dimes:0; nickels:1; pennies:1" == receipt(1.31)
+assert "quarters:76; dimes:1; nickels:1; pennies:0" == receipt(19.15)
print("All tests are passing!")