diff options
Diffstat (limited to 'OpenSim/Data/Tests/DataTestUtil.cs')
-rw-r--r-- | OpenSim/Data/Tests/DataTestUtil.cs | 62 |
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 @@ | |||
1 | using System; | ||
2 | using System.Collections.Generic; | ||
3 | using System.Text; | ||
4 | using OpenMetaverse; | ||
5 | using NUnit.Framework; | ||
6 | |||
7 | namespace 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 | } | ||