Sequoia
Loading...
Searching...
No Matches
GraphMetaTest.hpp
Go to the documentation of this file.
1
2// Copyright Oliver J. Rosten 2019. //
3// Distributed under the GNU GENERAL PUBLIC LICENSE, Version 3.0. //
4// (See accompanying file LICENSE.md or copy at //
5// https://www.gnu.org/licenses/gpl-3.0.en.html) //
7
8#pragma once
9
13
14namespace sequoia::testing
15{
16 class test_graph_meta final : public regular_test
17 {
18 public:
19 using regular_test::regular_test;
20
21 [[nodiscard]]
22 std::filesystem::path source_file() const;
23
24 void run_tests();
25 private:
26
27 void test_method_detectors();
28
29 template
30 <
31 maths::graph_flavour GraphFlavour,
32 template<class, class, class> class EdgeType
33 >
34 void test_undirected();
35
36 void test_directed();
37
38 template
39 <
40 maths::graph_flavour GraphFlavour,
41 class EdgeWeight,
42 class EdgeMetaData,
43 template<class, class, class> class EdgeType
44 >
45 void test_undirected_unshared();
46
47 template
48 <
49 maths::graph_flavour GraphFlavour,
50 class EdgeWeight,
51 class EdgeMetaData,
52 template<class, class, class> class EdgeType
53 >
54 void test_undirected_shared();
55
56 template<class EdgeWeight>
57 void test_directed_impl();
58
59 void test_static_edge_index_generator();
60 };
61
62 template<class T> struct wrapper
63 {
64 T val{};
65
66 [[nodiscard]] friend constexpr bool operator==(const wrapper& lhs, const wrapper& rhs) noexcept = default;
67
68 [[nodiscard]] friend constexpr auto operator<=>(const wrapper& lhs, const wrapper& rhs) noexcept = default;
69 };
70}
class template from which all concrete tests should derive.
Definition: FreeTestCore.hpp:144
Definition: GraphMetaTest.hpp:17
Definition: GraphMetaTest.hpp:63