mirror of
https://github.com/BlackMATov/vmath.hpp.git
synced 2025-12-16 14:11:28 +07:00
union constexpr data
This commit is contained in:
@@ -16,7 +16,11 @@ namespace
|
||||
TEST_CASE("vmath/vec") {
|
||||
using namespace vmath_hpp;
|
||||
|
||||
SECTION("sizeof") {
|
||||
SECTION("size/sizeof") {
|
||||
STATIC_REQUIRE(vec2i{}.size == 2);
|
||||
STATIC_REQUIRE(vec3i{}.size == 3);
|
||||
STATIC_REQUIRE(vec4i{}.size == 4);
|
||||
|
||||
STATIC_REQUIRE(sizeof(vec2i{}) == sizeof(int) * 2);
|
||||
STATIC_REQUIRE(sizeof(vec3i{}) == sizeof(int) * 3);
|
||||
STATIC_REQUIRE(sizeof(vec4i{}) == sizeof(int) * 4);
|
||||
@@ -24,14 +28,14 @@ TEST_CASE("vmath/vec") {
|
||||
|
||||
SECTION("ctors") {
|
||||
{
|
||||
STATIC_REQUIRE(vec2i().x() == 0);
|
||||
STATIC_REQUIRE(vec2i().y() == 0);
|
||||
STATIC_REQUIRE(vec2i().x == 0);
|
||||
STATIC_REQUIRE(vec2i().y == 0);
|
||||
|
||||
STATIC_REQUIRE(vec2i(1).x() == 1);
|
||||
STATIC_REQUIRE(vec2i(1).y() == 1);
|
||||
STATIC_REQUIRE(vec2i(1).x == 1);
|
||||
STATIC_REQUIRE(vec2i(1).y == 1);
|
||||
|
||||
STATIC_REQUIRE(vec2i(1,2).x() == 1);
|
||||
STATIC_REQUIRE(vec2i(1,2).y() == 2);
|
||||
STATIC_REQUIRE(vec2i(1,2).x == 1);
|
||||
STATIC_REQUIRE(vec2i(1,2).y == 2);
|
||||
}
|
||||
{
|
||||
constexpr vec2i v(1,2);
|
||||
@@ -100,81 +104,19 @@ TEST_CASE("vmath/vec") {
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("iter") {
|
||||
{
|
||||
vec2i v(1,2);
|
||||
vec2i::iterator i = v.begin();
|
||||
REQUIRE(*i++ == 1);
|
||||
REQUIRE(*i++ == 2);
|
||||
REQUIRE(v.end() == i);
|
||||
}
|
||||
{
|
||||
const vec2i v(1,2);
|
||||
vec2i::const_iterator i = v.begin();
|
||||
REQUIRE(*i++ == 1);
|
||||
REQUIRE(*i++ == 2);
|
||||
REQUIRE(v.end() == i);
|
||||
}
|
||||
{
|
||||
vec2i v(1,2);
|
||||
for ( auto i = v.begin(); i < v.end(); ++i ) {
|
||||
*i = *i * 2;
|
||||
}
|
||||
REQUIRE(v == vec2i(2,4));
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("riter") {
|
||||
{
|
||||
vec2i v(1,2);
|
||||
vec2i::reverse_iterator i = v.rbegin();
|
||||
REQUIRE(*i++ == 2);
|
||||
REQUIRE(*i++ == 1);
|
||||
REQUIRE(v.rend() == i);
|
||||
for ( auto j = v.rbegin(); j < v.rend(); ++j ) {
|
||||
*j = *j * 2;
|
||||
}
|
||||
REQUIRE(v == vec2i(2,4));
|
||||
}
|
||||
{
|
||||
const vec2i v(1,2);
|
||||
vec2i::const_reverse_iterator i = v.rbegin();
|
||||
REQUIRE(*i++ == 2);
|
||||
REQUIRE(*i++ == 1);
|
||||
REQUIRE(v.rend() == i);
|
||||
}
|
||||
{
|
||||
vec2i v(1,2);
|
||||
for ( auto i = v.rbegin(); i < v.rend(); ++i ) {
|
||||
*i = *i * 2;
|
||||
}
|
||||
REQUIRE(v == vec2i(2,4));
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("size/max_size/empty") {
|
||||
STATIC_REQUIRE(vec<int, 2>().size() == 2);
|
||||
STATIC_REQUIRE(vec<int, 2>().max_size() == 2);
|
||||
STATIC_REQUIRE_FALSE(vec<int, 2>().empty());
|
||||
|
||||
STATIC_REQUIRE(vec<int, 3>().size() == 3);
|
||||
STATIC_REQUIRE(vec<int, 3>().max_size() == 3);
|
||||
STATIC_REQUIRE_FALSE(vec<int, 3>().empty());
|
||||
}
|
||||
|
||||
SECTION("operator[]") {
|
||||
{
|
||||
STATIC_REQUIRE(vec2i(1,2).x() == 1);
|
||||
STATIC_REQUIRE(vec2i(1,2).y() == 2);
|
||||
STATIC_REQUIRE(vec2i(1,2).x == 1);
|
||||
STATIC_REQUIRE(vec2i(1,2).y == 2);
|
||||
|
||||
STATIC_REQUIRE(vec3i(1,2,3).x() == 1);
|
||||
STATIC_REQUIRE(vec3i(1,2,3).y() == 2);
|
||||
STATIC_REQUIRE(vec3i(1,2,3).z() == 3);
|
||||
STATIC_REQUIRE(vec3i(1,2,3).x == 1);
|
||||
STATIC_REQUIRE(vec3i(1,2,3).y == 2);
|
||||
STATIC_REQUIRE(vec3i(1,2,3).z == 3);
|
||||
|
||||
STATIC_REQUIRE(vec4i(1,2,3,4).x() == 1);
|
||||
STATIC_REQUIRE(vec4i(1,2,3,4).y() == 2);
|
||||
STATIC_REQUIRE(vec4i(1,2,3,4).z() == 3);
|
||||
STATIC_REQUIRE(vec4i(1,2,3,4).w() == 4);
|
||||
STATIC_REQUIRE(vec4i(1,2,3,4).x == 1);
|
||||
STATIC_REQUIRE(vec4i(1,2,3,4).y == 2);
|
||||
STATIC_REQUIRE(vec4i(1,2,3,4).z == 3);
|
||||
STATIC_REQUIRE(vec4i(1,2,3,4).w == 4);
|
||||
}
|
||||
{
|
||||
STATIC_REQUIRE(vec2i(1,2)[0] == 1);
|
||||
@@ -182,23 +124,23 @@ TEST_CASE("vmath/vec") {
|
||||
}
|
||||
{
|
||||
vec2i v;
|
||||
v.x() = 1;
|
||||
v.y() = 2;
|
||||
v.x = 1;
|
||||
v.y = 2;
|
||||
REQUIRE(v == vec2i(1,2));
|
||||
}
|
||||
{
|
||||
vec3i v;
|
||||
v.x() = 1;
|
||||
v.y() = 2;
|
||||
v.z() = 3;
|
||||
v.x = 1;
|
||||
v.y = 2;
|
||||
v.z = 3;
|
||||
REQUIRE(v == vec3i(1,2,3));
|
||||
}
|
||||
{
|
||||
vec4i v;
|
||||
v.x() = 1;
|
||||
v.y() = 2;
|
||||
v.z() = 3;
|
||||
v.w() = 4;
|
||||
v.x = 1;
|
||||
v.y = 2;
|
||||
v.z = 3;
|
||||
v.w = 4;
|
||||
REQUIRE(v == vec4i(1,2,3,4));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user