public void TestGetHashCode() { UniScalar testScalar = new UniScalar(12.34f, 56.78f); UniScalar equivalentScalar = new UniScalar(12.34f, 56.78f); Assert.AreEqual(testScalar.GetHashCode(), equivalentScalar.GetHashCode()); }
public void TestFullConstructor() { UniScalar testScalar = new UniScalar(12.34f, 56.78f); Assert.AreEqual(12.34f, testScalar.Fraction); Assert.AreEqual(56.78f, testScalar.Offset); }
public void TestOffsetConstructor() { UniScalar testScalar = new UniScalar(123.456f); Assert.AreEqual(0.0f, testScalar.Fraction); Assert.AreEqual(123.456f, testScalar.Offset); }
public void TestImplicitConstructor() { UniScalar testScalar = 654.321f; Assert.AreEqual(0.0f, testScalar.Fraction); Assert.AreEqual(654.321f, testScalar.Offset); }
/// <summary>Ensures that two unified scalars are nearly equal to each other</summary> /// <param name="expected">Expected unified scalar value</param> /// <param name="actual">Actual unified scalar value</param> /// <param name="deltaUlps"> /// Allowed deviation in representable floating point values for each of the /// unified scalar's fields /// </param> public static void AreAlmostEqual(UniScalar expected, UniScalar actual, int deltaUlps) { if (!areAlmostEqual(expected, actual, deltaUlps)) { Assert.AreEqual(expected, actual); } }
public void TestMultiplicationOperator() { UniScalar testScalar = new UniScalar(1.2f, 3.4f); UniScalar factorScalar = new UniScalar(5.6f, 7.8f); UniAssertHelper.AreAlmostEqual( new UniScalar(6.72f, 26.52f), testScalar * factorScalar, 4 ); }
public void TestDivisionOperator() { UniScalar testScalar = new UniScalar(1.2f, 3.4f); UniScalar divisorScalar = new UniScalar(2.5f, 5.0f); UniAssertHelper.AreAlmostEqual( new UniScalar(0.48f, 0.68f), testScalar / divisorScalar, 4 ); }
public void TestInequalityOperator() { UniScalar testScalar = new UniScalar(12.34f, 56.78f); UniScalar equivalentScalar = new UniScalar(12.34f, 56.78f); UniScalar differingScalar = new UniScalar(87.65f, 43.21f); Assert.IsFalse(testScalar != equivalentScalar); Assert.IsTrue(testScalar != differingScalar); }
public void TestEqualsWithDowncast() { UniScalar testScalar = new UniScalar(12.34f, 56.78f); UniScalar equivalentScalar = new UniScalar(12.34f, 56.78f); UniScalar differingScalar = new UniScalar(87.65f, 43.21f); Assert.IsTrue(testScalar.Equals((object)equivalentScalar)); Assert.IsFalse(testScalar.Equals((object)differingScalar)); }
public void TestSubtractionOperator() { UniScalar testScalar = new UniScalar(1.2f, 3.4f); UniScalar subtractedScalar = new UniScalar(5.6f, 7.8f); UniAssertHelper.AreAlmostEqual( new UniScalar(-4.4f, -4.4f), testScalar - subtractedScalar, 4 ); }
public void TestAdditionOperator() { UniScalar testScalar = new UniScalar(1.2f, 3.4f); UniScalar addedScalar = new UniScalar(5.6f, 7.8f); UniAssertHelper.AreAlmostEqual( new UniScalar(6.8f, 11.2f), testScalar + addedScalar, 4 ); }
public void TestThrowOnAlmostEqualScalarsWithTooLowOffset() { UniScalar testScalar = new UniScalar(exactFloat, minusTwoFloat); Assert.Throws<AssertionException>( delegate() { UniAssertHelper.AreAlmostEqual( new UniScalar(exactFloat, exactFloat), testScalar, 1 ); } ); }
public void TestMultiplicationOperatorWithScalarOnLeftSide() { UniVector testVector = new UniVector(firstTestScalar, secondTestScalar); UniVector result = new UniScalar(2.0f, 4.0f) * testVector; Assert.That(result.X.Fraction, Is.EqualTo(2.0f).Within(4).Ulps); Assert.That(result.X.Offset, Is.EqualTo(8.0f).Within(4).Ulps); Assert.That(result.Y.Fraction, Is.EqualTo(6.0f).Within(4).Ulps); Assert.That(result.Y.Offset, Is.EqualTo(16.0f).Within(4).Ulps); }
public void TestThrowOnAlmostEqualScalarsWithTooLowOffset() { UniScalar testScalar = new UniScalar(exactFloat, minusTwoFloat); Assert.Throws <AssertionException>( delegate() { UniAssertHelper.AreAlmostEqual( new UniScalar(exactFloat, exactFloat), testScalar, 1 ); } ); }
/// <summary> /// Initializes a new rectangle from the provided individual coordinates /// </summary> /// <param name="x">X coordinate of the rectangle's left border</param> /// <param name="y">Y coordinate of the rectangle's upper border</param> /// <param name="width">Width of the area covered by the rectangle</param> /// <param name="height">Height of the area covered by the rectangle</param> public UniRectangle(UniScalar x, UniScalar y, UniScalar width, UniScalar height) { this.Location = new UniVector(x, y); this.Size = new UniVector(width, height); }
public void TestMultiplicationOperatorWithScalarOnLeftSide() { UniVector testVector = new UniVector(firstTestScalar, secondTestScalar); UniVector result = new UniScalar(2.0f, 4.0f) * testVector; Assert.That(result.X.Fraction, Is.EqualTo(2.0f).Within(4).Ulps); Assert.That(result.X.Offset, Is.EqualTo(8.0f).Within(4).Ulps); Assert.That(result.Y.Fraction, Is.EqualTo(6.0f).Within(4).Ulps); Assert.That(result.Y.Offset, Is.EqualTo(16.0f).Within(4).Ulps); }
public void TestInequalityOperator() { UniScalar testScalar = new UniScalar(12.34f, 56.78f); UniScalar equivalentScalar = new UniScalar(12.34f, 56.78f); UniScalar differingScalar = new UniScalar(87.65f, 43.21f); Assert.IsFalse(testScalar != equivalentScalar); Assert.IsTrue(testScalar != differingScalar); }
public void TestToOffsetWithNormalScalar() { UniScalar testScalar = new UniScalar(1.23f, 4.5f); Assert.AreEqual(1234.5f, testScalar.ToOffset(1000.0f)); }
/// <summary>Determines whether two unified scalar values are nearly equal</summary> /// <param name="left">Unified scalar value to compare on the left side</param> /// <param name="right">Unified scalar value to compare on the right side</param> /// <param name="deltaUlps"> /// Allowed deviation in representable floating point values for each of the /// unified vector's fields /// </param> /// <returns>True if the provided unified scalar values are nearly equal</returns> private static bool areAlmostEqual(UniScalar left, UniScalar right, int deltaUlps) { return (FloatHelper.AreAlmostEqual(left.Fraction, right.Fraction, deltaUlps) && FloatHelper.AreAlmostEqual(left.Offset, right.Offset, deltaUlps)); }
/// <summary>Ensures that two unified scalars are nearly equal to each other</summary> /// <param name="expected">Expected unified scalar value</param> /// <param name="actual">Actual unified scalar value</param> /// <param name="deltaUlps"> /// Allowed deviation in representable floating point values for each of the /// unified scalar's fields /// </param> public static void AreAlmostEqual(UniScalar expected, UniScalar actual, int deltaUlps) { if(!areAlmostEqual(expected, actual, deltaUlps)) { Assert.AreEqual(expected, actual); } }
public void TestEqualsWithNullReference() { UniScalar testScalar = new UniScalar(12.34f, 56.78f); Assert.IsFalse(testScalar.Equals(null)); }
/// <summary>Initializes a new vector from the provided components</summary> /// <param name="x">Absolute and relative X coordinate of the vector</param> /// <param name="y">Absolute and relative Y coordinate of the vector</param> public UniVector(UniScalar x, UniScalar y) { this.X = x; this.Y = y; }
public void TestGetHashCode() { UniScalar testScalar = new UniScalar(12.34f, 56.78f); UniScalar equivalentScalar = new UniScalar(12.34f, 56.78f); Assert.AreEqual(testScalar.GetHashCode(), equivalentScalar.GetHashCode()); }
/// <summary> /// Initializes a new rectangle from the provided individual coordinates /// </summary> /// <param name="x">X coordinate of the rectangle's left border</param> /// <param name="y">Y coordinate of the rectangle's upper border</param> /// <param name="width">Width of the area covered by the rectangle</param> /// <param name="height">Height of the area covered by the rectangle</param> public UniRectangle(UniScalar x, UniScalar y, UniScalar width, UniScalar height) { this.Location = new UniVector(x, y); this.Size = new UniVector(width, height); }
public void TestEqualsWithNullReference() { UniScalar testScalar = new UniScalar(12.34f, 56.78f); Assert.IsFalse(testScalar.Equals(null)); }
public void TestEqualsWithDifferentType() { UniScalar testScalar = new UniScalar(12.34f, 56.78f); Assert.IsFalse(testScalar.Equals(DateTime.MinValue)); }
public void TestEqualsWithDowncast() { UniScalar testScalar = new UniScalar(12.34f, 56.78f); UniScalar equivalentScalar = new UniScalar(12.34f, 56.78f); UniScalar differingScalar = new UniScalar(87.65f, 43.21f); Assert.IsTrue(testScalar.Equals((object)equivalentScalar)); Assert.IsFalse(testScalar.Equals((object)differingScalar)); }
/// <summary>Initializes a new vector from the provided components</summary> /// <param name="x">Absolute and relative X coordinate of the vector</param> /// <param name="y">Absolute and relative Y coordinate of the vector</param> public UniVector(UniScalar x, UniScalar y) { this.X = x; this.Y = y; }
public void TestToOffsetWithNormalScalar() { UniScalar testScalar = new UniScalar(1.23f, 4.5f); Assert.AreEqual(1234.5f, testScalar.ToOffset(1000.0f)); }
public void TestEqualsWithDifferentType() { UniScalar testScalar = new UniScalar(12.34f, 56.78f); Assert.IsFalse(testScalar.Equals(DateTime.MinValue)); }
public void TestAdditionOperator() { UniScalar testScalar = new UniScalar(1.2f, 3.4f); UniScalar addedScalar = new UniScalar(5.6f, 7.8f); UniAssertHelper.AreAlmostEqual( new UniScalar(6.8f, 11.2f), testScalar + addedScalar, 4 ); }
/// <summary>Determines whether two unified scalar values are nearly equal</summary> /// <param name="left">Unified scalar value to compare on the left side</param> /// <param name="right">Unified scalar value to compare on the right side</param> /// <param name="deltaUlps"> /// Allowed deviation in representable floating point values for each of the /// unified vector's fields /// </param> /// <returns>True if the provided unified scalar values are nearly equal</returns> private static bool areAlmostEqual(UniScalar left, UniScalar right, int deltaUlps) { return FloatHelper.AreAlmostEqual(left.Fraction, right.Fraction, deltaUlps) && FloatHelper.AreAlmostEqual(left.Offset, right.Offset, deltaUlps); }
public void TestSubtractionOperator() { UniScalar testScalar = new UniScalar(1.2f, 3.4f); UniScalar subtractedScalar = new UniScalar(5.6f, 7.8f); UniAssertHelper.AreAlmostEqual( new UniScalar(-4.4f, -4.4f), testScalar - subtractedScalar, 4 ); }
public void TestAlmostEqualScalars() { UniScalar testScalar = new UniScalar(minusOneFloat, plusOneFloat); UniAssertHelper.AreAlmostEqual(new UniScalar(exactFloat, exactFloat), testScalar, 1); }
public void TestMultiplicationOperator() { UniScalar testScalar = new UniScalar(1.2f, 3.4f); UniScalar factorScalar = new UniScalar(5.6f, 7.8f); UniAssertHelper.AreAlmostEqual( new UniScalar(6.72f, 26.52f), testScalar * factorScalar, 4 ); }
public void TestToOffsetWithOffsetOnly() { UniScalar testScalar = new UniScalar(0.0f, 987.654f); Assert.AreEqual(987.654f, testScalar.ToOffset(1000.0f)); }
/// <summary>Checks whether another instance is equal to this instance</summary> /// <param name="other">Other instance to compare to this instance</param> /// <returns>True if the other instance is equal to this instance</returns> public bool Equals(UniScalar other) { // For a struct, 'other' cannot be null return (this.Fraction == other.Fraction) && (this.Offset == other.Offset); }
public void TestOffsetConstructor() { UniScalar testScalar = new UniScalar(123.456f); Assert.AreEqual(0.0f, testScalar.Fraction); Assert.AreEqual(123.456f, testScalar.Offset); }
public void TestDivisionOperator() { UniScalar testScalar = new UniScalar(1.2f, 3.4f); UniScalar divisorScalar = new UniScalar(2.5f, 5.0f); UniAssertHelper.AreAlmostEqual( new UniScalar(0.48f, 0.68f), testScalar / divisorScalar, 4 ); }
public void TestFullConstructor() { UniScalar testScalar = new UniScalar(12.34f, 56.78f); Assert.AreEqual(12.34f, testScalar.Fraction); Assert.AreEqual(56.78f, testScalar.Offset); }
public void TestToOffsetWithOffsetOnly() { UniScalar testScalar = new UniScalar(0.0f, 987.654f); Assert.AreEqual(987.654f, testScalar.ToOffset(1000.0f)); }
/// <summary>Checks whether another instance is equal to this instance</summary> /// <param name="other">Other instance to compare to this instance</param> /// <returns>True if the other instance is equal to this instance</returns> public bool Equals(UniScalar other) { // For a struct, 'other' cannot be null return((this.Fraction == other.Fraction) && (this.Offset == other.Offset)); }
public void TestAlmostEqualScalars() { UniScalar testScalar = new UniScalar(minusOneFloat, plusOneFloat); UniAssertHelper.AreAlmostEqual(new UniScalar(exactFloat, exactFloat), testScalar, 1); }