64 lines
2.9 KiB
C++
64 lines
2.9 KiB
C++
#include <gtest/gtest.h>
|
|
#include "VoxelSpace.h"
|
|
|
|
TEST(VoxelSpaces, BasicPositions) {
|
|
auto space = Voxel::Space{ .space=23ull, .dims={3, 3, 3}};
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 0, 0, 1), true);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 1, 0, 0), false);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 2, 1, 2), false);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 1, 2, 1), false);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 0, 0, 0), true);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 2, 2, 1), false);
|
|
|
|
space = Voxel::Space{ .space=30ull, .dims={3, 3, 3}};
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 0, 0, 1), true);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 1, 0, 0), false);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 2, 1, 2), false);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 1, 2, 1), false);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 0, 0, 0), false);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 2, 2, 1), false);
|
|
|
|
space = Voxel::Space{ .space=15ull, .dims={3, 3, 3}};
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 0, 0, 1), true);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 1, 0, 0), false);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 2, 1, 2), false);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 1, 2, 1), false);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 0, 0, 0), true);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 2, 2, 1), false);
|
|
|
|
space = Voxel::Space{ .space=23ull, .dims={3, 3, 3}};
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 0, 0, 1), true);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 1, 0, 0), false);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 2, 1, 2), false);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 1, 2, 1), false);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 0, 0, 0), true);
|
|
EXPECT_EQ(Voxel::filledAt(space.space, space.dims, 2, 2, 1), false);
|
|
}
|
|
|
|
TEST(VoxelSpaces, RotatedIndices) {
|
|
auto space1 = Voxel::Space{ .space=172ull, .dims={3, 3, 3}};
|
|
|
|
EXPECT_EQ(Voxel::newIndexRotX(space1.dims, 0, 0, 0), 6);
|
|
EXPECT_EQ(Voxel::newIndexRotX(space1.dims, 1, 0, 1), 12);
|
|
|
|
EXPECT_EQ(Voxel::newIndexRotY(space1.dims, 0, 1, 0), 5);
|
|
EXPECT_EQ(Voxel::newIndexRotY(space1.dims, 1, 2, 0), 7);
|
|
|
|
EXPECT_EQ(Voxel::newIndexRotZ(space1.dims, 1, 0, 2), 23);
|
|
EXPECT_EQ(Voxel::newIndexRotZ(space1.dims, 0, 0, 0), 18);
|
|
}
|
|
|
|
TEST(VoxelSpaces, RotateXYZ) {
|
|
auto space1 = Voxel::Space{ .space=30ull, .dims={3, 3, 3}};
|
|
auto space2 = Voxel::Space{ .space=30ull, .dims={3, 3, 3}};
|
|
auto space3 = Voxel::Space{ .space=30ull, .dims={3, 3, 3}};
|
|
Voxel::rotate90X(&space1);
|
|
Voxel::rotate90Y(&space2);
|
|
Voxel::rotate90Z(&space3);
|
|
EXPECT_EQ(space1.space, 153ull);
|
|
EXPECT_EQ(space2.space, 1067040ull);
|
|
EXPECT_EQ(space3.space, 1574400ull);
|
|
}
|
|
|
|
|