From dee2b5197cb2eea8ec6e234a44d2ad5b3587302e Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Wed, 31 Aug 2011 13:59:32 -0400 Subject: [PATCH] De-dupe some more Tetrahedron tests. --- src/Tests/Tetrahedron.hs | 68 +++++++++++++++++++--------------------- test/TestSuite.hs | 3 +- 2 files changed, 33 insertions(+), 38 deletions(-) diff --git a/src/Tests/Tetrahedron.hs b/src/Tests/Tetrahedron.hs index 9c28e59..3d47862 100644 --- a/src/Tests/Tetrahedron.hs +++ b/src/Tests/Tetrahedron.hs @@ -16,23 +16,38 @@ import ThreeDimensional -- HUnit Tests --- | Check the volume of a particular tetrahedron against the value --- computed by hand. Its vertices are in clockwise order, so the --- volume should be negative. -test_volume1 :: Assertion -test_volume1 = - assertEqual "volume is correct" True (vol ~= (-1/3)) - where - p0 = (0, -0.5, 0) - p1 = (0, 0.5, 0) - p2 = (2, 0, 0) - p3 = (1, 0, 1) - t = Tetrahedron { v0 = p0, - v1 = p1, - v2 = p2, - v3 = p3, - fv = empty_values } - vol = volume t +-- | Check the volume of a particular tetrahedron (computed by hand) +-- and whether or not it contains a specific point chosen to be +-- outside of it. Its vertices are in clockwise order, so the volume +-- should be negative. +tetrahedron1_geometry_tests :: Test.Framework.Test +tetrahedron1_geometry_tests = + testGroup "tetrahedron1 geometry" + [ testCase "volume1" volume1, + testCase "doesn't contain point1" doesnt_contain_point1] + where + p0 = (0, -0.5, 0) + p1 = (0, 0.5, 0) + p2 = (2, 0, 0) + p3 = (1, 0, 1) + t = Tetrahedron { v0 = p0, + v1 = p1, + v2 = p2, + v3 = p3, + fv = empty_values } + + volume1 :: Assertion + volume1 = + assertEqual "volume is correct" True (vol ~= (-1/3)) + where + vol = volume t + + doesnt_contain_point1 :: Assertion + doesnt_contain_point1 = + assertEqual "doesn't contain an exterior point" False contained + where + exterior_point = (5, 2, -9.0212) + contained = contains_point t exterior_point -- | Check the volume of a particular tetrahedron (computed by hand) @@ -67,25 +82,6 @@ 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 (first test). -test_doesnt_contain_point1 :: Assertion -test_doesnt_contain_point1 = - assertEqual "doesn't contain an exterior point" False contained - where - p0 = (0, -0.5, 0) - p1 = (0, 0.5, 0) - p2 = (2, 0, 0) - p3 = (1, 0, 1) - exterior_point = (5, 2, -9.0212) - 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 (second test). test_doesnt_contain_point2 :: Assertion diff --git a/test/TestSuite.hs b/test/TestSuite.hs index 3a0af81..3d058e4 100644 --- a/test/TestSuite.hs +++ b/test/TestSuite.hs @@ -53,9 +53,8 @@ misc_tests = tetrahedron_tests :: Test.Framework.Test tetrahedron_tests = testGroup "Tetrahedron Tests" [ + tetrahedron1_geometry_tests, tetrahedron2_geometry_tests, - tc "volume (1)" test_volume1, - tc "doesn't contain point (1)" test_doesnt_contain_point1, tc "doesn't contain point (2)" test_doesnt_contain_point2, tc "doesn't contain point (3)" test_doesnt_contain_point3, tc "doesn't contain point (4)" test_doesnt_contain_point4, -- 2.43.2