#include #include #include TEST_CASE("Index") { pfor::Index it; pfor::index::Index<3> c3; std::size_t i = 5; SECTION("Index") { REQUIRE(it.eval(i) == i); } SECTION("Basic operations") { SECTION("Plus") { REQUIRE((+it).eval(i) == i); } SECTION("Minus") { REQUIRE((-it).eval(i) == -i); } // SECTION("Not") { // REQUIRE((!it).eval(i) == !i); // } // SECTION("BitNot") { // REQUIRE((~it).eval(i) == ~i); // } SECTION("Addition") { REQUIRE((it+c3).eval(i) == i+3); REQUIRE((it+it).eval(i) == i+i); } SECTION("Subtraction") { REQUIRE((it-c3).eval(i) == i-3); REQUIRE((it-it).eval(i) == 0); } SECTION("Multiplication") { REQUIRE((it*c3).eval(i) == i*3); REQUIRE((it*it).eval(i) == i*i); } // SECTION("Division") { // REQUIRE((it/c3).eval(i) == i/3); // REQUIRE((it/it).eval(i) == 1); // } // SECTION("Modulo") { // REQUIRE((it%c3).eval(i) == i%3); // REQUIRE((it%it).eval(i) == 0); // } // SECTION("LeftShift") { // REQUIRE((it<>c3).eval(i) == i>>3); // REQUIRE((it>>it).eval(i) == i>>i); // } } }