[Core] Add iteration support to Array
This commit is contained in:
parent
1f0f81049f
commit
64146cb7f3
15 changed files with 251 additions and 73 deletions
|
|
@ -545,6 +545,54 @@ TEST_CASE("[Array] Recursive self comparison") {
|
|||
a2.clear();
|
||||
}
|
||||
|
||||
TEST_CASE("[Array] Iteration") {
|
||||
Array a1 = build_array(1, 2, 3);
|
||||
Array a2 = build_array(1, 2, 3);
|
||||
|
||||
int idx = 0;
|
||||
for (Variant &E : a1) {
|
||||
CHECK_EQ(int(a2[idx]), int(E));
|
||||
idx++;
|
||||
}
|
||||
|
||||
idx = 0;
|
||||
|
||||
for (const Variant &E : (const Array &)a1) {
|
||||
CHECK_EQ(int(a2[idx]), int(E));
|
||||
idx++;
|
||||
}
|
||||
|
||||
a1.clear();
|
||||
}
|
||||
|
||||
TEST_CASE("[Array] Iteration and modification") {
|
||||
Array a1 = build_array(1, 2, 3);
|
||||
Array a2 = build_array(2, 3, 4);
|
||||
Array a3 = build_array(1, 2, 3);
|
||||
Array a4 = build_array(1, 2, 3);
|
||||
a3.make_read_only();
|
||||
|
||||
int idx = 0;
|
||||
for (Variant &E : a1) {
|
||||
E = a2[idx];
|
||||
idx++;
|
||||
}
|
||||
|
||||
CHECK_EQ(a1, a2);
|
||||
|
||||
// Ensure read-only is respected.
|
||||
idx = 0;
|
||||
for (Variant &E : a3) {
|
||||
E = a2[idx];
|
||||
}
|
||||
|
||||
CHECK_EQ(a3, a4);
|
||||
|
||||
a1.clear();
|
||||
a2.clear();
|
||||
a4.clear();
|
||||
}
|
||||
|
||||
} // namespace TestArray
|
||||
|
||||
#endif // TEST_ARRAY_H
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue