Example #1
0
        public override bool Evaluate()
        {
            if (m_comparer == null)
            {
                if (_comparerType != null && _comparerType.IsValid)
                {
                    m_comparer = (FloatComparer)System.Activator.CreateInstance(_comparerType.Type);
                }
                else
                {
                    throw new System.NullReferenceException("Null comparer");
                }
            }

            GameObject a = _providerA.GetValue();
            GameObject b = _providerB.GetValue();

            if (a == null || b == null)
            {
                return(false);
            }

            float relative = Vector3.Distance(a.transform.position, b.transform.position);

            return(m_comparer.Compare(relative, _distance.GetValue()));
        }
Example #2
0
 public void TestInvalidTolerance()
 {
     AssertException <ArgumentOutOfRangeException>(() => FloatComparer.Compare(0f, 0f, -1));
     AssertException <ArgumentOutOfRangeException>(() => FloatComparer.Compare(0f, 0f, 4 * 1024 * 1024));
     AssertException <ArgumentOutOfRangeException>(() => FloatComparer.Compare(0.0, 0.0, -1L));
     AssertException <ArgumentOutOfRangeException>(() => FloatComparer.Compare(0.0, 0.0, 2L * 1024 * 1024 * 1024 * 1024 * 1024));
 }
Example #3
0
        private static void AssertDoublePrecisionCompare(CompareResult expectedResult, long?expectedDifference, double x, double y, long tolerance)
        {
            long actualDifference;
            var  actualResult = FloatComparer.Compare(x, y, tolerance, out actualDifference);

            Assert.AreEqual((int)expectedResult, actualResult, "Comparing {0:r} with {1:r} (\u00B1 {2} ULPs) [result]", x, y, tolerance);

            if (expectedDifference.HasValue)
            {
                Assert.AreEqual(expectedDifference.Value, actualDifference, "Comparing {0:r} with {1:r} (\u00B1 {2} ULPs) [\u0394ULPs]", x, y, tolerance);
            }
        }
Example #4
0
        private static void AssertDoublePrecisionConsistency(CompareResult expectedResult, double x, double y, string message, params object[] args)
        {
            var expectedAreEqual      = expectedResult == CompareResult.AreEqual;
            var expectedIsGreaterThan = expectedResult == CompareResult.GreaterThan;
            var expectedIsLessThan    = expectedResult == CompareResult.LessThan;

            var actualResult        = FloatComparer.Compare(x, y, 100);
            var actualAreEqual      = FloatComparer.AreEqual(x, y);
            var actualIsGreaterThan = FloatComparer.IsGreaterThan(x, y);
            var actualIsLessThan    = FloatComparer.IsLessThan(x, y);

            Assert.AreEqual((int)expectedResult, actualResult, message + " [Compare/double]", args);
            Assert.AreEqual(expectedAreEqual, actualAreEqual, message + " [AreEqual/double]", args);
            Assert.AreEqual(expectedIsGreaterThan, actualIsGreaterThan, message + " [IsGreaterThan/double]", args);
            Assert.AreEqual(expectedIsLessThan, actualIsLessThan, message + " [IsLessThan/double]", args);
        }
Example #5
0
        public override bool Evaluate()
        {
            if (m_comparer == null)
            {
                if (_comparerType != null && _comparerType.IsValid)
                {
                    m_comparer = (FloatComparer)System.Activator.CreateInstance(_comparerType.Type);
                }
                else
                {
                    throw new System.NullReferenceException("Null comparer");
                }
            }

            return(m_comparer.Compare(_providerA.GetValue(), _providerB.GetValue()));
        }