]> gitweb.michael.orlitzky.com - spline3.git/blobdiff - src/Tests/FunctionValues.hs
Finish moving the tests to test-framework.
[spline3.git] / src / Tests / FunctionValues.hs
index 3dc38a49764507d0f66e9b00eebb6c4e0d82d564..40d2502fceb1eb51dc09feab6e311eb20d5aedee 100644 (file)
@@ -8,35 +8,48 @@ import Assertions
 import Examples
 import FunctionValues
 
+-- | We perform addition with the function values contained in a
+--   FunctionValues object. If we choose random doubles near the machine
+--   min/max, we risk overflowing or underflowing the 'Double'. This
+--   places a reasonably safe limit on the maximum size of our generated
+--   'Double' members.
+max_double :: Double
+max_double = 10000.0
+
+-- | See 'max_double'.
+min_double :: Double
+min_double = (-1) * max_double
+
+
 instance Arbitrary FunctionValues where
     arbitrary = do
-      front'  <- arbitrary :: Gen Double
-      back'   <- arbitrary :: Gen Double
-      left'   <- arbitrary :: Gen Double
-      right'  <- arbitrary :: Gen Double
-      top'    <- arbitrary :: Gen Double
-      down'   <- arbitrary :: Gen Double
-      front_left' <- arbitrary :: Gen Double
-      front_right' <- arbitrary :: Gen Double
-      front_top' <- arbitrary :: Gen Double
-      front_down' <- arbitrary :: Gen Double
-      back_left' <- arbitrary :: Gen Double
-      back_right' <- arbitrary :: Gen Double
-      back_top' <- arbitrary :: Gen Double
-      back_down' <- arbitrary :: Gen Double
-      left_top' <- arbitrary :: Gen Double
-      left_down' <- arbitrary :: Gen Double
-      right_top' <- arbitrary :: Gen Double
-      right_down' <- arbitrary :: Gen Double
-      front_left_top' <- arbitrary :: Gen Double
-      front_left_down' <- arbitrary :: Gen Double
-      front_right_top' <- arbitrary :: Gen Double
-      front_right_down' <- arbitrary :: Gen Double
-      back_left_top' <- arbitrary :: Gen Double
-      back_left_down' <- arbitrary :: Gen Double
-      back_right_top' <- arbitrary :: Gen Double
-      back_right_down' <- arbitrary :: Gen Double
-      interior' <- arbitrary :: Gen Double
+      front'  <- choose (min_double, max_double)
+      back'   <- choose (min_double, max_double)
+      left'   <- choose (min_double, max_double)
+      right'  <- choose (min_double, max_double)
+      top'    <- choose (min_double, max_double)
+      down'   <- choose (min_double, max_double)
+      front_left' <- choose (min_double, max_double)
+      front_right' <- choose (min_double, max_double)
+      front_top' <- choose (min_double, max_double)
+      front_down' <- choose (min_double, max_double)
+      back_left' <- choose (min_double, max_double)
+      back_right' <- choose (min_double, max_double)
+      back_top' <- choose (min_double, max_double)
+      back_down' <- choose (min_double, max_double)
+      left_top' <- choose (min_double, max_double)
+      left_down' <- choose (min_double, max_double)
+      right_top' <- choose (min_double, max_double)
+      right_down' <- choose (min_double, max_double)
+      front_left_top' <- choose (min_double, max_double)
+      front_left_down' <- choose (min_double, max_double)
+      front_right_top' <- choose (min_double, max_double)
+      front_right_down' <- choose (min_double, max_double)
+      back_left_top' <- choose (min_double, max_double)
+      back_left_down' <- choose (min_double, max_double)
+      back_right_top' <- choose (min_double, max_double)
+      back_right_down' <- choose (min_double, max_double)
+      interior' <- choose (min_double, max_double)
 
       return empty_values { front = front',
                             back  = back',
@@ -69,9 +82,9 @@ instance Arbitrary FunctionValues where
 
 
 
-test_directions :: Test
+test_directions :: Assertion
 test_directions =
-    TestCase $ assertTrue "all direction functions work" (and equalities)
+    assertTrue "all direction functions work" (and equalities)
         where
           fvs = make_values trilinear 1 1 1
           equalities = [ interior fvs == 4,
@@ -101,6 +114,3 @@ test_directions =
                          back_left_top fvs == 3,
                          back_right_down fvs == 7,
                          back_right_top fvs == 15]
-
-function_values_tests :: [Test]
-function_values_tests = [test_directions]