From a1625a54104da7872c15618db9e68656c6f6ec2a Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Fri, 8 Feb 2008 17:54:30 +0000
Subject: * Applying mantis 339 patches round 2 -- Thanks daedius
---
OpenSim/Tests/Common/VectorToleranceConstraint.cs | 58 +++++++++++++++++++++++
1 file changed, 58 insertions(+)
create mode 100644 OpenSim/Tests/Common/VectorToleranceConstraint.cs
(limited to 'OpenSim/Tests/Common/VectorToleranceConstraint.cs')
diff --git a/OpenSim/Tests/Common/VectorToleranceConstraint.cs b/OpenSim/Tests/Common/VectorToleranceConstraint.cs
new file mode 100644
index 0000000..1faf7dd
--- /dev/null
+++ b/OpenSim/Tests/Common/VectorToleranceConstraint.cs
@@ -0,0 +1,58 @@
+using System;
+using libsecondlife;
+using NUnit.Framework;
+
+namespace OpenSim.Tests.Common
+{
+ public class VectorToleranceConstraint : ANumericalToleranceConstraint
+ {
+ private LLVector3 _baseValue;
+ private LLVector3 _valueToBeTested;
+
+ public VectorToleranceConstraint(LLVector3 baseValue, double tolerance) : base(tolerance)
+ {
+ _baseValue = baseValue;
+ }
+
+ ///
+ ///Test whether the constraint is satisfied by a given value
+ ///
+ ///The value to be tested
+ ///
+ ///True for success, false for failure
+ ///
+ public override bool Matches(object valueToBeTested)
+ {
+ if (valueToBeTested == null)
+ {
+ throw new ArgumentException("Constraint cannot be used upon null values.");
+ }
+ if (valueToBeTested.GetType() != typeof (LLVector3))
+ {
+ throw new ArgumentException("Constraint cannot be used upon non vector values.");
+ }
+
+ _valueToBeTested = (LLVector3) valueToBeTested;
+
+ if ( IsWithinDoubleConstraint(_valueToBeTested.X,_baseValue.X) &&
+ IsWithinDoubleConstraint(_valueToBeTested.Y,_baseValue.Y) &&
+ IsWithinDoubleConstraint(_valueToBeTested.Z,_baseValue.Z) )
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+ public override void WriteDescriptionTo(MessageWriter writer)
+ {
+ writer.WriteExpectedValue(
+ string.Format("A value {0} within tolerance of plus or minus {1}", _baseValue, _tolerance));
+ }
+
+ public override void WriteActualValueTo(MessageWriter writer)
+ {
+ writer.WriteActualValue(_valueToBeTested);
+ }
+ }
+}
--
cgit v1.1