X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FTests%2FTetrahedron.hs;h=31736cf69b419818dcf09682381d85b52dd531e5;hb=62e6ea5912a0ef9b21d034590700d6b450f942fb;hp=98edf63b782af79552d76935552694ec1498590d;hpb=89b8b6e94fcc944a1f4611811265f3c6217af850;p=spline3.git diff --git a/src/Tests/Tetrahedron.hs b/src/Tests/Tetrahedron.hs index 98edf63..31736cf 100644 --- a/src/Tests/Tetrahedron.hs +++ b/src/Tests/Tetrahedron.hs @@ -4,27 +4,23 @@ where import Test.HUnit import Test.QuickCheck -import Cube +import Assertions +import Comparisons import Point -import Tests.Cube() +import FunctionValues +import Misc +import Tests.FunctionValues() import Tetrahedron import ThreeDimensional instance Arbitrary Tetrahedron where arbitrary = do - rnd_c0 <- arbitrary :: Gen Cube rnd_v0 <- arbitrary :: Gen Point rnd_v1 <- arbitrary :: Gen Point rnd_v2 <- arbitrary :: Gen Point rnd_v3 <- arbitrary :: Gen Point - return (Tetrahedron rnd_c0 rnd_v0 rnd_v1 rnd_v2 rnd_v3) - -almost_equals :: Double -> Double -> Bool -almost_equals x y = (abs (x - y)) < 0.0001 - -(~=) :: Double -> Double -> Bool -(~=) = almost_equals - + rnd_fv <- arbitrary :: Gen FunctionValues + return (Tetrahedron rnd_fv rnd_v0 rnd_v1 rnd_v2 rnd_v3) -- HUnit Tests @@ -38,11 +34,11 @@ test_volume1 = p1 = (0, 0.5, 0) p2 = (2, 0, 0) p3 = (1, 0, 1) - t = Tetrahedron { cube = empty_cube, - v0 = p0, + t = Tetrahedron { v0 = p0, v1 = p1, v2 = p2, - v3 = p3 } + v3 = p3, + fv = empty_values } vol = volume t @@ -56,11 +52,11 @@ test_volume2 = p1 = (2, 0, 0) p2 = (0, 0.5, 0) p3 = (1, 0, 1) - t = Tetrahedron { cube = empty_cube, - v0 = p0, + t = Tetrahedron { v0 = p0, v1 = p1, v2 = p2, - v3 = p3 } + v3 = p3, + fv = empty_values } vol = volume t test_contains_point1 :: Test @@ -72,11 +68,11 @@ test_contains_point1 = p2 = (2, 0, 0) p3 = (1, 0, 1) inner_point = (1, 0, 0.5) - t = Tetrahedron { cube = empty_cube, - v0 = p0, + t = Tetrahedron { v0 = p0, v1 = p1, v2 = p2, - v3 = p3 } + v3 = p3, + fv = empty_values } test_doesnt_contain_point1 :: Test @@ -88,12 +84,11 @@ test_doesnt_contain_point1 = p2 = (2, 0, 0) p3 = (1, 0, 1) exterior_point = (5, 2, -9.0212) - c_empty = empty_cube - t = Tetrahedron { cube = c_empty, - v0 = p0, + t = Tetrahedron { v0 = p0, v1 = p1, v2 = p2, - v3 = p3 } + v3 = p3, + fv = empty_values } test_doesnt_contain_point2 :: Test @@ -105,12 +100,11 @@ test_doesnt_contain_point2 = p2 = (0.5, 0.5, 1) p3 = (0.5, 0.5, 0.5) exterior_point = (0, 0, 0) - c_empty = empty_cube - t = Tetrahedron { cube = c_empty, - v0 = p0, + t = Tetrahedron { v0 = p0, v1 = p1, v2 = p2, - v3 = p3 } + v3 = p3, + fv = empty_values } test_doesnt_contain_point3 :: Test test_doesnt_contain_point3 = @@ -121,12 +115,11 @@ test_doesnt_contain_point3 = p2 = (0.5, 0.5, 1) p3 = (0.5, 0.5, 0.5) exterior_point = (0, 0, 0) - c_empty = empty_cube - t = Tetrahedron { cube = c_empty, - v0 = p0, + t = Tetrahedron { v0 = p0, v1 = p1, v2 = p2, - v3 = p3 } + v3 = p3, + fv = empty_values } test_doesnt_contain_point4 :: Test test_doesnt_contain_point4 = @@ -137,12 +130,11 @@ test_doesnt_contain_point4 = p2 = (0.5, 0.5, 1) p3 = (0.5, 0.5, 0.5) exterior_point = (0, 0, 0) - c_empty = empty_cube - t = Tetrahedron { cube = c_empty, - v0 = p0, + t = Tetrahedron { v0 = p0, v1 = p1, v2 = p2, - v3 = p3 } + v3 = p3, + fv = empty_values } test_doesnt_contain_point5 :: Test test_doesnt_contain_point5 = @@ -153,12 +145,11 @@ test_doesnt_contain_point5 = p2 = (0.5, 0.5, 1) p3 = (0.5, 0.5, 0.5) exterior_point = (0, 0, 0) - c_empty = empty_cube - t = Tetrahedron { cube = c_empty, - v0 = p0, + t = Tetrahedron { v0 = p0, v1 = p1, v2 = p2, - v3 = p3 } + v3 = p3, + fv = empty_values } tetrahedron_tests :: [Test] tetrahedron_tests = [test_volume1,