summaryrefslogtreecommitdiff
path: root/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/RangeTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/RangeTests.cs')
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/RangeTests.cs102
1 files changed, 102 insertions, 0 deletions
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/RangeTests.cs b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/RangeTests.cs
new file mode 100644
index 0000000..d022dcc
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tests/RangeTests.cs
@@ -0,0 +1,102 @@
+using System;
+using Xunit;
+
+namespace MonoGame.Extended.Tests
+{
+
+ public class RangeTests
+ {
+ [Fact]
+ public void ConstructorTest()
+ {
+ //can pass min < max
+ var unused = new Range<int>(10, 100);
+ //can't pass min > max
+ Assert.Throws<ArgumentException>(() => new Range<int>(100, 10));
+ //can pass min == max
+ var unused1 = new Range<int>(10, 10);
+ }
+
+ [Fact]
+ public void DegenerateTest()
+ {
+ var proper = new Range<double>(0, 1);
+ Assert.True(proper.IsProper);
+ Assert.False(proper.IsDegenerate);
+
+ var degenerate = new Range<double>(1, 1);
+ Assert.False(degenerate.IsProper);
+ Assert.True(degenerate.IsDegenerate);
+ }
+
+ [Fact]
+ public void IntegerTest()
+ {
+ var range = new Range<int>(10, 100);
+
+ Assert.Equal(10, range.Min);
+ Assert.Equal(100, range.Max);
+
+ for (var i = 10; i <= 100; i++)
+ {
+ Assert.True(range.IsInBetween(i));
+ }
+
+ Assert.False(range.IsInBetween(9));
+ Assert.False(range.IsInBetween(101));
+ Assert.False(range.IsInBetween(10, true));
+ Assert.False(range.IsInBetween(100, maxValueExclusive: true));
+ }
+
+ [Fact]
+ public void FloatTest()
+ {
+ var range = new Range<float>(0f, 1f);
+
+ Assert.Equal(0f, range.Min);
+ Assert.Equal(1f, range.Max);
+
+ for (float i = 0; i <= 1f; i += 0.001f)
+ {
+ Assert.True(range.IsInBetween(i));
+ }
+
+ Assert.False(range.IsInBetween(-float.Epsilon));
+ Assert.False(range.IsInBetween(1.00001f));
+
+ Assert.False(range.IsInBetween(0f, true));
+ Assert.False(range.IsInBetween(1f, maxValueExclusive: true));
+ }
+
+ [Fact]
+ public void OperatorTest()
+ {
+ var rangeA = new Range<int>(0, 1);
+ var rangeB = new Range<int>(0, 1);
+ var rangeC = new Range<int>(1, 2);
+ var rangeD = new Range<double>(0, 1);
+
+ Assert.True(rangeA == rangeB);
+ Assert.False(rangeA == rangeC);
+
+ Assert.False(rangeA != rangeB);
+ Assert.True(rangeA != rangeC);
+
+ Assert.True(rangeA.Equals(rangeB));
+ Assert.False(rangeA.Equals(rangeC));
+ Assert.False(rangeA.Equals(rangeD));
+
+ Range<int> implict = 1;
+ Assert.Equal(1, implict.Max);
+ Assert.Equal(1, implict.Min);
+ }
+
+ [Fact]
+ public void ToStringTest()
+ {
+ var range = new Range<float>(0, 1);
+
+ Assert.Equal("Range<Single> [0 1]", range.ToString());
+ }
+ }
+}