import Test.HUnit
import Test.QuickCheck (Testable ())
+import Cardinal (cardinal_tests, cardinal_properties)
import FunctionValues (function_values_tests, function_values_properties)
+import Grid (grid_tests, slow_tests)
import Misc (misc_tests, misc_properties)
-import Tests.Cardinal
import Tests.Cube as TC
-import Tests.Grid
import Tests.Tetrahedron as TT
main :: IO ()
tc :: Test.Framework.Providers.API.TestName -> Test.HUnit.Assertion -> Test.Framework.Test
tc = testCase
-cardinal_tests :: Test.Framework.Test
-cardinal_tests =
- testGroup "Cardinal Tests" [
- tc "c-tilde_2100 rotation correct" test_c_tilde_2100_rotation_correct ]
-grid_tests :: Test.Framework.Test
-grid_tests =
- testGroup "Grid Tests" [
- trilinear_c0_t0_tests,
- tc "tetrahedra collision test isn't too sensitive"
- test_tetrahedra_collision_sensitivity,
- tc "trilinear reproduced" test_trilinear_reproduced,
- tc "zeros reproduced" test_zeros_reproduced ]
tetrahedron_tests :: Test.Framework.Test
tp = testProperty
-cardinal_properties :: Test.Framework.Test
-cardinal_properties =
- testGroup "Cardinal Properties" [
- tp "ccwx rotation changes direction" prop_ccwx_rotation_changes_direction,
- tp "cwx rotation changes direction" prop_cwx_rotation_changes_direction,
- tp "ccwy rotation changes direction" prop_ccwy_rotation_changes_direction,
- tp "cwy rotation changes direction" prop_cwy_rotation_changes_direction,
- tp "ccwz rotation changes direction" prop_ccwz_rotation_changes_direction,
- tp "cwz rotation changes direction" prop_cwz_rotation_changes_direction,
- tp "ccwx rotation result unique" prop_ccwx_rotation_result_unique,
- tp "cwx rotation result unique" prop_cwx_rotation_result_unique,
- tp "ccwy rotation result unique" prop_ccwy_rotation_result_unique,
- tp "cwy rotation result unique" prop_cwy_rotation_result_unique,
- tp "ccwz rotation result unique" prop_ccwz_rotation_result_unique,
- tp "cwz rotation result unique" prop_cwz_rotation_result_unique,
- tp "four cwx is identity" prop_four_cwx_is_identity,
- tp "four ccwx is identity" prop_four_ccwx_is_identity,
- tp "four cwy is identity" prop_four_cwy_is_identity,
- tp "four ccwy is identity" prop_four_ccwy_is_identity,
- tp "four cwz is identity" prop_four_cwz_is_identity,
- tp "four ccwz is identity" prop_four_ccwz_is_identity]
-
-
p78_24_properties :: Test.Framework.Test
p78_24_properties =
testGroup "p. 78, Section (2.4) Properties" [
cube_properties :: Test.Framework.Test
cube_properties =
testGroup "Cube Properties" [
- tp "front/back tetrahedra are disjoint" prop_front_back_tetrahedra_disjoint,
- tp "top/down tetrahedra are disjoint" prop_top_down_tetrahedra_disjoint,
- tp "left/right tetrahedra are disjoint" prop_left_right_tetrahedra_disjoint,
+ tp "opposite octant tetrahedra are disjoint (1)"
+ prop_opposite_octant_tetrahedra_disjoint1,
+ tp "opposite octant tetrahedra are disjoint (2)"
+ prop_opposite_octant_tetrahedra_disjoint2,
+ tp "opposite octant tetrahedra are disjoint (3)"
+ prop_opposite_octant_tetrahedra_disjoint3,
+ tp "opposite octant tetrahedra are disjoint (4)"
+ prop_opposite_octant_tetrahedra_disjoint4,
+ tp "opposite octant tetrahedra are disjoint (5)"
+ prop_opposite_octant_tetrahedra_disjoint5,
+ tp "opposite octant tetrahedra are disjoint (6)"
+ prop_opposite_octant_tetrahedra_disjoint6,
tp "all volumes positive" prop_all_volumes_positive,
tp "all volumes exact" prop_all_volumes_exact,
tp "v0 all equal" prop_v0_all_equal,
$ prop_swapping_vertices_doesnt_affect_coefficients4 ]
--- Do the slow tests last so we can stop paying attention.
-slow_tests :: Test.Framework.Test
-slow_tests =
- testGroup "Slow Tests" [
- tp "cube indices within bounds" prop_cube_indices_never_go_out_of_bounds,
- tc "trilinear9x9x9 reproduced" test_trilinear9x9x9_reproduced ]
-
-
tests :: [Test.Framework.Test]
tests = [ cardinal_tests,
function_values_tests,