Skip to content

Commit fe6393f

Browse files
committed
WIP fixing collision handler order
1 parent cf198b9 commit fe6393f

File tree

3 files changed

+46
-42
lines changed

3 files changed

+46
-42
lines changed

Munk2D

pymunk/tests/test_arbiter.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,8 @@ def testImpulse(self) -> None:
165165
self.post_solve_done = False
166166

167167
def post_solve(arb: p.Arbiter, space: p.Space, data: Any) -> None:
168-
self.assertAlmostEqual(arb.total_impulse.x, 3.3936651583)
169-
self.assertAlmostEqual(arb.total_impulse.y, 4.3438914027)
168+
self.assertAlmostEqual(arb.total_impulse.x, -3.3936651583)
169+
self.assertAlmostEqual(arb.total_impulse.y, -4.3438914027)
170170
self.post_solve_done = True
171171

172172
s.add_collision_handler(1, 2).post_solve = post_solve
@@ -254,8 +254,8 @@ def pre_solve1(arb: p.Arbiter, space: p.Space, data: Any) -> None:
254254

255255
s.step(0.1)
256256

257-
self.assertAlmostEqual(r["n"].x, -0.44721359)
258-
self.assertAlmostEqual(r["n"].y, -0.89442719)
257+
self.assertAlmostEqual(r["n"].x, 0.44721359)
258+
self.assertAlmostEqual(r["n"].y, 0.89442719)
259259

260260
def testIsRemoval(self) -> None:
261261
s = p.Space()

pymunk/tests/test_space.py

Lines changed: 41 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -354,27 +354,25 @@ def testSensorQueries(self) -> None:
354354
s2 = p.Circle(b2, 1)
355355
s.add(b2, s2)
356356

357-
print()
358-
print("Shapes", s1, s2)
359-
r = s.bb_query(p.BB(0, 0, 10, 10), p.ShapeFilter())
360-
assert len(r), 2
357+
r1 = s.bb_query(p.BB(0, 0, 10, 10), p.ShapeFilter())
358+
assert len(r1), 2
361359

362-
r = s.point_query((0, 0), 10, p.ShapeFilter())
363-
assert len(r), 2
360+
r2 = s.point_query((0, 0), 10, p.ShapeFilter())
361+
assert len(r2), 2
364362

365-
r = s.point_query_nearest((0, 0), 10, p.ShapeFilter())
366-
assert r != None
367-
self.assertEqual(r.shape, s1)
363+
r3 = s.point_query_nearest((0, 0), 10, p.ShapeFilter())
364+
assert r3 != None
365+
self.assertEqual(r3.shape, s1)
368366

369-
r = s.shape_query(p.Circle(p.Body(body_type=p.Body.KINEMATIC), 10))
370-
assert len(r), 2
367+
r4 = s.shape_query(p.Circle(p.Body(body_type=p.Body.KINEMATIC), 10))
368+
assert len(r4), 2
371369

372-
r = s.segment_query((0, 0), (10, 0), 1, p.ShapeFilter())
373-
assert len(r), 2
370+
r5 = s.segment_query((0, 0), (10, 0), 1, p.ShapeFilter())
371+
assert len(r5), 2
374372

375-
r = s.segment_query_first((0, 0), (10, 0), 1, p.ShapeFilter())
376-
assert r != None
377-
self.assertEqual(r.shape, s1)
373+
r6 = s.segment_query_first((0, 0), (10, 0), 1, p.ShapeFilter())
374+
assert r6 != None
375+
self.assertEqual(r6.shape, s1)
378376

379377
def testReindexShape(self) -> None:
380378
s = p.Space()
@@ -851,7 +849,13 @@ def callback(
851849
space: p.Space,
852850
data: dict[Any, Any],
853851
) -> None:
854-
callback_calls.append((name, types))
852+
callback_calls.append(
853+
(
854+
name,
855+
types,
856+
(arb.shapes[0].collision_type, arb.shapes[1].collision_type),
857+
)
858+
)
855859

856860
handler_order = [
857861
(1, 2),
@@ -886,26 +890,26 @@ def callback(
886890
s.step(0.1)
887891

888892
expected_calls = [
889-
("begin", (1, 2)),
890-
("begin", (2, 1)),
891-
("begin", (1, None)),
892-
("begin", (2, None)),
893-
("begin", (None, None)),
894-
("pre_solve", (1, 2)),
895-
("pre_solve", (2, 1)),
896-
("pre_solve", (1, None)),
897-
("pre_solve", (2, None)),
898-
("pre_solve", (None, None)),
899-
("post_solve", (1, 2)),
900-
("post_solve", (2, 1)),
901-
("post_solve", (1, None)),
902-
("post_solve", (2, None)),
903-
("post_solve", (None, None)),
904-
("separate", (1, 2)),
905-
("separate", (2, 1)),
906-
("separate", (1, None)),
907-
("separate", (2, None)),
908-
("separate", (None, None)),
893+
("begin", (1, 2), (1, 2)),
894+
("begin", (2, 1), (2, 1)),
895+
("begin", (1, None), (1, 2)),
896+
("begin", (2, None), (2, 1)),
897+
("begin", (None, None), (1, 2)),
898+
("pre_solve", (1, 2), (1, 2)),
899+
("pre_solve", (2, 1), (2, 1)),
900+
("pre_solve", (1, None), (1, 2)),
901+
("pre_solve", (2, None), (2, 1)),
902+
("pre_solve", (None, None), (1, 2)),
903+
("post_solve", (1, 2), (1, 2)),
904+
("post_solve", (2, 1), (2, 1)),
905+
("post_solve", (1, None), (1, 2)),
906+
("post_solve", (2, None), (2, 1)),
907+
("post_solve", (None, None), (1, 2)),
908+
("separate", (1, 2), (1, 2)),
909+
("separate", (2, 1), (2, 1)),
910+
("separate", (1, None), (1, 2)),
911+
("separate", (2, None), (2, 1)),
912+
("separate", (None, None), (1, 2)),
909913
]
910914
self.assertListEqual(callback_calls, expected_calls)
911915

0 commit comments

Comments
 (0)