X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FTests%2FGrid.hs;h=e6bd8d0542058a9aef5f3ae20a40b251e7b59691;hb=7c648d2c1ca966c4ba1dfff08a13100f065d5dbf;hp=6fdbb133a6ee70a4b6a6259493b58aee2d8ab939;hpb=76ff394c3e5a551e2a6bbf51fbee4e91b90b1611;p=spline3.git diff --git a/src/Tests/Grid.hs b/src/Tests/Grid.hs index 6fdbb13..e6bd8d0 100644 --- a/src/Tests/Grid.hs +++ b/src/Tests/Grid.hs @@ -6,7 +6,10 @@ import Test.HUnit import Test.QuickCheck import Assertions +import Comparisons import Cube +import Examples +import FunctionValues (value_at) import Grid import Tetrahedron @@ -18,20 +21,6 @@ instance Arbitrary Grid where return (make_grid h' fvs) --- | Values of the function f(x,y,z) = 1 + x + xy + xyz taken at nine --- points (hi, hj, jk) with h = 1. From example one in the paper. --- Used in the next bunch of tests. -trilinear :: [[[Double]]] -trilinear = [ [ [ 1, 2, 3 ], - [ 1, 3, 5 ], - [ 1, 4, 7 ] ], - [ [ 1, 2, 3 ], - [ 1, 4, 7 ], - [ 1, 6, 11 ] ], - [ [ 1, 2, 3 ], - [ 1, 5, 9 ], - [ 1, 8, 15 ]]] - -- | Check the value of c0030 for tetrahedron0 belonging to the -- cube centered on (1,1,1) with a grid constructed from the -- trilinear values. See example one in the paper. @@ -320,6 +309,40 @@ test_trilinear_f0_t0_v3 = 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 = @@ -346,4 +369,6 @@ 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]