def test_intersect(self): # test an intersection ray = Ray(Point(0, 0, 10), Vector(0, 0, -1)) intersection = Intersection() intersected = self.grid_accel.intersect(ray, intersection) self.assertFalse(intersected) ray.maxt = float('inf') intersected = self.grid_accel.intersect_p(ray) self.assertFalse(intersected) # test an intersection ray2 = Ray(Point(10, 0, 10), Vector(0, 0, -1)) intersection = Intersection() intersected = self.grid_accel.intersect(ray2, intersection) self.assertTrue(intersected) self.assertEqual(intersection.primitive_id, self.primitive_sphere1.primitive_id) self.assertEqual(intersection.shape_id, self.sphere1.shape_id) ray2.maxt = float('inf') intersected = self.grid_accel.intersect_p(ray2) self.assertTrue(intersected) # test an intersection ray3 = Ray(Point(-10, 0, 10), Vector(0, 0, -1)) intersection = Intersection() intersected = self.grid_accel.intersect(ray3, intersection) self.assertTrue(intersected) self.assertEqual(intersection.primitive_id, self.primitive_sphere2.primitive_id) self.assertEqual(intersection.shape_id, self.sphere2.shape_id) ray3.maxt = float('inf') intersected = self.grid_accel.intersect_p(ray3) self.assertTrue(intersected)