Malachy Byrne 2894fc99d8
All checks were successful
MANDATORY: Build project (Pflib Net) TeamCity build finished
Make random object used in Dice.cs static and remove unused logging. (#5)
Remove unused parts of negative test.

Reviewed-on: #5
Co-authored-by: Malachy Byrne <malachybyrne1@gmail.com>
Co-committed-by: Malachy Byrne <malachybyrne1@gmail.com>
2024-06-18 00:52:09 +02:00

57 lines
1.2 KiB
C#

using System;
using NUnit.Framework;
using pflib_net.dice;
namespace pflib_net.Tests;
[TestFixture]
[TestOf(typeof(Dice))]
public class DiceTest
{
[Test]
[Repeat(100)]
public void D20RollProducesValueBetween1And20()
{
var die = new Dice(20);
Assert.That(die.GetValue(), Is.InRange(1, 20));
}
[Test]
[TestCase(10)]
[TestCase(-10)]
public void RollAddsValuesCorrectly(int value)
{
var die = new Dice(4, add: value);
Assert.That(die.GetValue(), Is.InRange(1 + value, 4 + value));
}
[Test]
[Repeat(100)]
public void RollMultipleDiceHasCorrectAmountOfDice()
{
var dice = new Dice(4, 20);
Assert.That(dice.GetValue(), Is.InRange(20, 4 * 20));
}
[Test]
public void KeepHighestHasCorrectNumberOfDice()
{
var dice = new Dice(1, 40, 20);
Assert.That(dice.GetValue(), Is.EqualTo(20));
}
[Test]
public void KeepLowestHasCorrectNumberOfDice()
{
var dice = new Dice(1, 40, keepLowest: 20);
Assert.That(dice.GetValue(), Is.EqualTo(20));
}
[Test]
public void CannotSetKeepHighestAndKeepLowest()
{
Assert.Throws<InvalidOperationException>(
() => new Dice(1, 40, 1, 1));
}
}