Sequoia
Loading...
Searching...
No Matches
IteratorTest.hpp
Go to the documentation of this file.
1
2// Copyright Oliver J. Rosten 2018. //
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 iterator_test 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 template<
28 std::input_or_output_iterator CustomIter,
29 std::input_or_output_iterator Iter,
30 std::sentinel_for<Iter> Sentinel,
31 class... Args,
32 class Pointer=typename CustomIter::pointer
33 >
34 void basic_checks(Iter begin, Sentinel end, Pointer pBegin, std::string_view message, Args... args);
35
36 void test_iterator();
37 void test_const_iterator();
38 void test_reverse_iterator();
39 void test_const_reverse_iterator();
40
41 void test_const_scaling_iterator();
42 void test_const_reverse_scaling_iterator();
43 };
44}
Utilities for checking regular semantics.
class template from which all concrete tests should derive.
Definition: FreeTestCore.hpp:144
Definition: IteratorTest.hpp:17