]> gitweb.michael.orlitzky.com - spline3.git/commitdiff
Add the prop_interior_values_all_identical test.
authorMichael Orlitzky <michael@orlitzky.com>
Tue, 7 Jun 2011 21:01:56 +0000 (17:01 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Tue, 7 Jun 2011 21:01:56 +0000 (17:01 -0400)
src/Tests/Cube.hs
test/TestSuite.hs

index aaafa7ca77a6cad7f9a6afc4cbab1745d120d611..dac4f80749f019b0f76dd2f29e77b235eeeea82e 100644 (file)
@@ -8,6 +8,7 @@ import Cardinal
 import Comparisons
 import Cube
 import FunctionValues
 import Comparisons
 import Cube
 import FunctionValues
+import Misc (all_equal)
 import Tests.FunctionValues ()
 import Tetrahedron (b0, b1, b2, b3, c, fv,
                     v0, v1, v2, v3, volume)
 import Tests.FunctionValues ()
 import Tetrahedron (b0, b1, b2, b3, c, fv,
                     v0, v1, v2, v3, volume)
@@ -540,6 +541,39 @@ prop_c1011_identity cube =
 
 
 
 
 
 
+-- | The function values at the interior should be the same for all tetrahedra.
+prop_interior_values_all_identical :: Cube -> Bool
+prop_interior_values_all_identical cube =
+    all_equal [i0, i1, i2, i3, i4, i5, i6, i7, i8,
+               i9, i10, i11, i12, i13, i14, i15, i16,
+               i17, i18, i19, i20, i21, i22, i23]
+    where
+      i0 = eval (Tetrahedron.fv (tetrahedron0 cube)) $ I
+      i1 = eval (Tetrahedron.fv (tetrahedron1 cube)) $ I
+      i2 = eval (Tetrahedron.fv (tetrahedron2 cube)) $ I
+      i3 = eval (Tetrahedron.fv (tetrahedron3 cube)) $ I
+      i4 = eval (Tetrahedron.fv (tetrahedron4 cube)) $ I
+      i5 = eval (Tetrahedron.fv (tetrahedron5 cube)) $ I
+      i6 = eval (Tetrahedron.fv (tetrahedron6 cube)) $ I
+      i7 = eval (Tetrahedron.fv (tetrahedron7 cube)) $ I
+      i8 = eval (Tetrahedron.fv (tetrahedron8 cube)) $ I
+      i9 = eval (Tetrahedron.fv (tetrahedron9 cube)) $ I
+      i10 = eval (Tetrahedron.fv (tetrahedron10 cube)) $ I
+      i11 = eval (Tetrahedron.fv (tetrahedron11 cube)) $ I
+      i12 = eval (Tetrahedron.fv (tetrahedron12 cube)) $ I
+      i13 = eval (Tetrahedron.fv (tetrahedron13 cube)) $ I
+      i14 = eval (Tetrahedron.fv (tetrahedron14 cube)) $ I
+      i15 = eval (Tetrahedron.fv (tetrahedron15 cube)) $ I
+      i16 = eval (Tetrahedron.fv (tetrahedron16 cube)) $ I
+      i17 = eval (Tetrahedron.fv (tetrahedron17 cube)) $ I
+      i18 = eval (Tetrahedron.fv (tetrahedron18 cube)) $ I
+      i19 = eval (Tetrahedron.fv (tetrahedron19 cube)) $ I
+      i20 = eval (Tetrahedron.fv (tetrahedron20 cube)) $ I
+      i21 = eval (Tetrahedron.fv (tetrahedron21 cube)) $ I
+      i22 = eval (Tetrahedron.fv (tetrahedron22 cube)) $ I
+      i23 = eval (Tetrahedron.fv (tetrahedron23 cube)) $ I
+
+
 -- | We know what (c t6 2 1 0 0) should be from Sorokina and Zeilfelder, p. 87.
 --   This test checks the rotation works as expected.
 prop_c_tilde_2100_rotation_correct :: Cube -> Bool
 -- | We know what (c t6 2 1 0 0) should be from Sorokina and Zeilfelder, p. 87.
 --   This test checks the rotation works as expected.
 prop_c_tilde_2100_rotation_correct :: Cube -> Bool
index ee6f0d4f797015e233c7196cafd5103a409c51ef..309a13c9815c74d3ff74158065dfcb1139b46b55 100644 (file)
@@ -238,6 +238,9 @@ main = do
   -- putStr "prop_c0300_identity3... "
   -- quickCheckWith qc_args TF.prop_c0300_identity3
 
   -- putStr "prop_c0300_identity3... "
   -- quickCheckWith qc_args TF.prop_c0300_identity3
 
+  putStrLn "prop_interior_values_all_identical... "
+  quickCheckWith qc_args prop_interior_values_all_identical
+
   putStrLn "prop_c_tilde_2100_rotation_correct... "
   quickCheckWith qc_args prop_c_tilde_2100_rotation_correct
 
   putStrLn "prop_c_tilde_2100_rotation_correct... "
   quickCheckWith qc_args prop_c_tilde_2100_rotation_correct