]> gitweb.michael.orlitzky.com - spline3.git/commitdiff
Move the FunctionValues tests into the FunctionValues module.
authorMichael Orlitzky <michael@orlitzky.com>
Sat, 3 Sep 2011 20:54:53 +0000 (16:54 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Sat, 3 Sep 2011 20:54:53 +0000 (16:54 -0400)
src/FunctionValues.hs
src/Tests/Cube.hs
src/Tests/FunctionValues.hs [deleted file]
src/Tests/Tetrahedron.hs
test/TestSuite.hs

index 895f9253a42506398c5594a3bd8b864baa32099a..00bb0a828d3072f3d4d4b2cdc51c8c4e2ccd2549 100644 (file)
@@ -1,12 +1,25 @@
 -- | The FunctionValues module contains the 'FunctionValues' type and
 --   the functions used to manipulate it.
-module FunctionValues
+module FunctionValues (
+  FunctionValues,
+  empty_values,
+  eval,
+  make_values,
+  rotate,
+  function_values_tests,
+  value_at
+  )
 where
 
 import Prelude hiding (LT)
+import Test.HUnit
+import Test.Framework (Test, testGroup)
+import Test.Framework.Providers.HUnit (testCase)
 import Test.QuickCheck (Arbitrary(..), choose)
 
-import Cardinal
+import Assertions (assertTrue)
+import Cardinal ( Cardinal(..) )
+import Examples (trilinear)
 import Values (Values3D, dims, idx)
 
 -- | The FunctionValues type represents the value of our function f at
@@ -258,3 +271,46 @@ rotate rotation fv =
                      back_right_down = eval fv (rotation BRD),
                      back_right_top = eval fv (rotation BRT),
                      interior = interior fv }
+
+
+
+-- | Ensure that the trilinear values wind up where we think they
+--   should.
+test_directions :: Assertion
+test_directions =
+    assertTrue "all direction functions work" (and equalities)
+        where
+          fvs = make_values trilinear 1 1 1
+          equalities = [ interior fvs == 4,
+                         front fvs == 1,
+                         back  fvs == 7,
+                         left  fvs == 2,
+                         right fvs == 6,
+                         down  fvs == 3,
+                         top   fvs == 5,
+                         front_left fvs == 1,
+                         front_right fvs == 1,
+                         front_down fvs == 1,
+                         front_top fvs == 1,
+                         back_left fvs == 3,
+                         back_right fvs == 11,
+                         back_down fvs == 5,
+                         back_top fvs == 9,
+                         left_down fvs == 2,
+                         left_top fvs == 2,
+                         right_down fvs == 4,
+                         right_top fvs == 8,
+                         front_left_down fvs == 1,
+                         front_left_top fvs == 1,
+                         front_right_down fvs == 1,
+                         front_right_top fvs == 1,
+                         back_left_down fvs == 3,
+                         back_left_top fvs == 3,
+                         back_right_down fvs == 7,
+                         back_right_top fvs == 15]
+
+
+function_values_tests :: Test.Framework.Test
+function_values_tests =
+    testGroup "FunctionValues Tests"
+                  [ testCase "test directions" test_directions ]
index 0a1cc504179e9e0c7a79dae01c8ced961ac8b434..17ea7f8857ee6e0a1bc9f079a7a19b7d8509fe57 100644 (file)
@@ -8,7 +8,6 @@ import Comparisons
 import Cube hiding (i, j, k)
 import FunctionValues
 import Misc (all_equal, disjoint)
-import Tests.FunctionValues ()
 import Tetrahedron (b0, b1, b2, b3, c, fv,
                     v0, v1, v2, v3, volume)
 
@@ -412,25 +411,35 @@ prop_c_tilde_2100_correct cube =
       t0 = tetrahedron0 cube
       t6 = tetrahedron6 cube
       fvs = Tetrahedron.fv t0
-      int = interior fvs
-      f = front fvs
-      r = right fvs
-      l = left fvs
-      b = back fvs
-      ft = front_top fvs
-      rt = right_top fvs
-      lt = left_top fvs
-      bt = back_top fvs
-      t = top fvs
-      d = down fvs
-      fr = front_right fvs
-      fl = front_left fvs
-      br = back_right fvs
-      bl = back_left fvs
-      fd = front_down fvs
-      rd = right_down fvs
-      ld = left_down fvs
-      bd = back_down fvs
+      (Cube _ i j k _ _) = cube
+      f  = value_at fvs (i-1) j k
+      b  = value_at fvs (i+1) j k
+      l  = value_at fvs i (j-1) k
+      r  = value_at fvs i (j+1) k
+      d  = value_at fvs i j (k-1)
+      t  = value_at fvs i j (k+1)
+      fl = value_at fvs (i-1) (j-1) k
+      fr = value_at fvs (i-1) (j+1) k
+      fd = value_at fvs (i-1) j (k-1)
+      ft = value_at fvs (i-1) j (k+1)
+      bl = value_at fvs (i+1) (j-1) k
+      br = value_at fvs (i+1) (j+1) k
+      bd = value_at fvs (i+1) j (k-1)
+      bt = value_at fvs (i+1) j (k+1)
+      ld = value_at fvs i (j-1) (k-1)
+      lt = value_at fvs i (j-1) (k+1)
+      rd = value_at fvs i (j+1) (k-1)
+      rt = value_at fvs i (j+1) (k+1)
+      fld = value_at fvs (i-1) (j-1) (k-1)
+      flt = value_at fvs (i-1) (j-1) (k+1)
+      frd = value_at fvs (i-1) (j+1) (k-1)
+      frt = value_at fvs (i-1) (j+1) (k+1)
+      bld = value_at fvs (i+1) (j-1) (k-1)
+      blt = value_at fvs (i+1) (j-1) (k+1)
+      brd = value_at fvs (i+1) (j+1) (k-1)
+      brt = value_at fvs (i+1) (j+1) (k+1)
+      int = value_at fvs i j k
+
 
 -- Tests to check that the correct edges are incidental.
 prop_t0_shares_edge_with_t1 :: Cube -> Bool
diff --git a/src/Tests/FunctionValues.hs b/src/Tests/FunctionValues.hs
deleted file mode 100644 (file)
index 9cada35..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-module Tests.FunctionValues
-where
-
-import Test.HUnit
-
-import Assertions
-import Examples
-import FunctionValues
-
-test_directions :: Assertion
-test_directions =
-    assertTrue "all direction functions work" (and equalities)
-        where
-          fvs = make_values trilinear 1 1 1
-          equalities = [ interior fvs == 4,
-                         front fvs == 1,
-                         back  fvs == 7,
-                         left  fvs == 2,
-                         right fvs == 6,
-                         down  fvs == 3,
-                         top   fvs == 5,
-                         front_left fvs == 1,
-                         front_right fvs == 1,
-                         front_down fvs == 1,
-                         front_top fvs == 1,
-                         back_left fvs == 3,
-                         back_right fvs == 11,
-                         back_down fvs == 5,
-                         back_top fvs == 9,
-                         left_down fvs == 2,
-                         left_top fvs == 2,
-                         right_down fvs == 4,
-                         right_top fvs == 8,
-                         front_left_down fvs == 1,
-                         front_left_top fvs == 1,
-                         front_right_down fvs == 1,
-                         front_right_top fvs == 1,
-                         back_left_down fvs == 3,
-                         back_left_top fvs == 3,
-                         back_right_down fvs == 7,
-                         back_right_top fvs == 15]
index 3b511d2104770e0ce3b5d6a3a6bfe764b49440af..ec71e3b826ad9fea0008d541f5c1becec549fdd7 100644 (file)
@@ -9,7 +9,6 @@ import Test.QuickCheck (Property, (==>))
 import Cardinal
 import Comparisons
 import FunctionValues
-import Tests.FunctionValues()
 import Tetrahedron
 import ThreeDimensional
 
index 66f592b8aa934d3ef1fecdae3da9465d524cc958..73723c270fa810119cfb97013adf6d1fdb37b0a5 100644 (file)
@@ -9,9 +9,9 @@ import Test.Framework.Providers.QuickCheck2 (testProperty)
 import Test.HUnit
 import Test.QuickCheck (Testable ())
 
+import FunctionValues (functionvalues_tests)
 import Tests.Cardinal
 import Tests.Cube as TC
-import Tests.FunctionValues
 import Tests.Grid
 import Tests.Misc
 import Tests.Tetrahedron as TT
@@ -30,9 +30,6 @@ cardinal_tests =
     testGroup "Cardinal Tests" [
       tc "c-tilde_2100 rotation correct" test_c_tilde_2100_rotation_correct ]
 
-function_values_tests :: Test.Framework.Test
-function_values_tests =
-    testGroup "FunctionValues Tests" [ tc "test directions" test_directions ]
 
 grid_tests :: Test.Framework.Test
 grid_tests =