aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Tests/Common/DoubleToleranceConstraint.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Tests/Common/DoubleToleranceConstraint.cs')
-rw-r--r--OpenSim/Tests/Common/DoubleToleranceConstraint.cs52
1 files changed, 52 insertions, 0 deletions
diff --git a/OpenSim/Tests/Common/DoubleToleranceConstraint.cs b/OpenSim/Tests/Common/DoubleToleranceConstraint.cs
new file mode 100644
index 0000000..f3da236
--- /dev/null
+++ b/OpenSim/Tests/Common/DoubleToleranceConstraint.cs
@@ -0,0 +1,52 @@
1using System;
2using NUnit.Framework;
3using NUnit.Framework.Constraints;
4using OpenSim.Tests.Common;
5
6namespace OpenSim.Tests.Common
7{
8 public class DoubleToleranceConstraint : ANumericalToleranceConstraint
9 {
10
11 private double _baseValue;
12 private double _valueToBeTested;
13
14 public DoubleToleranceConstraint(double baseValue, double tolerance) : base(tolerance)
15 {
16 _baseValue = baseValue;
17 }
18
19 ///<summary>
20 ///Test whether the constraint is satisfied by a given value
21 ///</summary>
22 ///<param name="valueToBeTested">The value to be tested</param>
23 ///<returns>
24 ///True for success, false for failure
25 ///</returns>
26 public override bool Matches(object valueToBeTested)
27 {
28 if (valueToBeTested == null)
29 {
30 throw new ArgumentException("Constraint cannot be used upon null values.");
31 }
32 if( valueToBeTested.GetType() != typeof(double))
33 {
34 throw new ArgumentException("Constraint cannot be used upon non double-values.");
35 }
36
37 _valueToBeTested = (double)valueToBeTested;
38
39 return IsWithinDoubleConstraint(_valueToBeTested, _baseValue );
40 }
41
42 public override void WriteDescriptionTo(MessageWriter writer)
43 {
44 writer.WriteExpectedValue(string.Format("A value {0} within tolerance of plus or minus {1}",_baseValue,_tolerance));
45 }
46
47 public override void WriteActualValueTo(MessageWriter writer)
48 {
49 writer.WriteActualValue(_valueToBeTested);
50 }
51 }
52}