Skip to content

Commit a288a07

Browse files
authored
Add ex03-wallet to ruby module (#6)
1 parent 8fc678e commit a288a07

File tree

3 files changed

+127
-0
lines changed

3 files changed

+127
-0
lines changed

courses/ruby/ex03-wallet/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# TODO: Structure and finalize me please !
2+
3+
Use ex01 README.md as a template.

courses/ruby/ex03-wallet/wallet.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class Wallet
2+
3+
end
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
require 'minitest/autorun'
2+
require 'minitest/pride'
3+
require_relative 'wallet'
4+
5+
class WalletTest < Minitest::Test
6+
def test_wallet_starts_at_zero
7+
skip
8+
wallet = Wallet.new
9+
assert_equal 0, wallet.cents
10+
assert_equal 0, wallet.dollars
11+
end
12+
13+
def test_wallet_starts_at_non_zero
14+
skip
15+
wallet = Wallet.new(:penny, :nickel)
16+
assert_equal 6, wallet.cents
17+
assert_equal 0.06, wallet.dollars
18+
end
19+
20+
def test_add_pennies
21+
skip
22+
wallet = Wallet.new
23+
wallet << :penny
24+
assert_equal 1, wallet.cents
25+
assert_equal 0.01, wallet.dollars
26+
27+
3.times { wallet << :penny }
28+
assert_equal 4, wallet.cents
29+
assert_equal 0.04, wallet.dollars
30+
end
31+
32+
def test_add_nickels
33+
skip
34+
wallet = Wallet.new
35+
wallet << :nickel
36+
assert_equal 5, wallet.cents
37+
assert_equal 0.05, wallet.dollars
38+
39+
3.times { wallet << :nickel }
40+
assert_equal 20, wallet.cents
41+
assert_equal 0.2, wallet.dollars
42+
end
43+
44+
def test_add_dimes
45+
skip
46+
wallet = Wallet.new
47+
wallet << :dime
48+
assert_equal 10, wallet.cents
49+
assert_equal 0.1, wallet.dollars
50+
51+
3.times { wallet << :dime }
52+
assert_equal 40, wallet.cents
53+
assert_equal 0.4, wallet.dollars
54+
end
55+
56+
def test_add_quarters
57+
skip
58+
wallet = Wallet.new
59+
wallet << :quarter
60+
assert_equal 25, wallet.cents
61+
assert_equal 0.25, wallet.dollars
62+
63+
3.times { wallet << :quarter }
64+
assert_equal 100, wallet.cents
65+
assert_equal 1, wallet.dollars
66+
end
67+
68+
def test_add_dollars
69+
skip
70+
wallet = Wallet.new
71+
wallet << :dollar
72+
assert_equal 100, wallet.cents
73+
assert_equal 1, wallet.dollars
74+
75+
3.times { wallet << :dollar }
76+
assert_equal 400, wallet.cents
77+
assert_equal 4, wallet.dollars
78+
79+
end
80+
81+
def test_take_coins_out
82+
skip
83+
wallet = Wallet.new
84+
wallet << :penny
85+
wallet << :penny
86+
wallet << :penny
87+
wallet << :penny
88+
89+
wallet.take(:penny)
90+
assert_equal 3, wallet.cents
91+
assert_equal 0.03, wallet.dollars
92+
93+
wallet.take(:penny, :penny)
94+
assert_equal 1, wallet.cents
95+
assert_equal 0.01, wallet.dollars
96+
97+
end
98+
99+
def test_take_various_coins_out
100+
skip
101+
wallet = Wallet.new
102+
wallet << :penny
103+
wallet << :dime
104+
wallet << :quarter
105+
wallet << :quarter
106+
107+
wallet.take(:dime, :quarter)
108+
assert_equal 26, wallet.cents
109+
assert_equal 0.26, wallet.dollars
110+
111+
end
112+
113+
def test_ignore_coins_that_are_not_there
114+
skip
115+
wallet = Wallet.new
116+
wallet << :penny
117+
wallet.take(:dime)
118+
assert_equal 1, wallet.cents
119+
assert_equal 0.01, wallet.dollars
120+
end
121+
end

0 commit comments

Comments
 (0)