X-Git-Url: https://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FTests%2FTetrahedron.hs;h=3b511d2104770e0ce3b5d6a3a6bfe764b49440af;hb=3d197ab1a23d654d60617db6559daed195f1e016;hp=3d47862bf638e69aeb8296b3ef1c946b8a44218d;hpb=dee2b5197cb2eea8ec6e234a44d2ad5b3587302e;p=spline3.git diff --git a/src/Tests/Tetrahedron.hs b/src/Tests/Tetrahedron.hs index 3d47862..3b511d2 100644 --- a/src/Tests/Tetrahedron.hs +++ b/src/Tests/Tetrahedron.hs @@ -34,7 +34,8 @@ tetrahedron1_geometry_tests = v1 = p1, v2 = p2, v3 = p3, - fv = empty_values } + fv = empty_values, + precomputed_volume = 0 } volume1 :: Assertion volume1 = @@ -68,7 +69,8 @@ tetrahedron2_geometry_tests = v1 = p1, v2 = p2, v3 = p3, - fv = empty_values } + fv = empty_values, + precomputed_volume = 0 } volume1 :: Assertion volume1 = assertEqual "volume1 is correct" True (vol ~= (1/3)) @@ -82,80 +84,78 @@ tetrahedron2_geometry_tests = contained = contains_point t inner_point --- | Ensure that a tetrahedron does not contain a particular point chosen to --- be outside of it (second test). -test_doesnt_contain_point2 :: Assertion -test_doesnt_contain_point2 = - assertEqual "doesn't contain an exterior point" False contained - where - p0 = (0, 1, 1) - p1 = (1, 1, 1) - p2 = (0.5, 0.5, 1) - p3 = (0.5, 0.5, 0.5) - exterior_point = (0, 0, 0) - t = Tetrahedron { v0 = p0, - v1 = p1, - v2 = p2, - v3 = p3, - fv = empty_values } - contained = contains_point t exterior_point - - --- | Ensure that a tetrahedron does not contain a particular point chosen to --- be outside of it (third test). -test_doesnt_contain_point3 :: Assertion -test_doesnt_contain_point3 = - assertEqual "doesn't contain an exterior point" False contained - where - p0 = (1, 1, 1) - p1 = (1, 0, 1) - p2 = (0.5, 0.5, 1) - p3 = (0.5, 0.5, 0.5) - exterior_point = (0, 0, 0) - t = Tetrahedron { v0 = p0, - v1 = p1, - v2 = p2, - v3 = p3, - fv = empty_values } - contained = contains_point t exterior_point - - --- | Ensure that a tetrahedron does not contain a particular point chosen to --- be outside of it (fourth test). -test_doesnt_contain_point4 :: Assertion -test_doesnt_contain_point4 = - assertEqual "doesn't contain an exterior point" False contained - where - p0 = (1, 0, 1) - p1 = (0, 0, 1) - p2 = (0.5, 0.5, 1) - p3 = (0.5, 0.5, 0.5) - exterior_point = (0, 0, 0) - t = Tetrahedron { v0 = p0, - v1 = p1, - v2 = p2, - v3 = p3, - fv = empty_values } - contained = contains_point t exterior_point - - --- | Ensure that a tetrahedron does not contain a particular point chosen to --- be outside of it (fifth test). -test_doesnt_contain_point5 :: Assertion -test_doesnt_contain_point5 = - assertEqual "doesn't contain an exterior point" False contained - where - p0 = (0, 0, 1) - p1 = (0, 1, 1) - p2 = (0.5, 0.5, 1) - p3 = (0.5, 0.5, 0.5) - exterior_point = (0, 0, 0) - t = Tetrahedron { v0 = p0, - v1 = p1, - v2 = p2, - v3 = p3, - fv = empty_values } - contained = contains_point t exterior_point +-- | Ensure that tetrahedra do not contain a particular point chosen to +-- be outside of them. +containment_tests :: Test.Framework.Test +containment_tests = + testGroup "containment tests" + [ testCase "doesn't contain point2" doesnt_contain_point2, + testCase "doesn't contain point3" doesnt_contain_point3, + testCase "doesn't contain point4" doesnt_contain_point4, + testCase "doesn't contain point5" doesnt_contain_point5] + where + p2 = (0.5, 0.5, 1) + p3 = (0.5, 0.5, 0.5) + exterior_point = (0, 0, 0) + + doesnt_contain_point2 :: Assertion + doesnt_contain_point2 = + assertEqual "doesn't contain an exterior point" False contained + where + p0 = (0, 1, 1) + p1 = (1, 1, 1) + t = Tetrahedron { v0 = p0, + v1 = p1, + v2 = p2, + v3 = p3, + fv = empty_values, + precomputed_volume = 0 } + contained = contains_point t exterior_point + + + doesnt_contain_point3 :: Assertion + doesnt_contain_point3 = + assertEqual "doesn't contain an exterior point" False contained + where + p0 = (1, 1, 1) + p1 = (1, 0, 1) + t = Tetrahedron { v0 = p0, + v1 = p1, + v2 = p2, + v3 = p3, + fv = empty_values, + precomputed_volume = 0 } + contained = contains_point t exterior_point + + + doesnt_contain_point4 :: Assertion + doesnt_contain_point4 = + assertEqual "doesn't contain an exterior point" False contained + where + p0 = (1, 0, 1) + p1 = (0, 0, 1) + t = Tetrahedron { v0 = p0, + v1 = p1, + v2 = p2, + v3 = p3, + fv = empty_values, + precomputed_volume = 0 } + contained = contains_point t exterior_point + + + doesnt_contain_point5 :: Assertion + doesnt_contain_point5 = + assertEqual "doesn't contain an exterior point" False contained + where + p0 = (0, 0, 1) + p1 = (0, 1, 1) + t = Tetrahedron { v0 = p0, + v1 = p1, + v2 = p2, + v3 = p3, + fv = empty_values, + precomputed_volume = 0 } + contained = contains_point t exterior_point -- | The barycentric coordinate of v0 with respect to itself should