import Test.HUnit
import Test.QuickCheck (Testable ())
-import FunctionValues (functionvalues_tests)
-import Tests.Cardinal
+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.Cube as TC
-import Tests.Grid
-import Tests.Misc
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 ]
-misc_tests :: Test.Framework.Test
-misc_tests =
- testGroup "Misc Tests" [
- tc "flatten (1)" test_flatten1 ]
-
tetrahedron_tests :: Test.Framework.Test
tetrahedron_tests =
testGroup "Tetrahedron Tests" [
tp :: Test.QuickCheck.Testable a => Test.Framework.TestName -> a -> Test.Framework.Test
tp = testProperty
-misc_properties :: Test.Framework.Test
-misc_properties =
- testGroup "Misc Properties" [
- tp "factorial greater" prop_factorial_greater ]
-
-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 =
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,
tp "swapping_vertices_doesnt_affect_coefficients3"
$ prop_swapping_vertices_doesnt_affect_coefficients3,
tp "swapping_vertices_doesnt_affect_coefficients4"
- $ prop_swapping_vertices_doesnt_affect_coefficients4,
- 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 ]
-
-
--- 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 ]
+ $ prop_swapping_vertices_doesnt_affect_coefficients4 ]
tests :: [Test.Framework.Test]