def test_add_room_no_branch(self): builder = LevelBuilder() room = Room([(1, 0), (0, 0), (0, 1)]) room.neighbours = {} builder.add_room(room) self.assertEquals(len(builder.rooms), 1) added_room = builder.rooms.values()[0] self.assertEquals(added_room.neighbours, {})
def test_add_room(self): builder = LevelBuilder() branch_room = Room([(1, 0), (0, 0), (0, 1)]) branch_wall = 5 room = Room([(1, 0), (0, 0), (0, 1)]) room.neighbours = {} builder.add_room(room, branch_room, branch_wall) self.assertEquals(len(builder.rooms), 1) added_room = builder.rooms.values()[0] self.assertEquals(added_room.neighbours, {0: branch_room}) self.assertEquals(branch_room.neighbours, {branch_wall: added_room})
def test_add_room_works_on_branch_room_and_wall_zero(self): builder = LevelBuilder() branch_room = Room([(1, 0), (0, 0), (0, 1)]) branch_room.id = 0 branch_wall = 0 new_room = Room([(1, 0), (0, 0), (0, 1)]) new_room.neighbours = {} builder.add_room(new_room, branch_room, 0) self.assertEquals(len(builder.rooms), 1) added_room = builder.rooms.values()[0] self.assertEquals(added_room.neighbours, {0: branch_room}) self.assertEquals(branch_room.neighbours, {branch_wall: added_room})
def test_add_to_body(self): color = (100, 150, 200) v1, v2, v3 = (0.0, 0.0), (0.0, 1.0), (1.0, 0.0) verts = [v1, v2, v3] room = Room(verts) space = Space() body = Body(inf, inf) room.add_to_body(space, body) segs = set([ ((seg.a[0], seg.a[1]), (seg.b[0], seg.b[1])) for seg in space.static_shapes ]) self.assertEquals(segs, set([(v1, v2), (v2, v3), (v3, v1), (v1, v2)]), "room walls not added to space") for seg in space.static_shapes: self.assertEquals(seg.friction, 0.5, "bad wall friction") self.assertEquals(seg.elasticity, 0.5, "bad wall elasticity")
def test_add_to_body_should_not_add_segments_for_neighbours(self): color = (100, 150, 200) v1, v2, v3 = (0,1), (1,2), (2,0) verts = [v1, v2, v3] room = Room(verts) room.neighbours = {1: object(), 2: object()} space = Space() body = Body(inf, inf) room.add_to_body(space, body) segs = set([ ((seg.a[0], seg.a[1]), (seg.b[0], seg.b[1])) for seg in space.static_shapes ]) self.assertEquals(segs, set([(v1, v2)]), "wrong room walls added to space") for seg in space.static_shapes: self.assertEquals(seg.friction, 0.5, "bad wall friction") self.assertEquals(seg.elasticity, 0.5, "bad wall elasticity")
def test_add_to_pymunk(self): color = (50, 100, 200) v1, v2, v3 = (0, 0), (0, 100), (100, 0) verts = [v1, v2, v3] room1 = Room(verts) room1.id = 999 room1.add_to_body = Listener() room2 = Room(verts) room2.id = 1000 room2.add_to_body = Listener() world = World() world.rooms = {999: room1, 1000: room2} world.add_to_pymunk() expected = (world.space, world.static_body) self.assertEquals(room1.add_to_body.args, expected, "room1 walls not added to space") self.assertEquals(room2.add_to_body.args, expected, "room2 walls not added to space")
def test_attach(self): room1 = Room([(0, 0), (0, 1), (1, 1), (1, 0)]) room2 = Room([(1, 0), (1, 1), (2, 1), (2, 0)]) room1.attach(2, room2, 0) self.assertEquals(room1.neighbours, {2: room2}) self.assertEquals(room2.neighbours, {0: room1})