[FEAT] add tuple reflect
This commit is contained in:
@@ -168,3 +168,47 @@ SCENARIO("Computing the normal on a transformed sphere", "[features/spheres.feat
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
SCENARIO("Reflecting a vector approaching at 45°", "[features/tuples.feature]")
|
||||
{
|
||||
GIVEN("v <-vector(1, -1, 0)")
|
||||
{
|
||||
Tuple v = Tuple::Vector(1, -1, 0);
|
||||
AND_GIVEN("n <-vector(0, 1, 0)")
|
||||
{
|
||||
Tuple n = Tuple::Vector(0, 1, 0);
|
||||
WHEN("r <- reflect(v,n)")
|
||||
{
|
||||
Tuple r = v.reflect(n);
|
||||
THEN("r = vector(1,1,0)")
|
||||
{
|
||||
REQUIRE(r == Tuple::Vector(1, 1, 0));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
SCENARIO("Reflecting a vector off a slanted surface", "[features/tuples.feature]")
|
||||
{
|
||||
GIVEN("v <-vector(0, -1, 0)")
|
||||
{
|
||||
Tuple v = Tuple::Vector(0, -1, 0);
|
||||
AND_GIVEN("n <-vector(sqrt(2)/2, sqrt(2)/2, 0)")
|
||||
{
|
||||
Tuple n = Tuple::Vector(sqrt(2) / 2, sqrt(2) / 2, 0);
|
||||
WHEN("r <- reflect(v,n)")
|
||||
{
|
||||
Tuple r = v.reflect(n);
|
||||
THEN("r = vector(1,0,0)")
|
||||
{
|
||||
REQUIRE(r == Tuple::Vector(1, 0, 0));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user