summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
d1ee387)
Update the test for the collision detection (it was wrong).
--
-- Example from before the fix:
--
--
-- Example from before the fix:
--
--- > b0 (tetrahedron12 c) p
--- -2.168404344971019e-18
-- > b0 (tetrahedron15 c) p
-- -3.4694469519536365e-18
--
test_tetrahedra_collision_sensitivity :: Assertion
test_tetrahedra_collision_sensitivity =
-- > b0 (tetrahedron15 c) p
-- -3.4694469519536365e-18
--
test_tetrahedra_collision_sensitivity :: Assertion
test_tetrahedra_collision_sensitivity =
- assertTrue "tetrahedron collision tests aren't too sensitive" $
- contains_point t12 p &&
+ assertTrue "tetrahedron collision tests isn't too sensitive" $
contains_point t15 p
where
contains_point t15 p
where
- g = make_grid 1 trilinear
+ g = make_grid 1 naturals_1d
c = cube_at g 0 17 1
p = (0, 16.75, 0.5) :: Point
c = cube_at g 0 17 1
p = (0, 16.75, 0.5) :: Point
import Test.QuickCheck (Arbitrary(..), Gen)
import Cardinal
import Test.QuickCheck (Arbitrary(..), Gen)
import Cardinal
+import Comparisons (nearly_ge)
import FunctionValues
import Misc (factorial)
import Point
import FunctionValues
import Misc (factorial)
import Point
instance ThreeDimensional Tetrahedron where
center t = ((v0 t) + (v1 t) + (v2 t) + (v3 t)) `scale` (1/4)
contains_point t p =
instance ThreeDimensional Tetrahedron where
center t = ((v0 t) + (v1 t) + (v2 t) + (v3 t)) `scale` (1/4)
contains_point t p =
- (b0 t p) >= 0 && (b1 t p) >= 0 && (b2 t p) >= 0 && (b3 t p) >= 0
+ (b0 t p) `nearly_ge` 0 &&
+ (b1 t p) `nearly_ge` 0 &&
+ (b2 t p) `nearly_ge` 0 &&
+ (b3 t p) `nearly_ge` 0
polynomial :: Tetrahedron -> (RealFunction Point)
polynomial :: Tetrahedron -> (RealFunction Point)