File indexing completed on 2025-10-26 07:56:36
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 }