X10D/X10D.Unity.Tests/Assets/Tests/Numerics/RandomTests.cs

56 lines
1.5 KiB
C#
Raw Normal View History

2023-08-26 17:15:04 +00:00
#nullable enable
2022-05-08 11:09:30 +00:00
using System;
using NUnit.Framework;
using X10D.Unity.Numerics;
namespace X10D.Unity.Tests.Numerics
2022-05-08 11:09:30 +00:00
{
public class RandomTests
{
[Test]
public void NextUnitVector2_ShouldReturnVector_WithMagnitude1()
2022-05-08 11:09:30 +00:00
{
var random = new Random();
var vector = random.NextUnitVector2();
Assert.That(vector.magnitude, Is.EqualTo(1).Within(1e-6));
2022-05-08 11:09:30 +00:00
}
[Test]
public void NextUnitVector2_ShouldThrow_GivenNullRandom()
2022-05-08 11:09:30 +00:00
{
Random random = null!;
Assert.Throws<ArgumentNullException>(() => random.NextUnitVector2());
2022-05-08 11:09:30 +00:00
}
[Test]
public void NextUnitVector3_ShouldReturnVector_WithMagnitude1()
2022-05-08 11:09:30 +00:00
{
var random = new Random();
var vector = random.NextUnitVector3();
Assert.That(vector.magnitude, Is.EqualTo(1).Within(1e-6));
2022-05-08 11:09:30 +00:00
}
[Test]
public void NextUnitVector3_ShouldThrow_GivenNullRandom()
2022-05-08 11:09:30 +00:00
{
Random random = null!;
Assert.Throws<ArgumentNullException>(() => random.NextUnitVector3());
2022-05-08 11:09:30 +00:00
}
[Test]
public void NextRotation_ShouldThrow_GivenNullRandom()
2022-05-08 11:09:30 +00:00
{
Random random = null!;
Assert.Throws<ArgumentNullException>(() => random.NextRotation());
2022-05-08 11:09:30 +00:00
}
[Test]
public void NextRotationUniform_ShouldThrow_GivenNullRandom()
2022-05-08 11:09:30 +00:00
{
Random random = null!;
Assert.Throws<ArgumentNullException>(() => random.NextRotationUniform());
2022-05-08 11:09:30 +00:00
}
}
}