21 using ab_node_t = assns_ab_t::const_iterator::value_type;
29 static_assert(std::is_same_v<ab_node_first_t, abd_node_first_t>);
30 static_assert(std::is_same_v<ab_node_second_t, abd_node_second_t>);
44 floatvec_t const vf{1.0, 1.1, 2.0, 2.1, 3.0, 3.1};
46 intvec_t const vtest{1, 1, 2, 2, 3, 3};
53 for (
long unsigned int i = 0; i < 3; ++i) {
55 for (
long unsigned int j = 0; j < 2; ++j) {
64 auto my_begin = assns.
begin();
65 auto const my_end = assns.
end();
68 [](
auto const&
r,
short const s,
float const f,
int const j) {
69 auto const& first = get<abd_node_first_t>(
r);
70 auto const&
second = get<abd_node_second_t>(
r);
71 auto const&
data = get<abd_node_data_t>(
r);
73 auto const& firstA = get<0>(
r);
74 auto const& secondA = get<1>(
r);
75 auto const& dataA = get<2>(
r);
77 auto const& firstB = get<Ptr<int>>(
r);
78 auto const& secondB = get<Ptr<float>>(
r);
79 auto const& dataB = get<short>(
r);
81 assert(first == firstA);
82 assert(second == secondA);
83 assert(data == dataA);
85 assert(first == firstB);
86 assert(second == secondB);
87 assert(data == dataB);
95 for (
auto p = my_begin;
p != my_end; ++
p) {
97 check_values(
r, vs[
k], vf[k], vtest[k]);
103 for (
auto const&
p : assns) {
104 check_values(
p, vs[
k], vf[k], vtest[k]);
109 auto print = [](
auto const&
r) { std::cout <<
" " << *(
r.data); };
110 std::for_each(assns.begin(), assns.end(), print);
113 static_assert(std::is_copy_constructible_v<ci_t>);
114 static_assert(std::is_copy_assignable_v<ci_t>);
115 static_assert(std::is_move_assignable_v<ci_t>);
117 assert(*((*(my_begin + 4)).
data) == 30);
119 assert(*((*my_begin).data) == 30);
120 assert(my_begin - my_end == 2);
121 assert(*(my_begin[0].
data) == 30);
122 assert(*(my_begin->data) == 30);
123 assert((my_begin < my_end) ==
true);
124 assert((my_begin <= my_end) ==
true);
125 assert((my_begin > my_end) ==
false);
126 assert((my_begin >= my_end) ==
false);
130 assert(empty_assns.
rbegin() == empty_assns.
rend());
132 k = assns.size() - 1;
133 auto const my_rbegin = assns.rbegin();
134 auto const my_rend = assns.rend();
135 for (
auto it = my_rbegin; it != my_rend; ++it) {
136 check_values(*it, vs[k], vf[k], vtest[k]);
140 assert((my_rbegin < my_rend) ==
true);
141 assert((my_rbegin <= my_rend) ==
true);
142 assert((my_rbegin > my_rend) ==
false);
143 assert((my_rbegin >= my_rend) ==
false);
assns_abd_t::const_iterator ci_t
std::vector< short > shortvec_t
const_iterator begin() const
std::vector< int > intvec_t
ci_t::value_type abd_node_t
typename tuple_element< I, Node >::type tuple_element_t
std::vector< float > floatvec_t
std::vector< std::string > strvec_t
const_iterator end() const
const_reverse_iterator rend() const
assns_ab_t::const_iterator::value_type ab_node_t
void addSingle(Ptr< left_t > const &left, Ptr< right_t > const &right, data_t const &data)
ab_node_t::second_type ab_node_second_t
abd_node_t::second_type abd_node_second_t
abd_node_t::first_type abd_node_first_t
ab_node_t::first_type ab_node_first_t
const_reverse_iterator rbegin() const
second_as<> second
Type of time stored in seconds, in double precision.
typename art::const_AssnsIter< L, R, D, Direction::Forward > const_iterator
abd_node_t::data_type abd_node_data_t
QTextStream & endl(QTextStream &s)