where
import Test.HUnit
-import Test.QuickCheck
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' <- 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',
- left = left',
- right = right',
- top = top',
- down = down',
- front_left = front_left',
- front_right = front_right',
- front_top = front_top',
- front_down = front_down',
- back_left = back_left',
- back_right = back_right',
- back_top = back_top',
- back_down = back_down',
- left_top = left_top',
- left_down = left_down',
- right_top = right_top',
- right_down = right_down',
- front_left_top = front_left_top',
- front_left_down = front_left_down',
- front_right_top = front_right_top',
- front_right_down = front_right_down',
- back_left_top = back_left_top',
- back_left_down = back_left_down',
- back_right_top = back_right_top',
- back_right_down = back_right_down',
- interior = interior' }
-
-
-
-
test_directions :: Assertion
test_directions =
assertTrue "all direction functions work" (and equalities)