added tests, expanding solution algorithm
This commit is contained in:
63
tests.cpp
Normal file
63
tests.cpp
Normal file
@@ -0,0 +1,63 @@
|
||||
#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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user