+-- The "value_at" function pattern matches on some integers, but
+-- doesn't handle the "otherwise" case, for performance reasons.
+{-# OPTIONS_GHC -Wno-incomplete-patterns #-}
{-# LANGUAGE BangPatterns #-}
-- | The FunctionValues module contains the 'FunctionValues' type and
value_at )
where
-import Prelude hiding ( LT )
+import Prelude(
+ Bool,
+ Double,
+ Eq( (==) ),
+ Fractional( (/) ),
+ Int,
+ Num( (+), (-), (*) ),
+ Ord ( (>=), (<) ),
+ Show,
+ (&&),
+ and,
+ not,
+ return )
import Test.Tasty ( TestTree, testGroup )
import Test.Tasty.HUnit ( Assertion, testCase )
-import Test.Tasty.QuickCheck ( Arbitrary(..), choose, testProperty )
+import Test.Tasty.QuickCheck ( Arbitrary( arbitrary ), choose, testProperty )
import Assertions ( assertTrue )
-import Cardinal ( Cardinal(..), cwx, cwy, cwz )
+import Cardinal (
+ Cardinal(F, B, L, R, D, T, FL, FR, FD, FT, BL, BR, BD, BT, LD, LT, RD,
+ RT, FLD, FLT, FRD, FRT, BLD, BLT, BRD, BRT, I, Scalar, Sum,
+ Difference, Product, Quotient ),
+ cwx,
+ cwy,
+ cwz )
import Examples ( trilinear )
import Values ( Values3D, dims, idx )
function_values_properties :: TestTree
function_values_properties =
- let tp = testProperty
- in
- testGroup "FunctionValues properties" [
- tp "x rotation doesn't affect front" prop_x_rotation_doesnt_affect_front,
- tp "x rotation doesn't affect back" prop_x_rotation_doesnt_affect_back,
- tp "y rotation doesn't affect left" prop_y_rotation_doesnt_affect_left,
- tp "y rotation doesn't affect right" prop_y_rotation_doesnt_affect_right,
- tp "z rotation doesn't affect top" prop_z_rotation_doesnt_affect_top,
- tp "z rotation doesn't affect down" prop_z_rotation_doesnt_affect_down ]
+ testGroup "FunctionValues properties" [
+ testProperty
+ "x rotation doesn't affect front"
+ prop_x_rotation_doesnt_affect_front,
+ testProperty
+ "x rotation doesn't affect back"
+ prop_x_rotation_doesnt_affect_back,
+ testProperty
+ "y rotation doesn't affect left"
+ prop_y_rotation_doesnt_affect_left,
+ testProperty
+ "y rotation doesn't affect right"
+ prop_y_rotation_doesnt_affect_right,
+ testProperty
+ "z rotation doesn't affect top"
+ prop_z_rotation_doesnt_affect_top,
+ testProperty
+ "z rotation doesn't affect down"
+ prop_z_rotation_doesnt_affect_down ]