RubyChangeMaker 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +21 -1
- data/bin/changemaker +21 -0
- data/features/all_usd_denominations.feature +27 -0
- data/features/return_minimum_currency_necessary.feature +35 -0
- data/features/step_definitions/rubychangemaker_steps.rb +130 -0
- data/features/support/env.rb +4 -0
- metadata +6 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: abaa5fb7db490527ab2cdf91b1a34a2dfb02ef3a
|
4
|
+
data.tar.gz: 5c3e4814bef2505a40fa82da405bfb2b7b04aaec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd06b179941a8d7990a9c7eb0beedcf81fcefe74e510f32488bba9d9e645f59028892eb293b821d57fdeb60b323f18e1f4f879f7f233ec9ac2f3fa84b360b58d
|
7
|
+
data.tar.gz: 26e0e61c8a11a3207caa66e559b2fbcdf8277f63f1192855d662391a1ba8ce46a2e8dc0d665a99e73e5527353b4abdf4e5acff2aea18464cc70d78f47717aaca
|
data/README.md
CHANGED
@@ -1,6 +1,26 @@
|
|
1
1
|
# Ruby Change Maker
|
2
2
|
Given a currency amount (assuming US Currency ) returns that amount expressed as the least amount of change using the least number of bills, coins, or combination of bills and coins.
|
3
|
-
|
3
|
+
|
4
|
+
## To use as a gem:
|
5
|
+
|
6
|
+
```
|
7
|
+
gem install RubyChangeMaker
|
8
|
+
```
|
9
|
+
|
10
|
+
Then, in your source file:
|
11
|
+
|
12
|
+
```
|
13
|
+
require 'RubyChangeMaker'
|
14
|
+
|
15
|
+
cm = RubyChangeMaker::Change.new
|
16
|
+
|
17
|
+
dollars, cents = cm.make_change(amt)
|
18
|
+
```
|
19
|
+
|
20
|
+
To see an example program using the Module, look in this repo's **bin/** directory
|
21
|
+
|
22
|
+
|
23
|
+
## To work with the source files:
|
4
24
|
|
5
25
|
### To Run:
|
6
26
|
```
|
data/bin/changemaker
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Nicholas Sardo <ruby.code.artist@gmail.com>
|
3
|
+
|
4
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
5
|
+
require 'rubychangemaker/rubychangemaker'
|
6
|
+
|
7
|
+
cm = RubyChangeMaker::Change.new
|
8
|
+
system 'clear'
|
9
|
+
|
10
|
+
loop do
|
11
|
+
puts "Enter currency amount as floating point, \n(i.e 0.75 for 75 cents or 1.25 for a dollar twenty-five)\nor 'q' to quit: "
|
12
|
+
amt = gets
|
13
|
+
break if amt.match(/q/)
|
14
|
+
|
15
|
+
dollars, cents = cm.make_change(amt)
|
16
|
+
puts "\nYour change is: \n\n"
|
17
|
+
puts "BILLS: #{dollars}\n"
|
18
|
+
puts "COINS: #{cents}\n\n"
|
19
|
+
end
|
20
|
+
|
21
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Feature: Make use of common USD dollar denominations
|
2
|
+
In order to create correct change
|
3
|
+
As a user
|
4
|
+
I want to ensure use of all common USD denominations
|
5
|
+
|
6
|
+
Scenario Outline: all usd denominations
|
7
|
+
Given I have started the program
|
8
|
+
Then available for use should be all current usd <bills> and <coins>
|
9
|
+
|
10
|
+
Scenarios: all current USD bills
|
11
|
+
|bills|
|
12
|
+
|1|
|
13
|
+
|2|
|
14
|
+
|5|
|
15
|
+
|10|
|
16
|
+
|20|
|
17
|
+
|50|
|
18
|
+
|100|
|
19
|
+
|
20
|
+
Scenarios: all current USD coins
|
21
|
+
|coins|
|
22
|
+
|50|
|
23
|
+
|25|
|
24
|
+
|10|
|
25
|
+
|5|
|
26
|
+
|1|
|
27
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
Feature: Calculate change using the minimum number of bills and coins necessary
|
2
|
+
In order to create correct change
|
3
|
+
As a user
|
4
|
+
I want to receive change in the minimum amount of currency necessary
|
5
|
+
|
6
|
+
Scenario Outline: Minimum currency necessary
|
7
|
+
Given I have started the program
|
8
|
+
Then If I enter an amount of <money> I should receive the minimum currency necessary as <change>
|
9
|
+
|
10
|
+
Scenarios: minimum denominations necessary as change
|
11
|
+
|money |change|
|
12
|
+
|55 |{50=>1, 5=>1}|
|
13
|
+
|55.25 |{50=>1, 5=>1}, {25=>1}|
|
14
|
+
|55.26 |{50=>1, 5=>1}, {25=>1, 1=>1}|
|
15
|
+
|55.72 |{50=>1, 5=>1}, {50=>1, 10=>2, 1=>2}|
|
16
|
+
|55.99 |{50=>1, 5=>1}, {50=>1, 25=>1, 10=>2, 1=>4}|
|
17
|
+
|55.93 |{50=>1, 5=>1}, {50=>1, 25=>1, 10=>1, 5=>1, 1=>3}|
|
18
|
+
|114 |{100=>1, 10=>1, 2=>2}|
|
19
|
+
|115 |{100=>1, 10=>1, 5=>1}|
|
20
|
+
|115.25|{100=>1, 10=>1, 5=>1}, {25=>1}|
|
21
|
+
|115.26|{100=>1, 10=>1, 5=>1}, {25=>1, 1=>1}|
|
22
|
+
|115.72|{100=>1, 10=>1, 5=>1}, {50=>1, 10=>2, 1=>2}|
|
23
|
+
|115.99|{100=>1, 10=>1, 5=>1}, {50=>1, 25=>1, 10=>2, 1=>4}|
|
24
|
+
|115.93|{100=>1, 10=>1, 5=>1}, {50=>1, 25=>1, 10=>1, 5=>1, 1=>3}|
|
25
|
+
|162 |{100=>1, 50=>1, 10=>1, 2=>1}|
|
26
|
+
|157.25|{100=>1, 50=>1, 5=>1, 2=>1}, {25=>1}|
|
27
|
+
|157.26|{100=>1, 50=>1, 5=>1, 2=>1}, {25=>1, 1=>1}|
|
28
|
+
|157.76|{100=>1, 50=>1, 5=>1, 2=>1},{50=>1, 25=>1, 1=>1}|
|
29
|
+
|157.99|{100=>1, 50=>1, 5=>1, 2=>1}, {50=>1, 25=>1, 10=>2, 1=>4}|
|
30
|
+
|157.93|{100=>1, 50=>1, 5=>1, 2=>1}, {50=>1, 25=>1, 10=>1, 5=>1, 1=>3}|
|
31
|
+
|237.25|{100=>2, 20=>1, 10=>1, 5=>1, 2=>1}, {25=>1}|
|
32
|
+
|237.55|{100=>2, 20=>1, 10=>1, 5=>1, 2=>1}, {50=>1, 5=>1}|
|
33
|
+
|237.76|{100=>2, 20=>1, 10=>1, 5=>1, 2=>1}, {50=>1, 25=>1, 1=>1}|
|
34
|
+
|237.99|{100=>2, 20=>1, 10=>1, 5=>1, 2=>1}, {50=>1, 25=>1, 10=>2, 1=>4}|
|
35
|
+
|237.93|{100=>2, 20=>1, 10=>1, 5=>1, 2=>1}, {50=>1, 25=>1, 10=>1, 5=>1, 1=>3}|
|
@@ -0,0 +1,130 @@
|
|
1
|
+
# Nicholas Sardo <ruby.code.artist@gmail.com>
|
2
|
+
|
3
|
+
Given(/^I have started the program$/) do
|
4
|
+
@c = RubyChangeMaker::Change.new
|
5
|
+
end
|
6
|
+
|
7
|
+
# all current USD Bills
|
8
|
+
Then(/^available for use should be all current usd (\d+) and <coins>$/) do |arg1|
|
9
|
+
RubyChangeMaker::Change::BILLS.include?(arg1)
|
10
|
+
end
|
11
|
+
|
12
|
+
# all current USD Coins
|
13
|
+
Then(/^available for use should be all current usd <bills> and (\d+)$/) do |arg1|
|
14
|
+
RubyChangeMaker::Change::COINS.include?(arg1)
|
15
|
+
end
|
16
|
+
|
17
|
+
#BILLS: 2, COINS: 0
|
18
|
+
Then(/^If I enter an amount of (\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5|
|
19
|
+
@c.make_change(arg1.to_i) == {arg2=>arg3, arg4=>arg5}
|
20
|
+
end
|
21
|
+
|
22
|
+
#BILLS: 2, COINS: 1
|
23
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8|
|
24
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6}, {arg7=>arg8}]
|
25
|
+
end
|
26
|
+
|
27
|
+
#BILLS: 2, COINS: 2
|
28
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10|
|
29
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6}, {arg7=>arg8, arg9=>arg10}]
|
30
|
+
end
|
31
|
+
|
32
|
+
#BILLS: 2, COINS: 3
|
33
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12|
|
34
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6}, {arg7=>arg8, arg9=>arg10, arg11=>arg12}]
|
35
|
+
end
|
36
|
+
|
37
|
+
#BILLS: 2, COINS: 4
|
38
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14|
|
39
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6}, {arg7=>arg8, arg9=>arg10, arg11=>arg12, arg13=>arg14}]
|
40
|
+
end
|
41
|
+
|
42
|
+
#BILLS: 2, COINS: 5
|
43
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16|
|
44
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6}, {arg7=>arg8, arg9=>arg10, arg11=>arg12, arg13=>arg14, arg15=>arg16}]
|
45
|
+
end
|
46
|
+
|
47
|
+
#BILLS: 3, COINS: 0
|
48
|
+
Then(/^If I enter an amount of (\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7|
|
49
|
+
@c.make_change(arg1.to_i) == {arg2=>arg3, arg4=>arg5, arg6=>arg7}
|
50
|
+
end
|
51
|
+
|
52
|
+
#BILLS: 3, COINS: 1
|
53
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10|
|
54
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8}, {arg9=>arg10}]
|
55
|
+
end
|
56
|
+
|
57
|
+
#BILLS: 3, COINS: 2
|
58
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12|
|
59
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8}, {arg9=>arg10, arg11=>arg12}]
|
60
|
+
end
|
61
|
+
|
62
|
+
#BILLS: 3, COINS: 3
|
63
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14|
|
64
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8}, {arg9=>arg10, arg11=>arg12, arg13=>arg14}]
|
65
|
+
end
|
66
|
+
|
67
|
+
#BILLS: 3, COINS: 4
|
68
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16|
|
69
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8}, {arg9=>arg10, arg11=>arg12, arg13=>arg14, arg15=>arg16}]
|
70
|
+
end
|
71
|
+
|
72
|
+
#BILLS: 3, COINS: 5
|
73
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18|
|
74
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8}, {arg9=>arg10, arg11=>arg12, arg13=>arg14, arg15=>arg16, arg17=>arg18}]
|
75
|
+
end
|
76
|
+
|
77
|
+
#BILLS: 4, COINS: 0
|
78
|
+
Then(/^If I enter an amount of (\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9|
|
79
|
+
@c.make_change(arg1.to_i) == {arg2=>arg3, arg4=>arg5, arg6=>arg7, arg8=>arg9}
|
80
|
+
end
|
81
|
+
|
82
|
+
#BILLS: 4, COINS: 1
|
83
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12|
|
84
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8, arg9=>arg10}, {arg11=>arg12}]
|
85
|
+
end
|
86
|
+
|
87
|
+
#BILLS: 4, COINS: 2
|
88
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14|
|
89
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8, arg9=>arg10}, {arg11=>arg12, arg13=>arg14}]
|
90
|
+
end
|
91
|
+
|
92
|
+
#BILLS: 4, COINS: 3
|
93
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\},\{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16|
|
94
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8, arg9=>arg10}, {arg11=>arg12, arg13=>arg14, arg15=>arg16}]
|
95
|
+
end
|
96
|
+
|
97
|
+
#BILLS: 4, COINS: 4
|
98
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18|
|
99
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8, arg9=>arg10}, {arg11=>arg12, arg13=>arg14, arg15=>arg16, arg17=>arg18}]
|
100
|
+
end
|
101
|
+
|
102
|
+
#BILLS: 4, COINS: 5
|
103
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20|
|
104
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8, arg9=>arg10}, {arg11=>arg12, arg13=>arg14, arg15=>arg16, arg17=>arg18, arg19=>arg20}]
|
105
|
+
end
|
106
|
+
|
107
|
+
#BILLS: 5, COINS: 1
|
108
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14|
|
109
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8, arg9=>arg10, arg11=>arg12}, {arg13=>arg14}]
|
110
|
+
end
|
111
|
+
|
112
|
+
#BILLS: 5, COINS: 2
|
113
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16|
|
114
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8, arg9=>arg10, arg11=>arg12}, {arg13=>arg14, arg15=>arg16}]
|
115
|
+
end
|
116
|
+
|
117
|
+
#BILLS: 5, COINS: 3
|
118
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18|
|
119
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8, arg9=>arg10, arg11=>arg12}, {arg13=>arg14, arg15=>arg16, arg17=>arg18}]
|
120
|
+
end
|
121
|
+
|
122
|
+
#BILLS: 5, COINS: 4
|
123
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20|
|
124
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8, arg9=>arg10, arg11=>arg12}, {arg13=>arg14, arg15=>arg16, arg17=>arg18, arg19=>arg20}]
|
125
|
+
end
|
126
|
+
|
127
|
+
#BILLS: 5, COINS: 5
|
128
|
+
Then(/^If I enter an amount of (\d+)\.(\d+) I should receive the minimum currency necessary as \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}, \{(\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+), (\d+)=>(\d+)\}$/) do |arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, arg21, arg22|
|
129
|
+
@c.make_change(Float("#{arg1}.#{arg2}")) == [{arg3=>arg4, arg5=>arg6, arg7=>arg8, arg9=>arg10, arg11=>arg12}, {arg13=>arg14, arg15=>arg16, arg17=>arg18, arg19=>arg20, arg21=>arg22}]
|
130
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: RubyChangeMaker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicholas Sardo
|
@@ -19,6 +19,11 @@ extra_rdoc_files: []
|
|
19
19
|
files:
|
20
20
|
- LICENSE
|
21
21
|
- README.md
|
22
|
+
- bin/changemaker
|
23
|
+
- features/all_usd_denominations.feature
|
24
|
+
- features/return_minimum_currency_necessary.feature
|
25
|
+
- features/step_definitions/rubychangemaker_steps.rb
|
26
|
+
- features/support/env.rb
|
22
27
|
- lib/rubychangemaker.rb
|
23
28
|
- lib/rubychangemaker/rubychangemaker.rb
|
24
29
|
homepage: https://rubygems.org/gems/RubyChangeMaker
|