]> gitweb.michael.orlitzky.com - spline3.git/blobdiff - src/Grid.hs
Remove the now-useless make_grid function.
[spline3.git] / src / Grid.hs
index 94b9e1de7715bd4107a52904dff3ab803a0cd1a7..624dd840672eb598eed7f574adffb7169f47da50 100644 (file)
@@ -5,7 +5,6 @@
 module Grid (
   cube_at,
   grid_tests,
-  make_grid,
   slow_tests,
   zoom
   )
@@ -28,14 +27,13 @@ import Cube (Cube(Cube),
              find_containing_tetrahedron,
              tetrahedra,
              tetrahedron)
-import Examples (trilinear, trilinear9x9x9, zeros, naturals_1d)
+import Examples (trilinear, trilinear9x9x9, zeros)
 import FunctionValues (make_values, value_at)
 import Point (Point(..))
 import ScaleFactor (ScaleFactor)
 import Tetrahedron (
   Tetrahedron(v0,v1,v2,v3),
   c,
-  contains_point,
   polynomial,
   )
 import Values (Values3D, dims, empty3d, zoom_shape)
@@ -54,14 +52,7 @@ instance Arbitrary Grid where
     arbitrary = do
       (Positive h') <- arbitrary :: Gen (Positive Double)
       fvs <- arbitrary :: Gen Values3D
-      return (make_grid h' fvs)
-
-
--- | The constructor that we want people to use.
---   Ignore non-positive grid sizes for performance.
-make_grid :: Double -> Values3D -> Grid
-make_grid grid_size values =
-  Grid grid_size values
+      return $ Grid h' fvs
 
 
 
@@ -120,7 +111,7 @@ zoom_result :: Values3D -> ScaleFactor -> R.DIM3 -> Double
 zoom_result v3d (sfx, sfy, sfz) (R.Z R.:. m R.:. n R.:. o) =
   f p
   where
-    g = make_grid 1 v3d
+    g = Grid 1 v3d
     offset = (h g)/2
     m' = (fromIntegral m) / (fromIntegral sfx) - offset
     n' = (fromIntegral n) / (fromIntegral sfy) - offset
@@ -181,7 +172,7 @@ trilinear_c0_t0_tests =
        testCase "v3 is correct" test_trilinear_f0_t0_v3]
     ]
   where
-    g = make_grid 1 trilinear
+    g = Grid 1 trilinear
     cube = cube_at g 1 1 1
     t = tetrahedron cube 0
 
@@ -296,7 +287,7 @@ test_trilinear_reproduced =
                       let j' = fromIntegral j,
                       let k' = fromIntegral k]
     where
-      g = make_grid 1 trilinear
+      g = Grid 1 trilinear
       cs = [ cube_at g ci cj ck | ci <- [0..2], cj <- [0..2], ck <- [0..2] ]
 
 
@@ -314,7 +305,7 @@ test_zeros_reproduced =
                       t0 <- tetrahedra c0,
                       let p = polynomial t0 ]
     where
-      g = make_grid 1 zeros
+      g = Grid 1 zeros
       cs = [ cube_at g ci cj ck | ci <- [0..2], cj <- [0..2], ck <- [0..2] ]
 
 
@@ -332,29 +323,10 @@ test_trilinear9x9x9_reproduced =
               let j' = (fromIntegral j) * 0.5,
               let k' = (fromIntegral k) * 0.5]
     where
-      g = make_grid 1 trilinear
+      g = Grid 1 trilinear
       c0 = cube_at g 1 1 1
 
 
--- | The point 'p' in this test lies on the boundary of tetrahedra 12 and 15.
---   However, the 'contains_point' test fails due to some numerical innacuracy.
---   This bug should have been fixed by setting a positive tolerance level.
---
---   Example from before the fix:
---
---   b1 (tetrahedron c 20) (0, 17.5, 0.5)
---   -0.0
---
-test_tetrahedra_collision_sensitivity :: Assertion
-test_tetrahedra_collision_sensitivity =
-  assertTrue "tetrahedron collision tests isn't too sensitive" $
-             contains_point t20 p
-  where
-    g = make_grid 1 naturals_1d
-    cube = cube_at g 0 18 0
-    p = Point 0 17.5 0.5
-    t20 = tetrahedron cube 20
-
 
 prop_cube_indices_never_go_out_of_bounds :: Grid -> Gen Bool
 prop_cube_indices_never_go_out_of_bounds g =
@@ -495,8 +467,6 @@ grid_tests =
     testGroup "Grid Tests" [
       trilinear_c0_t0_tests,
       p80_29_properties,
-      testCase "tetrahedra collision test isn't too sensitive"
-        test_tetrahedra_collision_sensitivity,
       testProperty "cube indices within bounds"
         prop_cube_indices_never_go_out_of_bounds ]