Skip to content

Commit 9e7b319

Browse files
Improved test for roll_the_die (#2442)
1 parent 9082055 commit 9e7b319

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

exercises/concept/roll-the-die/.meta/config.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
"contributors": [
66
"ErikSchierboom",
77
"yzAlvin",
8-
"aage"
8+
"aage",
9+
"karanchadha10"
910
],
1011
"files": {
1112
"solution": [
Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,39 @@
11
using Exercism.Tests;
2+
using System.Collections.Generic;
23

34
public class RollTheDieTests
45
{
56
[Fact]
67
[Task(1)]
78
public void RollDie()
89
{
10+
var rollCount = 1000;
11+
var rolls = new HashSet<int>(rollCount);
912
var player = new Player();
10-
for (var i = 0; i < 100; i++)
13+
for (var i = 0; i < rollCount; i++)
1114
{
15+
var roll = player.RollDie();
16+
rolls.Add(roll);
1217
Assert.InRange(player.RollDie(), 1, 18);
1318
}
19+
Assert.Equal(18, rolls.Count);
1420
}
1521

1622
[Fact]
1723
[Task(2)]
1824
public void GenerateSpellStrength()
1925
{
26+
var rollCount = 100;
27+
var minUniqueValues = rollCount - 5; // Allow up to 5 duplicates
28+
var rolls = new HashSet<double>(rollCount);
2029
var player = new Player();
21-
var strength = player.GenerateSpellStrength();
22-
Assert.InRange(strength, 0.0, 100.0);
30+
for (var i = 0; i < rollCount; i++)
31+
{
32+
var strength = player.GenerateSpellStrength();
33+
rolls.Add(strength);
34+
Assert.InRange(strength, 0.0, 100.0);
35+
}
36+
37+
Assert.InRange(rolls.Count, minUniqueValues, rollCount);
2338
}
2439
}

0 commit comments

Comments
 (0)