mirror of https://github.com/oliverbooth/X10D
94 lines
2.6 KiB
C#
94 lines
2.6 KiB
C#
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|||
|
using X10D.Drawing;
|
|||
|
|
|||
|
namespace X10D.Tests.Drawing;
|
|||
|
|
|||
|
[TestClass]
|
|||
|
public class CircleFTests
|
|||
|
{
|
|||
|
[TestMethod]
|
|||
|
public void Area_ShouldBePiRadiusRadius_GivenUnitCircle()
|
|||
|
{
|
|||
|
var unitCircle = CircleF.Unit;
|
|||
|
Assert.AreEqual(MathF.PI * unitCircle.Radius * unitCircle.Radius, unitCircle.Area);
|
|||
|
}
|
|||
|
|
|||
|
[TestMethod]
|
|||
|
public void Circumference_ShouldBe2PiRadius_GivenUnitCircle()
|
|||
|
{
|
|||
|
var unitCircle = CircleF.Unit;
|
|||
|
Assert.AreEqual(2.0f * MathF.PI * unitCircle.Radius, unitCircle.Circumference, 1e-6f);
|
|||
|
}
|
|||
|
|
|||
|
[TestMethod]
|
|||
|
public void CompareTo_ShouldBeNegativeOne_GivenUnitCircleAndEmpty()
|
|||
|
{
|
|||
|
Assert.AreEqual(-1, CircleF.Empty.CompareTo(CircleF.Unit));
|
|||
|
}
|
|||
|
|
|||
|
[TestMethod]
|
|||
|
public void CompareTo_ShouldBeOne_GivenUnitCircleAndEmpty()
|
|||
|
{
|
|||
|
Assert.AreEqual(1, CircleF.Unit.CompareTo(CircleF.Empty));
|
|||
|
}
|
|||
|
|
|||
|
[TestMethod]
|
|||
|
public void CompareTo_ShouldBeZero_GivenUnitCircle()
|
|||
|
{
|
|||
|
var unitCircle = CircleF.Unit;
|
|||
|
Assert.AreEqual(0, unitCircle.CompareTo(unitCircle));
|
|||
|
}
|
|||
|
|
|||
|
[TestMethod]
|
|||
|
public void Diameter_ShouldBe2_GivenUnitCircle()
|
|||
|
{
|
|||
|
Assert.AreEqual(2.0f, CircleF.Unit.Diameter, 1e-6f);
|
|||
|
}
|
|||
|
|
|||
|
[TestMethod]
|
|||
|
public void Equals_ShouldBeTrue_GivenTwoUnitCircles()
|
|||
|
{
|
|||
|
var unitCircle1 = CircleF.Unit;
|
|||
|
var unitCircle2 = CircleF.Unit;
|
|||
|
Assert.AreEqual(unitCircle1, unitCircle2);
|
|||
|
Assert.IsTrue(unitCircle1 == unitCircle2);
|
|||
|
Assert.IsFalse(unitCircle1 != unitCircle2);
|
|||
|
}
|
|||
|
|
|||
|
[TestMethod]
|
|||
|
public void Equals_ShouldBeFalse_GivenDifferentCircles()
|
|||
|
{
|
|||
|
Assert.AreNotEqual(CircleF.Unit, CircleF.Empty);
|
|||
|
Assert.IsFalse(CircleF.Unit == CircleF.Empty);
|
|||
|
Assert.IsTrue(CircleF.Unit != CircleF.Empty);
|
|||
|
}
|
|||
|
|
|||
|
[TestMethod]
|
|||
|
public void GetHashCode_ShouldBeCorrect_GivenEmptyCircle()
|
|||
|
{
|
|||
|
// this test is pretty pointless, it exists only for code coverage purposes
|
|||
|
int hashCode = CircleF.Empty.GetHashCode();
|
|||
|
Assert.AreEqual(hashCode, CircleF.Empty.GetHashCode());
|
|||
|
}
|
|||
|
|
|||
|
[TestMethod]
|
|||
|
public void GetHashCode_ShouldBeCorrect_GivenUnitCircle()
|
|||
|
{
|
|||
|
// this test is pretty pointless, it exists only for code coverage purposes
|
|||
|
int hashCode = CircleF.Unit.GetHashCode();
|
|||
|
Assert.AreEqual(hashCode, CircleF.Unit.GetHashCode());
|
|||
|
}
|
|||
|
|
|||
|
[TestMethod]
|
|||
|
public void Radius_ShouldBe0_GivenEmptyCircle()
|
|||
|
{
|
|||
|
Assert.AreEqual(0.0f, CircleF.Empty.Radius, 1e-6f);
|
|||
|
}
|
|||
|
|
|||
|
[TestMethod]
|
|||
|
public void Radius_ShouldBe1_GivenUnitCircle()
|
|||
|
{
|
|||
|
Assert.AreEqual(1.0f, CircleF.Unit.Radius, 1e-6f);
|
|||
|
}
|
|||
|
}
|