@@ -246,6 +246,33 @@ function testDropMultipleHighestDice() {
246
246
assertEquals (2 , $ droppedCount );
247
247
}
248
248
249
+ function testGetDiceModsNumber () {
250
+ $ ezd = new EZDice ();
251
+ $ ezd ->roll ('' );
252
+ assertEquals (0 , $ ezd ->getDiceGroupNumber ());
253
+ assertEquals (0 , $ ezd ->getDiceModsNumber ());
254
+
255
+ $ ezd ->roll ('42 ' );
256
+ assertEquals (0 , $ ezd ->getDiceGroupNumber ());
257
+ assertEquals (1 , $ ezd ->getDiceModsNumber ());
258
+
259
+ $ ezd ->roll ('d6+2d4 ' );
260
+ assertEquals (2 , $ ezd ->getDiceGroupNumber ());
261
+ assertEquals (0 , $ ezd ->getDiceModsNumber ());
262
+
263
+ $ ezd ->roll ('1d6+2d4+5 ' );
264
+ assertEquals (2 , $ ezd ->getDiceGroupNumber ());
265
+ assertEquals (1 , $ ezd ->getDiceModsNumber ());
266
+
267
+ $ ezd ->roll ('1d6+2d4+5+10 ' );
268
+ assertEquals (2 , $ ezd ->getDiceGroupNumber ());
269
+ assertEquals (2 , $ ezd ->getDiceModsNumber ());
270
+
271
+ $ ezd ->roll ('1d6+2d4+5+10-3-1d% ' );
272
+ assertEquals (3 , $ ezd ->getDiceGroupNumber ());
273
+ assertEquals (3 , $ ezd ->getDiceModsNumber ());
274
+ }
275
+
249
276
// Run tests
250
277
$ startTime = microtime (true );
251
278
for ($ i = 0 ; $ i < TEST_RUNS ; $ i ++) {
@@ -269,6 +296,7 @@ function testDropMultipleHighestDice() {
269
296
testStrContainsDice ();
270
297
testStrIsStrictlyDice ();
271
298
testRollEmptyString ();
299
+ testGetDiceModsNumber ();
272
300
273
301
echo "All tests passed. \n" ;
274
302
echo "Time taken: " . ($ endTime - $ startTime ) . " seconds. \n" ;
0 commit comments