You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

66 lines
1.7 KiB

#include <medusa/bits/spatial_search/Grid.hpp>
#include "gtest/gtest.h"
namespace mm {
TEST(Grid, 3D) {
Grid<int, 3> grid({2, 3, 4}, -1);
int c = 0;
for (int i = 0; i < grid.size(0); ++i) {
for (int j = 0; j < grid.size(1); ++j) {
for (int k = 0; k < grid.size(2); ++k) {
grid({i, j, k}) = c++;
}
}
}
// test setting, getting and row major storage
for (int i = 0; i < grid.size(0); ++i) {
for (int j = 0; j < grid.size(1); ++j) {
for (int k = 0; k < grid.size(2); ++k) {
ASSERT_EQ(grid.linearIndex({i, j, k}), grid({i, j, k}));
}
}
}
}
TEST(Grid, 1D) {
Grid<double, 1> grid({10});
grid({0}) = -3;
grid({3}) = 2;
EXPECT_EQ(-3, grid({0}));
EXPECT_EQ(0, grid({1}));
EXPECT_EQ(0, grid({2}));
EXPECT_EQ(2, grid({3}));
EXPECT_EQ(0, grid({4}));
}
TEST(Grid, Index3D) {
Grid<double, 3> grid({3, 4, 5});
EXPECT_EQ(0, grid.linearIndex({0, 0, 0}));
EXPECT_EQ(4, grid.linearIndex({0, 0, 4}));
EXPECT_EQ(19, grid.linearIndex({0, 3, 4}));
EXPECT_EQ((std::array<int, 3>({{0, 0, 0}})), grid.multiIndex(0));
EXPECT_EQ((std::array<int, 3>({{0, 0, 4}})), grid.multiIndex(4));
EXPECT_EQ((std::array<int, 3>({{0, 3, 4}})), grid.multiIndex(19));
}
TEST(Grid, Usage_4D) {
/// [Grid usage example]
Grid<double, 4> grid({2, 2, 2, 2});
grid({0, 1, 0, 0}) = -3;
grid({0, 0, 1, 0}) = 2;
EXPECT_EQ(2*2*2*2, grid.size());
EXPECT_EQ((std::array<int, 4>({2, 2, 2, 2})), grid.sizes());
EXPECT_EQ(2, grid.size(2));
EXPECT_EQ(-3, grid({0, 1, 0, 0}));
EXPECT_EQ(2, grid({0, 0, 1, 0}));
std::cout << grid << std::endl;
/// [Grid usage example]
}
} // namespace mm