games_dice 0.3.9 → 0.4.0
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 +7 -0
- data/.rubocop.yml +15 -0
- data/.travis.yml +9 -12
- data/CHANGELOG.md +29 -13
- data/Gemfile +2 -0
- data/README.md +5 -5
- data/Rakefile +14 -11
- data/ext/games_dice/extconf.rb +4 -22
- data/ext/games_dice/probabilities.c +1 -1
- data/games_dice.gemspec +26 -28
- data/lib/games_dice/bunch.rb +241 -247
- data/lib/games_dice/complex_die.rb +287 -303
- data/lib/games_dice/complex_die_helpers.rb +68 -0
- data/lib/games_dice/constants.rb +10 -10
- data/lib/games_dice/dice.rb +146 -143
- data/lib/games_dice/die.rb +101 -97
- data/lib/games_dice/die_result.rb +193 -189
- data/lib/games_dice/map_rule.rb +72 -70
- data/lib/games_dice/marshal.rb +18 -13
- data/lib/games_dice/parser.rb +219 -218
- data/lib/games_dice/reroll_rule.rb +76 -77
- data/lib/games_dice/version.rb +3 -1
- data/lib/games_dice.rb +19 -16
- data/spec/bunch_spec.rb +399 -421
- data/spec/complex_die_spec.rb +314 -306
- data/spec/dice_spec.rb +33 -34
- data/spec/die_result_spec.rb +163 -170
- data/spec/die_spec.rb +81 -82
- data/spec/helpers.rb +26 -22
- data/spec/map_rule_spec.rb +40 -44
- data/spec/parser_spec.rb +106 -82
- data/spec/probability_spec.rb +530 -527
- data/spec/readme_spec.rb +404 -384
- data/spec/reroll_rule_spec.rb +40 -44
- metadata +63 -74
- data/lib/games_dice/probabilities.rb +0 -445
data/spec/dice_spec.rb
CHANGED
@@ -1,34 +1,33 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
before :each do
|
8
|
-
srand(
|
9
|
-
end
|
10
|
-
|
11
|
-
describe '1d10+2' do
|
12
|
-
let(:dice) { GamesDice::Dice.new(
|
13
|
-
|
14
|
-
it
|
15
|
-
[5,4,10,10,7,5,9].each do |expected_total|
|
16
|
-
dice.roll.
|
17
|
-
dice.result.
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe '2d6+6' do
|
23
|
-
let(:dice) { GamesDice::Dice.new(
|
24
|
-
|
25
|
-
it
|
26
|
-
[15,12,17,15,13,13,16].each do |expected_total|
|
27
|
-
dice.roll.
|
28
|
-
dice.result.
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
|
34
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'helpers'
|
4
|
+
|
5
|
+
describe GamesDice::Dice do
|
6
|
+
describe 'dice scheme' do
|
7
|
+
before :each do
|
8
|
+
srand(67_809)
|
9
|
+
end
|
10
|
+
|
11
|
+
describe '1d10+2' do
|
12
|
+
let(:dice) { GamesDice::Dice.new([{ sides: 10, ndice: 1 }], 2) }
|
13
|
+
|
14
|
+
it 'should simulate rolling a ten-sided die, and adding two to each result' do
|
15
|
+
[5, 4, 10, 10, 7, 5, 9].each do |expected_total|
|
16
|
+
expect(dice.roll).to eql expected_total
|
17
|
+
expect(dice.result).to eql expected_total
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '2d6+6' do
|
23
|
+
let(:dice) { GamesDice::Dice.new([{ sides: 6, ndice: 2 }], 6) }
|
24
|
+
|
25
|
+
it 'should simulate rolling two six-sided dice and adding six to the result' do
|
26
|
+
[15, 12, 17, 15, 13, 13, 16].each do |expected_total|
|
27
|
+
expect(dice.roll).to eql expected_total
|
28
|
+
expect(dice.result).to eql expected_total
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/spec/die_result_spec.rb
CHANGED
@@ -1,261 +1,254 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
describe ".new" do
|
3
|
+
require 'helpers'
|
6
4
|
|
5
|
+
describe GamesDice::DieResult do
|
6
|
+
describe '.new' do
|
7
7
|
it "should work without parameters to represent 'no results yet'" do
|
8
|
-
die_result = GamesDice::DieResult.new
|
9
|
-
die_result.value.
|
10
|
-
die_result.rolls.
|
11
|
-
die_result.roll_reasons.
|
8
|
+
die_result = GamesDice::DieResult.new
|
9
|
+
expect(die_result.value).to eql nil
|
10
|
+
expect(die_result.rolls).to eql []
|
11
|
+
expect(die_result.roll_reasons).to eql []
|
12
12
|
end
|
13
13
|
|
14
|
-
it
|
14
|
+
it 'should work with a single Integer param to represent an initial result' do
|
15
15
|
die_result = GamesDice::DieResult.new(8)
|
16
|
-
die_result.value.
|
17
|
-
die_result.rolls.
|
18
|
-
die_result.roll_reasons.
|
16
|
+
expect(die_result.value).to eql 8
|
17
|
+
expect(die_result.rolls).to eql [8]
|
18
|
+
expect(die_result.roll_reasons).to eql [:basic]
|
19
19
|
end
|
20
20
|
|
21
|
-
it
|
22
|
-
|
23
|
-
|
21
|
+
it 'should not accept a param that cannot be coerced to Integer' do
|
22
|
+
expect(-> { GamesDice::DieResult.new([]) }).to raise_error(TypeError)
|
23
|
+
expect(-> { GamesDice::DieResult.new('N') }).to raise_error(ArgumentError)
|
24
24
|
end
|
25
25
|
|
26
|
-
it
|
27
|
-
|
28
|
-
|
26
|
+
it 'should not accept unknown reasons for making a roll' do
|
27
|
+
expect(-> { GamesDice::DieResult.new(8, 'wooo') }).to raise_error(ArgumentError)
|
28
|
+
expect(-> { GamesDice::DieResult.new(8, :frabulous) }).to raise_error(ArgumentError)
|
29
29
|
end
|
30
|
-
|
31
30
|
end
|
32
31
|
|
33
|
-
describe
|
34
|
-
|
32
|
+
describe '#add_roll' do
|
35
33
|
context "starting from 'no results yet'" do
|
36
|
-
let(:die_result) { GamesDice::DieResult.new
|
34
|
+
let(:die_result) { GamesDice::DieResult.new }
|
37
35
|
|
38
|
-
it
|
36
|
+
it 'should create an initial result' do
|
39
37
|
die_result.add_roll(5)
|
40
|
-
die_result.value.
|
41
|
-
die_result.rolls.
|
42
|
-
die_result.roll_reasons.
|
38
|
+
expect(die_result.value).to eql 5
|
39
|
+
expect(die_result.rolls).to eql [5]
|
40
|
+
expect(die_result.roll_reasons).to eql [:basic]
|
43
41
|
end
|
44
42
|
|
45
|
-
it
|
46
|
-
die_result.add_roll(4
|
47
|
-
die_result.value.
|
48
|
-
die_result.rolls.
|
49
|
-
die_result.roll_reasons.
|
43
|
+
it 'should accept non-basic reasons for the first roll' do
|
44
|
+
die_result.add_roll(4, :reroll_subtract)
|
45
|
+
expect(die_result.value).to eql(-4)
|
46
|
+
expect(die_result.rolls).to eql [4]
|
47
|
+
expect(die_result.roll_reasons).to eql [:reroll_subtract]
|
50
48
|
end
|
51
49
|
|
52
|
-
it
|
53
|
-
|
54
|
-
|
50
|
+
it 'should not accept a first param that cannot be coerced to Integer' do
|
51
|
+
expect(-> { die_result.add_roll([]) }).to raise_error(TypeError)
|
52
|
+
expect(-> { die_result.add_roll('N') }).to raise_error(ArgumentError)
|
55
53
|
end
|
56
54
|
|
57
|
-
it
|
58
|
-
|
59
|
-
|
55
|
+
it 'should not accept an unsupported second param' do
|
56
|
+
expect(-> { die_result.add_roll(5, []) }).to raise_error(ArgumentError)
|
57
|
+
expect(-> { die_result.add_roll(15, :bam) }).to raise_error(ArgumentError)
|
60
58
|
end
|
61
|
-
|
62
59
|
end
|
63
60
|
|
64
|
-
context
|
61
|
+
context 'starting with an initial result' do
|
65
62
|
let(:die_result) { GamesDice::DieResult.new(7) }
|
66
63
|
|
67
|
-
it
|
68
|
-
|
69
|
-
|
64
|
+
it 'should not accept a first param that cannot be coerced to Integer' do
|
65
|
+
expect(-> { die_result.add_roll([]) }).to raise_error(TypeError)
|
66
|
+
expect(-> { die_result.add_roll('N') }).to raise_error(ArgumentError)
|
70
67
|
end
|
71
68
|
|
72
|
-
it
|
73
|
-
|
74
|
-
|
69
|
+
it 'should not accept an unsupported second param' do
|
70
|
+
expect(-> { die_result.add_roll(5, []) }).to raise_error(ArgumentError)
|
71
|
+
expect(-> { die_result.add_roll(15, :bam) }).to raise_error(ArgumentError)
|
75
72
|
end
|
76
73
|
|
77
|
-
context
|
78
|
-
it
|
74
|
+
context 'add another basic roll' do
|
75
|
+
it 'should replace an initial result, as if the die were re-rolled' do
|
79
76
|
die_result.add_roll(5)
|
80
|
-
die_result.value.
|
81
|
-
die_result.rolls.
|
82
|
-
die_result.roll_reasons.
|
77
|
+
expect(die_result.value).to eql 5
|
78
|
+
expect(die_result.rolls).to eql [7, 5]
|
79
|
+
expect(die_result.roll_reasons).to eql %i[basic basic]
|
83
80
|
end
|
84
81
|
end
|
85
82
|
|
86
|
-
context
|
87
|
-
it
|
88
|
-
die_result.add_roll(
|
89
|
-
die_result.value.
|
90
|
-
die_result.rolls.
|
91
|
-
die_result.roll_reasons.
|
83
|
+
context 'exploding dice' do
|
84
|
+
it 'should add to value when exploding up' do
|
85
|
+
die_result.add_roll(6, :reroll_add)
|
86
|
+
expect(die_result.value).to eql 13
|
87
|
+
expect(die_result.rolls).to eql [7, 6]
|
88
|
+
expect(die_result.roll_reasons).to eql %i[basic reroll_add]
|
92
89
|
end
|
93
90
|
|
94
|
-
it
|
95
|
-
die_result.add_roll(
|
96
|
-
die_result.value.
|
97
|
-
die_result.rolls.
|
98
|
-
die_result.roll_reasons.
|
91
|
+
it 'should subtract from value when exploding down' do
|
92
|
+
die_result.add_roll(4, :reroll_subtract)
|
93
|
+
expect(die_result.value).to eql 3
|
94
|
+
expect(die_result.rolls).to eql [7, 4]
|
95
|
+
expect(die_result.roll_reasons).to eql %i[basic reroll_subtract]
|
99
96
|
end
|
100
97
|
end
|
101
98
|
|
102
|
-
context
|
103
|
-
it
|
104
|
-
die_result.add_roll(
|
105
|
-
die_result.value.
|
106
|
-
die_result.rolls.
|
107
|
-
die_result.roll_reasons.
|
108
|
-
|
109
|
-
die_result.add_roll(
|
110
|
-
die_result.value.
|
111
|
-
die_result.rolls.
|
112
|
-
die_result.roll_reasons.
|
99
|
+
context 're-roll dice' do
|
100
|
+
it 'should optionally replace roll unconditionally' do
|
101
|
+
die_result.add_roll(2, :reroll_replace)
|
102
|
+
expect(die_result.value).to eql 2
|
103
|
+
expect(die_result.rolls).to eql [7, 2]
|
104
|
+
expect(die_result.roll_reasons).to eql %i[basic reroll_replace]
|
105
|
+
|
106
|
+
die_result.add_roll(5, :reroll_replace)
|
107
|
+
expect(die_result.value).to eql 5
|
108
|
+
expect(die_result.rolls).to eql [7, 2, 5]
|
109
|
+
expect(die_result.roll_reasons).to eql %i[basic reroll_replace reroll_replace]
|
113
110
|
end
|
114
111
|
|
115
|
-
it
|
116
|
-
die_result.add_roll(
|
117
|
-
die_result.value.
|
118
|
-
die_result.rolls.
|
119
|
-
die_result.roll_reasons.
|
112
|
+
it 'should optionally use best roll' do
|
113
|
+
die_result.add_roll(2, :reroll_use_best)
|
114
|
+
expect(die_result.value).to eql 7
|
115
|
+
expect(die_result.rolls).to eql [7, 2]
|
116
|
+
expect(die_result.roll_reasons).to eql %i[basic reroll_use_best]
|
120
117
|
|
121
|
-
die_result.add_roll(
|
122
|
-
die_result.value.
|
123
|
-
die_result.rolls.
|
124
|
-
die_result.roll_reasons.
|
118
|
+
die_result.add_roll(9, :reroll_use_best)
|
119
|
+
expect(die_result.value).to eql 9
|
120
|
+
expect(die_result.rolls).to eql [7, 2, 9]
|
121
|
+
expect(die_result.roll_reasons).to eql %i[basic reroll_use_best reroll_use_best]
|
125
122
|
end
|
126
123
|
|
127
|
-
it
|
128
|
-
die_result.add_roll(
|
129
|
-
die_result.value.
|
130
|
-
die_result.rolls.
|
131
|
-
die_result.roll_reasons.
|
124
|
+
it 'should optionally use worst roll' do
|
125
|
+
die_result.add_roll(4, :reroll_use_worst)
|
126
|
+
expect(die_result.value).to eql 4
|
127
|
+
expect(die_result.rolls).to eql [7, 4]
|
128
|
+
expect(die_result.roll_reasons).to eql %i[basic reroll_use_worst]
|
132
129
|
|
133
|
-
die_result.add_roll(
|
134
|
-
die_result.value.
|
135
|
-
die_result.rolls.
|
136
|
-
die_result.roll_reasons.
|
130
|
+
die_result.add_roll(5, :reroll_use_worst)
|
131
|
+
expect(die_result.value).to eql 4
|
132
|
+
expect(die_result.rolls).to eql [7, 4, 5]
|
133
|
+
expect(die_result.roll_reasons).to eql %i[basic reroll_use_worst reroll_use_worst]
|
137
134
|
end
|
138
135
|
end
|
139
136
|
|
140
|
-
context
|
141
|
-
it
|
142
|
-
die_result.add_roll(
|
143
|
-
die_result.add_roll(
|
144
|
-
die_result.value.
|
145
|
-
die_result.rolls.
|
146
|
-
die_result.roll_reasons.
|
147
|
-
|
148
|
-
die_result.add_roll(
|
149
|
-
die_result.value.
|
150
|
-
die_result.rolls.
|
151
|
-
die_result.roll_reasons.
|
152
|
-
|
153
|
-
die_result.add_roll(
|
154
|
-
die_result.value.
|
155
|
-
die_result.rolls.
|
156
|
-
die_result.roll_reasons.
|
157
|
-
|
158
|
-
|
159
|
-
die_result.
|
160
|
-
die_result.
|
161
|
-
die_result.
|
137
|
+
context 'combinations of reroll reasons' do
|
138
|
+
it 'should correctly handle valid reasons for extra rolls in combination' do
|
139
|
+
die_result.add_roll(10, :reroll_add)
|
140
|
+
die_result.add_roll(3, :reroll_subtract)
|
141
|
+
expect(die_result.value).to eql 14
|
142
|
+
expect(die_result.rolls).to eql [7, 10, 3]
|
143
|
+
expect(die_result.roll_reasons).to eql %i[basic reroll_add reroll_subtract]
|
144
|
+
|
145
|
+
die_result.add_roll(12, :reroll_replace)
|
146
|
+
expect(die_result.value).to eql 12
|
147
|
+
expect(die_result.rolls).to eql [7, 10, 3, 12]
|
148
|
+
expect(die_result.roll_reasons).to eql %i[basic reroll_add reroll_subtract reroll_replace]
|
149
|
+
|
150
|
+
die_result.add_roll(9, :reroll_use_best)
|
151
|
+
expect(die_result.value).to eql 12
|
152
|
+
expect(die_result.rolls).to eql [7, 10, 3, 12, 9]
|
153
|
+
expect(die_result.roll_reasons).to eql %i[basic reroll_add reroll_subtract reroll_replace
|
154
|
+
reroll_use_best]
|
155
|
+
|
156
|
+
die_result.add_roll(15, :reroll_add)
|
157
|
+
expect(die_result.value).to eql 27
|
158
|
+
expect(die_result.rolls).to eql [7, 10, 3, 12, 9, 15]
|
159
|
+
expect(die_result.roll_reasons).to eql %i[basic reroll_add reroll_subtract reroll_replace
|
160
|
+
reroll_use_best reroll_add]
|
162
161
|
end
|
163
162
|
end
|
164
|
-
|
165
163
|
end
|
166
|
-
|
167
164
|
end
|
168
165
|
|
169
|
-
describe
|
170
|
-
let(:die_result) { GamesDice::DieResult.new
|
166
|
+
describe '#explain_value' do
|
167
|
+
let(:die_result) { GamesDice::DieResult.new }
|
171
168
|
|
172
169
|
it "should be empty string for 'no results yet'" do
|
173
|
-
die_result.explain_value.
|
170
|
+
expect(die_result.explain_value).to eql ''
|
174
171
|
end
|
175
172
|
|
176
|
-
it
|
173
|
+
it 'should be a simple stringified number when there is one die roll' do
|
177
174
|
die_result.add_roll(3)
|
178
|
-
die_result.explain_value.
|
175
|
+
expect(die_result.explain_value).to eql '3'
|
179
176
|
end
|
180
177
|
|
181
|
-
it
|
178
|
+
it 'should describe all single rolls made and how they combine' do
|
182
179
|
die_result.add_roll(6)
|
183
|
-
die_result.explain_value.
|
184
|
-
|
185
|
-
die_result.add_roll(5,:reroll_add)
|
186
|
-
die_result.explain_value.should == '[6+5] 11'
|
180
|
+
expect(die_result.explain_value).to eql '6'
|
187
181
|
|
188
|
-
die_result.add_roll(
|
189
|
-
die_result.explain_value.
|
182
|
+
die_result.add_roll(5, :reroll_add)
|
183
|
+
expect(die_result.explain_value).to eql '[6+5] 11'
|
190
184
|
|
191
|
-
die_result.add_roll(
|
192
|
-
die_result.explain_value.
|
185
|
+
die_result.add_roll(2, :reroll_replace)
|
186
|
+
expect(die_result.explain_value).to eql '[6+5|2] 2'
|
193
187
|
|
194
|
-
die_result.add_roll(
|
195
|
-
die_result.explain_value.
|
188
|
+
die_result.add_roll(7, :reroll_subtract)
|
189
|
+
expect(die_result.explain_value).to eql '[6+5|2-7] -5'
|
196
190
|
|
197
|
-
die_result.add_roll(
|
198
|
-
die_result.explain_value.
|
191
|
+
die_result.add_roll(4, :reroll_use_worst)
|
192
|
+
expect(die_result.explain_value).to eql '[6+5|2-7\\4] -5'
|
199
193
|
|
194
|
+
die_result.add_roll(3, :reroll_use_best)
|
195
|
+
expect(die_result.explain_value).to eql '[6+5|2-7\\4/3] 3'
|
200
196
|
end
|
201
|
-
|
202
197
|
end
|
203
198
|
|
204
|
-
it
|
199
|
+
it 'should combine via +,- and * intuitively based on #value' do
|
205
200
|
die_result = GamesDice::DieResult.new(7)
|
206
|
-
(die_result + 3).
|
207
|
-
(4 + die_result).
|
208
|
-
(die_result - 2).
|
209
|
-
(9 - die_result).
|
201
|
+
expect((die_result + 3)).to eql 10
|
202
|
+
expect((4 + die_result)).to eql 11
|
203
|
+
expect((die_result - 2)).to eql 5
|
204
|
+
expect((9 - die_result)).to eql 2
|
210
205
|
|
211
|
-
(die_result + 7.7).
|
212
|
-
(4.1 + die_result).
|
206
|
+
expect((die_result + 7.7)).to eql 14.7
|
207
|
+
expect((4.1 + die_result)).to eql 11.1
|
213
208
|
|
214
|
-
(die_result * 2).
|
215
|
-
(1 * die_result).
|
209
|
+
expect((die_result * 2)).to eql 14
|
210
|
+
expect((1 * die_result)).to eql 7
|
216
211
|
|
217
212
|
other_die_result = GamesDice::DieResult.new(6)
|
218
|
-
other_die_result.add_roll(6
|
219
|
-
(die_result + other_die_result).
|
220
|
-
(other_die_result - die_result).
|
213
|
+
other_die_result.add_roll(6, :reroll_add)
|
214
|
+
expect((die_result + other_die_result)).to eql 19
|
215
|
+
expect((other_die_result - die_result)).to eql 5
|
221
216
|
end
|
222
217
|
|
223
|
-
it
|
218
|
+
it 'should support comparison with >,<,>=,<= as if it were an integer, based on #value' do
|
224
219
|
die_result = GamesDice::DieResult.new(7)
|
225
220
|
|
226
|
-
(die_result > 3).
|
227
|
-
(
|
228
|
-
(die_result >= 7).
|
229
|
-
(9.5
|
230
|
-
(die_result < 3).
|
231
|
-
(
|
232
|
-
(die_result <= 8).
|
233
|
-
(
|
221
|
+
expect((die_result > 3)).to eql true
|
222
|
+
expect((die_result < 14)).to eql true
|
223
|
+
expect((die_result >= 7)).to eql true
|
224
|
+
expect((die_result <= 9.5)).to eql true
|
225
|
+
expect((die_result < 3)).to eql false
|
226
|
+
expect((die_result > 14)).to eql false
|
227
|
+
expect((die_result <= 8)).to eql true
|
228
|
+
expect((die_result >= 14)).to eql false
|
234
229
|
|
235
230
|
other_die_result = GamesDice::DieResult.new(6)
|
236
|
-
other_die_result.add_roll(6
|
237
|
-
(die_result > other_die_result).
|
238
|
-
(other_die_result > die_result).
|
239
|
-
(die_result >= other_die_result).
|
240
|
-
(other_die_result >= die_result).
|
241
|
-
(die_result < other_die_result).
|
242
|
-
(other_die_result < die_result).
|
243
|
-
(die_result <= other_die_result).
|
244
|
-
(other_die_result <= die_result).
|
245
|
-
|
231
|
+
other_die_result.add_roll(6, :reroll_add)
|
232
|
+
expect((die_result > other_die_result)).to eql false
|
233
|
+
expect((other_die_result > die_result)).to eql true
|
234
|
+
expect((die_result >= other_die_result)).to eql false
|
235
|
+
expect((other_die_result >= die_result)).to eql true
|
236
|
+
expect((die_result < other_die_result)).to eql true
|
237
|
+
expect((other_die_result < die_result)).to eql false
|
238
|
+
expect((die_result <= other_die_result)).to eql true
|
239
|
+
expect((other_die_result <= die_result)).to eql false
|
246
240
|
end
|
247
241
|
|
248
|
-
it
|
242
|
+
it 'should sort, based on #value' do
|
249
243
|
die_results = [
|
250
244
|
GamesDice::DieResult.new(7), GamesDice::DieResult.new(5), GamesDice::DieResult.new(8), GamesDice::DieResult.new(3)
|
251
245
|
]
|
252
246
|
|
253
247
|
die_results.sort!
|
254
248
|
|
255
|
-
die_results[0].value.
|
256
|
-
die_results[1].value.
|
257
|
-
die_results[2].value.
|
258
|
-
die_results[3].value.
|
249
|
+
expect(die_results[0].value).to eql 3
|
250
|
+
expect(die_results[1].value).to eql 5
|
251
|
+
expect(die_results[2].value).to eql 7
|
252
|
+
expect(die_results[3].value).to eql 8
|
259
253
|
end
|
260
|
-
|
261
254
|
end
|