aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data/Tests/DataTestUtil.cs
diff options
context:
space:
mode:
authorCharles Krinke2009-02-14 22:31:39 +0000
committerCharles Krinke2009-02-14 22:31:39 +0000
commit38b1f2dbfc6b53aa257b9d261552e16ba5b756d5 (patch)
tree0144e2b7ec3b04e44b2b7abc091ea21d1e7cfbd6 /OpenSim/Data/Tests/DataTestUtil.cs
parentRestores the HGWorldMap functionality that has been reduced since a recent re... (diff)
downloadopensim-SC-38b1f2dbfc6b53aa257b9d261552e16ba5b756d5.zip
opensim-SC-38b1f2dbfc6b53aa257b9d261552e16ba5b756d5.tar.gz
opensim-SC-38b1f2dbfc6b53aa257b9d261552e16ba5b756d5.tar.bz2
opensim-SC-38b1f2dbfc6b53aa257b9d261552e16ba5b756d5.tar.xz
Mantis 3164. Thank you kindly, TLaukkan (Tommil) for a patch that:
* Added tests for manager, user and group lists. * Added test for ban list. The test had to be left as ignored as native MySQL throws exception when ban is saved. * Added utility class to support parametrized unit tests for range checking.
Diffstat (limited to '')
-rw-r--r--OpenSim/Data/Tests/DataTestUtil.cs62
1 files changed, 62 insertions, 0 deletions
diff --git a/OpenSim/Data/Tests/DataTestUtil.cs b/OpenSim/Data/Tests/DataTestUtil.cs
new file mode 100644
index 0000000..778772f
--- /dev/null
+++ b/OpenSim/Data/Tests/DataTestUtil.cs
@@ -0,0 +1,62 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4using OpenMetaverse;
5using NUnit.Framework;
6
7namespace OpenSim.Data.Tests
8{
9
10 /// <summary>
11 /// Shared constants and methods for database unit tests.
12 /// </summary>
13 public class DataTestUtil
14 {
15
16 public const uint UNSIGNED_INTEGER_MIN = uint.MinValue;
17 public const uint UNSIGNED_INTEGER_MAX = uint.MaxValue / 2; // NHibernate does not support unsigned integer range.
18
19 public const int INTEGER_MIN = int.MinValue + 1; // Postgresql requires +1 to .NET int.MinValue
20 public const int INTEGER_MAX = int.MaxValue;
21
22 public const float FLOAT_MIN = float.MinValue * (1 - FLOAT_PRECISSION);
23 public const float FLOAT_MAX = float.MaxValue * (1 - FLOAT_PRECISSION);
24 public const float FLOAT_ACCURATE = 1.234567890123456789012f;
25 public const float FLOAT_PRECISSION = 1E-5f; // Native MySQL is severly limited with floating accuracy
26
27 public const double DOUBLE_MIN = -1E52 * (1 - DOUBLE_PRECISSION);
28 public const double DOUBLE_MAX = 1E52 * (1 - DOUBLE_PRECISSION);
29 public const double DOUBLE_ACCURATE = 1.2345678901234567890123456789012345678901234567890123f;
30 public const double DOUBLE_PRECISSION = 1E-14; // Native MySQL is severly limited with double accuracy
31
32 public const string STRING_MIN = "";
33 public static string STRING_MAX(int length)
34 {
35 StringBuilder stringBuilder = new StringBuilder();
36 for (int i = 0; i < length; i++)
37 {
38 stringBuilder.Append(i % 10);
39 }
40 return stringBuilder.ToString();
41 }
42
43 public static UUID UUID_MIN = new UUID("00000000-0000-0000-0000-000000000000");
44 public static UUID UUID_MAX = new UUID("ffffffff-ffff-ffff-ffff-ffffffffffff");
45
46 public const bool BOOLEAN_MIN = false;
47 public const bool BOOLEAN_MAX = true;
48
49 public static void AssertFloatEqualsWithTolerance(float expectedValue, float actualValue)
50 {
51 Assert.GreaterOrEqual(actualValue, expectedValue - Math.Abs(expectedValue) * FLOAT_PRECISSION);
52 Assert.LessOrEqual(actualValue, expectedValue + Math.Abs(expectedValue) * FLOAT_PRECISSION);
53 }
54
55 public static void AssertDoubleEqualsWithTolerance(double expectedValue, double actualValue)
56 {
57 Assert.GreaterOrEqual(actualValue, expectedValue - Math.Abs(expectedValue) * DOUBLE_PRECISSION);
58 Assert.LessOrEqual(actualValue, expectedValue + Math.Abs(expectedValue) * DOUBLE_PRECISSION);
59 }
60
61 }
62}