File indexing completed on 2025-12-16 09:25:22
0001
0002
0003
0004
0005
0006
0007
0008
0009 #include <boost/test/unit_test.hpp>
0010
0011 #include <Acts/Utilities/Zip.hpp>
0012
0013 #include <array>
0014 #include <string>
0015 #include <vector>
0016
0017 const std::vector<int> vec = {1, 2, 3, 4};
0018 const std::array<double, 4> arr = {2.0, 4.0, 6.0, 8.0};
0019 const std::string str = "abcd";
0020
0021 using namespace Acts;
0022
0023 namespace ActsTests {
0024
0025 BOOST_AUTO_TEST_SUITE(UtilitiesSuite)
0026
0027 BOOST_AUTO_TEST_CASE(test_access) {
0028 int i = 0;
0029 for (const auto &[a, b, c] : zip(vec, arr, str)) {
0030 BOOST_CHECK_EQUAL(a, vec[i]);
0031 BOOST_CHECK_EQUAL(b, arr[i]);
0032 BOOST_CHECK_EQUAL(c, str[i]);
0033 ++i;
0034 }
0035 }
0036
0037 BOOST_AUTO_TEST_CASE(test_mutation) {
0038 std::vector<int> vec2 = vec;
0039 std::array<double, 4> arr2 = arr;
0040 std::string str2 = str;
0041
0042 for (auto [a, b, c] : zip(vec2, arr2, str2)) {
0043 a *= 2;
0044 b *= 2;
0045 c = 'e';
0046 }
0047
0048 for (int i = 0; i < 4; ++i) {
0049 BOOST_CHECK_EQUAL(vec2[i], 2 * vec[i]);
0050 BOOST_CHECK_EQUAL(arr2[i], 2 * arr[i]);
0051 }
0052
0053 BOOST_CHECK_EQUAL(str2, "eeee");
0054 }
0055
0056 BOOST_AUTO_TEST_SUITE_END()
0057
0058 }