File: test_fn_neighbor_table.cpp

package info (click to toggle)
gridtools 2.3.9-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 29,480 kB
  • sloc: cpp: 228,792; python: 17,561; javascript: 9,164; ansic: 4,101; sh: 850; makefile: 231; f90: 201
file content (31 lines) | stat: -rw-r--r-- 987 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
 * GridTools
 *
 * Copyright (c) 2014-2023, ETH Zurich
 * All rights reserved.
 *
 * Please, refer to the LICENSE file in the root directory.
 * SPDX-License-Identifier: BSD-3-Clause
 */
#include <gridtools/fn/neighbor_table.hpp>

#include <array>
#include <tuple>

#include <gtest/gtest.h>

namespace gridtools::fn {
    struct a_neighbor_table {};
    std::array<int, 3> neighbor_table_neighbors(a_neighbor_table, int) { return {1, 2, 42}; }

    static_assert(neighbor_table::is_neighbor_table<a_neighbor_table>());
    static_assert(neighbor_table::is_neighbor_table<std::array<int, 3>[]>());
    static_assert(neighbor_table::is_neighbor_table<std::tuple<int, int, int>[]>());
    static_assert(!neighbor_table::is_neighbor_table<int>());

    TEST(neighbor_table, smoke) {
        std::array<int, 2> table[3] = {{1, 2}, {3, 4}, {4, 5}};
        for (int i = 0; i < 3; ++i)
            EXPECT_EQ(table[i], neighbor_table::neighbors(table, i));
    }
} // namespace gridtools::fn