From b70a46d402df62ea02a4b111ab59666d2405462a Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Tue, 30 Aug 2011 13:29:44 -0400 Subject: [PATCH] Combine a bunch of Grid tests into a Test.Framework testGroup so that we can take advantage of local variable reuse. --- src/Tests/Grid.hs | 310 ++++++++++++++-------------------------------- test/TestSuite.hs | 21 +--- 2 files changed, 93 insertions(+), 238 deletions(-) diff --git a/src/Tests/Grid.hs b/src/Tests/Grid.hs index f94a519..f72d312 100644 --- a/src/Tests/Grid.hs +++ b/src/Tests/Grid.hs @@ -1,6 +1,8 @@ module Tests.Grid where +import Test.Framework (Test, testGroup) +import Test.Framework.Providers.HUnit (testCase) import Test.HUnit import Assertions @@ -14,244 +16,116 @@ import Tetrahedron import ThreeDimensional --- | 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. -test_trilinear_c0030 :: Assertion -test_trilinear_c0030 = - assertAlmostEqual "c0030 is correct" (c t 0 0 3 0) (17/8) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube - - --- | Check the value of c0003 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. -test_trilinear_c0003 :: Assertion -test_trilinear_c0003 = - assertAlmostEqual "c0003 is correct" (c t 0 0 0 3) (27/8) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube - - --- | Check the value of c0021 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. -test_trilinear_c0021 :: Assertion -test_trilinear_c0021 = - assertAlmostEqual "c0021 is correct" (c t 0 0 2 1) (61/24) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube - - --- | Check the value of c0012 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. -test_trilinear_c0012 :: Assertion -test_trilinear_c0012 = - assertAlmostEqual "c0012 is correct" (c t 0 0 1 2) (71/24) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube - - --- | Check the value of c0120 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. -test_trilinear_c0120 :: Assertion -test_trilinear_c0120 = - assertAlmostEqual "c0120 is correct" (c t 0 1 2 0) (55/24) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube - - --- | Check the value of c0102 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. -test_trilinear_c0102 :: Assertion -test_trilinear_c0102 = - assertAlmostEqual "c0102 is correct" (c t 0 1 0 2) (73/24) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube - - --- | Check the value of c0111 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. -test_trilinear_c0111 :: Assertion -test_trilinear_c0111 = - assertAlmostEqual "c0111 is correct" (c t 0 1 1 1) (8/3) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube - - --- | Check the value of c0210 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. -test_trilinear_c0210 :: Assertion -test_trilinear_c0210 = - assertAlmostEqual "c0210 is correct" (c t 0 2 1 0) (29/12) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube - - --- | Check the value of c0201 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. -test_trilinear_c0201 :: Assertion -test_trilinear_c0201 = - assertAlmostEqual "c0201 is correct" (c t 0 2 0 1) (11/4) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube +-- | Check all coefficients of tetrahedron0 belonging to the cube +-- centered on (1,1,1) with a grid constructed from the trilinear +-- values. See example one in the paper. +trilinear_c0_t0_coefficient_tests :: Test.Framework.Test +trilinear_c0_t0_coefficient_tests = + testGroup "trilinear c0 t0 coefficients" $ + [testCase "c0030 is correct" test_trilinear_c0030, + testCase "c0003 is correct" test_trilinear_c0003, + testCase "c0021 is correct" test_trilinear_c0021, + testCase "c0012 is correct" test_trilinear_c0012, + testCase "c0120 is correct" test_trilinear_c0120, + testCase "c0102 is correct" test_trilinear_c0102, + testCase "c0111 is correct" test_trilinear_c0111, + testCase "c0210 is correct" test_trilinear_c0210, + testCase "c0201 is correct" test_trilinear_c0201, + testCase "c0300 is correct" test_trilinear_c0300, + testCase "c1020 is correct" test_trilinear_c1020, + testCase "c1002 is correct" test_trilinear_c1002, + testCase "c1011 is correct" test_trilinear_c1011, + testCase "c1110 is correct" test_trilinear_c1110, + testCase "c1101 is correct" test_trilinear_c1101, + testCase "c1200 is correct" test_trilinear_c1200, + testCase "c2010 is correct" test_trilinear_c2010, + testCase "c2001 is correct" test_trilinear_c2001, + testCase "c2100 is correct" test_trilinear_c2100, + testCase "c3000 is correct" test_trilinear_c3000] + where + g = make_grid 1 trilinear + cube = cube_at g 1 1 1 + t = tetrahedron0 cube + test_trilinear_c0030 :: Assertion + test_trilinear_c0030 = + assertAlmostEqual "c0030 is correct" (c t 0 0 3 0) (17/8) --- | Check the value of c0300 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. -test_trilinear_c0300 :: Assertion -test_trilinear_c0300 = - assertAlmostEqual "c0300 is correct" (c t 0 3 0 0) (5/2) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube + test_trilinear_c0003 :: Assertion + test_trilinear_c0003 = + assertAlmostEqual "c0003 is correct" (c t 0 0 0 3) (27/8) + test_trilinear_c0021 :: Assertion + test_trilinear_c0021 = + assertAlmostEqual "c0021 is correct" (c t 0 0 2 1) (61/24) --- | Check the value of c1020 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. -test_trilinear_c1020 :: Assertion -test_trilinear_c1020 = - assertAlmostEqual "c1020 is correct" (c t 1 0 2 0) (8/3) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube + test_trilinear_c0012 :: Assertion + test_trilinear_c0012 = + assertAlmostEqual "c0012 is correct" (c t 0 0 1 2) (71/24) + test_trilinear_c0120 :: Assertion + test_trilinear_c0120 = + assertAlmostEqual "c0120 is correct" (c t 0 1 2 0) (55/24) --- | Check the value of c1002 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. -test_trilinear_c1002 :: Assertion -test_trilinear_c1002 = - assertAlmostEqual "c1002 is correct" (c t 1 0 0 2) (23/6) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube + test_trilinear_c0102 :: Assertion + test_trilinear_c0102 = + assertAlmostEqual "c0102 is correct" (c t 0 1 0 2) (73/24) + test_trilinear_c0111 :: Assertion + test_trilinear_c0111 = + assertAlmostEqual "c0111 is correct" (c t 0 1 1 1) (8/3) --- | Check the value of c1011 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. -test_trilinear_c1011 :: Assertion -test_trilinear_c1011 = - assertAlmostEqual "c1011 is correct" (c t 1 0 1 1) (13/4) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube + test_trilinear_c0210 :: Assertion + test_trilinear_c0210 = + assertAlmostEqual "c0210 is correct" (c t 0 2 1 0) (29/12) + test_trilinear_c0201 :: Assertion + test_trilinear_c0201 = + assertAlmostEqual "c0201 is correct" (c t 0 2 0 1) (11/4) --- | Check the value of c1110 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. -test_trilinear_c1110 :: Assertion -test_trilinear_c1110 = - assertAlmostEqual "c1110 is correct" (c t 1 1 1 0) (23/8) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube + test_trilinear_c0300 :: Assertion + test_trilinear_c0300 = + assertAlmostEqual "c0300 is correct" (c t 0 3 0 0) (5/2) + test_trilinear_c1020 :: Assertion + test_trilinear_c1020 = + assertAlmostEqual "c1020 is correct" (c t 1 0 2 0) (8/3) --- | Check the value of c1101 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. -test_trilinear_c1101 :: Assertion -test_trilinear_c1101 = - assertAlmostEqual "c1101 is correct" (c t 1 1 0 1) (27/8) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube - - --- | Check the value of c1200 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. -test_trilinear_c1200 :: Assertion -test_trilinear_c1200 = - assertAlmostEqual "c1200 is correct" (c t 1 2 0 0) 3 - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube + test_trilinear_c1002 :: Assertion + test_trilinear_c1002 = + assertAlmostEqual "c1002 is correct" (c t 1 0 0 2) (23/6) + test_trilinear_c1011 :: Assertion + test_trilinear_c1011 = + assertAlmostEqual "c1011 is correct" (c t 1 0 1 1) (13/4) --- | Check the value of c2010 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. -test_trilinear_c2010 :: Assertion -test_trilinear_c2010 = - assertAlmostEqual "c2010 is correct" (c t 2 0 1 0) (10/3) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube + test_trilinear_c1110 :: Assertion + test_trilinear_c1110 = + assertAlmostEqual "c1110 is correct" (c t 1 1 1 0) (23/8) + test_trilinear_c1101 :: Assertion + test_trilinear_c1101 = + assertAlmostEqual "c1101 is correct" (c t 1 1 0 1) (27/8) --- | Check the value of c2001 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. -test_trilinear_c2001 :: Assertion -test_trilinear_c2001 = - assertAlmostEqual "c2001 is correct" (c t 2 0 0 1) 4 - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube + test_trilinear_c1200 :: Assertion + test_trilinear_c1200 = + assertAlmostEqual "c1200 is correct" (c t 1 2 0 0) 3 + test_trilinear_c2010 :: Assertion + test_trilinear_c2010 = + assertAlmostEqual "c2010 is correct" (c t 2 0 1 0) (10/3) --- | Check the value of c2100 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. -test_trilinear_c2100 :: Assertion -test_trilinear_c2100 = - assertAlmostEqual "c2100 is correct" (c t 2 1 0 0) (7/2) - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube + test_trilinear_c2001 :: Assertion + test_trilinear_c2001 = + assertAlmostEqual "c2001 is correct" (c t 2 0 0 1) 4 + test_trilinear_c2100 :: Assertion + test_trilinear_c2100 = + assertAlmostEqual "c2100 is correct" (c t 2 1 0 0) (7/2) --- | Check the value of c3000 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. -test_trilinear_c3000 :: Assertion -test_trilinear_c3000 = - assertAlmostEqual "c3000 is correct" (c t 3 0 0 0) 4 - where - g = make_grid 1 trilinear - cube = cube_at g 1 1 1 - t = tetrahedron0 cube + test_trilinear_c3000 :: Assertion + test_trilinear_c3000 = + assertAlmostEqual "c3000 is correct" (c t 3 0 0 0) 4 -- | Make sure that v0 of tetrahedron0 belonging to the cube centered diff --git a/test/TestSuite.hs b/test/TestSuite.hs index ef5e20e..f82fbdf 100644 --- a/test/TestSuite.hs +++ b/test/TestSuite.hs @@ -37,26 +37,7 @@ function_values_tests = grid_tests :: Test.Framework.Test grid_tests = testGroup "Grid Tests" [ - tc "trilinear c0030" test_trilinear_c0030, - tc "trilinear c0003" test_trilinear_c0003, - tc "trilinear c0021" test_trilinear_c0021, - tc "trilinear c0012" test_trilinear_c0012, - tc "trilinear c0120" test_trilinear_c0120, - tc "trilinear c0102" test_trilinear_c0102, - tc "trilinear c0111" test_trilinear_c0111, - tc "trilinear c0210" test_trilinear_c0210, - tc "trilinear c0201" test_trilinear_c0201, - tc "trilinear c0300" test_trilinear_c0300, - tc "trilinear c1020" test_trilinear_c1020, - tc "trilinear c1002" test_trilinear_c1002, - tc "trilinear c1011" test_trilinear_c1011, - tc "trilinear c1110" test_trilinear_c1110, - tc "trilinear c1101" test_trilinear_c1101, - tc "trilinear c1200" test_trilinear_c1200, - tc "trilinear c2010" test_trilinear_c2010, - tc "trilinear c2001" test_trilinear_c2001, - tc "trilinear c2100" test_trilinear_c2100, - tc "trilinear c3000" test_trilinear_c3000, + trilinear_c0_t0_coefficient_tests, tc "trilinear f0_t0_v0" test_trilinear_f0_t0_v0, tc "trilinear f0_t0_v1" test_trilinear_f0_t0_v1, tc "trilinear f0_t0_v2" test_trilinear_f0_t0_v2, -- 2.43.2