def test_len(self): from grease.component import Component c = Component() c.set_world(world) self.assertEqual(len(c), 0) self.assertEqual(len(c.entities), 0) entities = [TestEntity() for _ in range(50)] [c.set(e) for e in entities] self.assertEqual(len(c), 50) self.assertEqual(len(c.entities), 50) [c.remove(e) for e in entities[:25]] self.assertEqual(len(c.entities), 25) self.assertEqual(len(c), 50) c.step(0) self.assertEqual(len(c), 25) self.assertEqual(len(c.entities), 25)
def test_step_updates_new_and_deleted_lists(self): from grease.component import Component c = Component(x=float, y=float) c.set_world(world) self.assertEqual(list(c.new_entities), []) self.assertEqual(list(c.deleted_entities), []) e1 = TestEntity() e2 = TestEntity() c.set(e1) c.set(e2) self.assertEqual(list(c.new_entities), []) self.assertEqual(list(c.deleted_entities), []) c.step(0) self.assertEqual(list(c.new_entities), [e1, e2]) self.assertEqual(list(c.deleted_entities), []) c.step(0) self.assertEqual(list(c.new_entities), []) self.assertEqual(list(c.deleted_entities), []) del c[e1] del c[e2] self.assertEqual(list(c.new_entities), []) self.assertEqual(list(c.deleted_entities), []) c.step(0) self.assertEqual(list(c.new_entities), []) self.assertEqual(list(c.deleted_entities), [e1, e2])
def test_remove_and_contains(self): from grease.component import Component c = Component() c.set_world(world) e1 = TestEntity() e2 = TestEntity() self.assertFalse(c.remove(e1)) c.set(e1) c.set(e2) self.assertTrue(c.remove(e1)) self.assertTrue(e1 in c) c.step(0) self.assertFalse(e1 in c) self.assertTrue(e2 in c) self.assertFalse(c.remove(e1)) c.step(0) self.assertTrue(c.remove(e2)) self.assertTrue(e2 in c) c.step(0) self.assertFalse(e2 in c) self.assertFalse(e2 in c)