import Test.QuickCheck
import Assertions
+import Comparisons
import Cube
import Examples
+import FunctionValues (value_at)
import Grid
import Tetrahedron
t = tetrahedron0 cube
+test_trilinear_reproduced :: Test
+test_trilinear_reproduced =
+ TestCase $ assertTrue "trilinears are reproduced correctly" $
+ and [p (i', j', k') ~= value_at trilinear i j k
+ | i <- [0..2],
+ j <- [0..2],
+ k <- [0..2],
+ let i' = fromIntegral i,
+ let j' = fromIntegral j,
+ let k' = fromIntegral k]
+ where
+ g = make_grid 1 trilinear
+ c0 = fromJust $ cube_at g 1 1 1
+ t0 = tetrahedron0 c0
+ p = polynomial t0
+
+
+test_zeros_reproduced :: Test
+test_zeros_reproduced =
+ TestCase $ assertTrue "the zero function is reproduced correctly" $
+ and [p (i', j', k') ~= value_at zeros i j k
+ | i <- [0..2],
+ j <- [0..2],
+ k <- [0..2],
+ let i' = fromIntegral i,
+ let j' = fromIntegral j,
+ let k' = fromIntegral k]
+ where
+ g = make_grid 1 zeros
+ c0 = fromJust $ cube_at g 1 1 1
+ t0 = tetrahedron0 c0
+ p = polynomial t0
+
+
-- | A list of all HUnit tests defined in this module.
grid_tests :: [Test]
grid_tests =
test_trilinear_f0_t0_v0,
test_trilinear_f0_t0_v1,
test_trilinear_f0_t0_v2,
- test_trilinear_f0_t0_v3]
+ test_trilinear_f0_t0_v3,
+ test_trilinear_reproduced,
+ test_zeros_reproduced]