X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FTests%2FFunctionValues.hs;h=40d2502fceb1eb51dc09feab6e311eb20d5aedee;hb=26f0a2204a0bdb41b1d6aa5430544c404b77e638;hp=3dc38a49764507d0f66e9b00eebb6c4e0d82d564;hpb=2c2dbf7c58850f3b8294457ca8f4adf9474c7ce7;p=spline3.git diff --git a/src/Tests/FunctionValues.hs b/src/Tests/FunctionValues.hs index 3dc38a4..40d2502 100644 --- a/src/Tests/FunctionValues.hs +++ b/src/Tests/FunctionValues.hs @@ -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]