15 #include <gmock/gmock.h>
16 #include <gtest/gtest.h>
28 auto array_distance(std::size_t first, std::size_t second) {
29 return std::abs(
static_cast<intmax_t
>(first) -
static_cast<intmax_t
>(second));
32 auto make_neighbors_function(std::size_t size) {
33 return [=](std::size_t index) {
34 auto result = std::vector<std::size_t>{};
36 result.push_back(index - 1);
38 if (index < size - 1) {
39 result.push_back(index + 1);
45 TEST(DistanceMap, None) {
46 auto map = std::vector<bool>{};
48 ASSERT_EQ(distance_map.size(), 0);
51 TEST(DistanceMap, Empty) {
52 auto map = std::array<bool, 6>{
false,
false,
false,
false,
false,
false};
54 ASSERT_THAT(distance_map, testing::ElementsAre(0, 0, 0, 0, 0, 0));
57 TEST(DistanceMap, Full) {
58 auto map = std::array<bool, 6>{
true,
true,
true,
true,
true,
true};
60 ASSERT_THAT(distance_map, testing::ElementsAre(0, 0, 0, 0, 0, 0));
63 TEST(DistanceMap, Case1) {
64 auto map = std::array<bool, 6>{
false,
true,
false,
false,
false,
true};
66 ASSERT_THAT(distance_map, testing::ElementsAre(1, 0, 1, 2, 1, 0));
69 TEST(DistanceMap, Case2) {
70 auto map = std::array<bool, 6>{
true,
true,
false,
false,
false,
false};
72 ASSERT_THAT(distance_map, testing::ElementsAre(0, 0, 1, 2, 3, 4));
75 TEST(DistanceMap, Case3) {
76 auto map = std::array<bool, 6>{
false,
false,
false,
false,
false,
true};
78 ASSERT_THAT(distance_map, testing::ElementsAre(5, 4, 3, 2, 1, 0));