diff --git a/tests/05_rays.cpp b/tests/05_rays.cpp index f74fcac..9549590 100644 --- a/tests/05_rays.cpp +++ b/tests/05_rays.cpp @@ -89,13 +89,30 @@ SCENARIO("Computing a point from a distance", "[features/rays.feature]") SCENARIO("A ray intersects a sphere at two points", "[features/spheres.feature]") { - Ray r(Tuple::Point(0, 0, -5), Tuple::Vector(0, 0, 1)); - Sphere s; - Intersections xs = s.intersect(r); - - REQUIRE(xs.count() == 2); - REQUIRE(xs[0].distance_t() == 4.0); - REQUIRE(xs[1].distance_t() == 6.0); + GIVEN("r <- ray(point(0, 0, -5), vector(0, 0, 1))") + { + Ray r(Tuple::Point(0, 0, -5), Tuple::Vector(0, 0, 1)); + AND_GIVEN("s <- sphere()") + { + Sphere s; + WHEN("xs <- intersect(s,r)") + { + Intersections xs = s.intersect(r); + THEN("xs.count = 2") + { + REQUIRE(xs.count() == 2); + } + AND_THEN("xs[0] = 4.0") + { + REQUIRE(xs[0].distance_t() == 4.0); + } + AND_THEN("xs[1 = 6.0") + { + REQUIRE(xs[1].distance_t() == 6.0); + } + } + } + } } /* ------------------------------------------------------------------------- */