Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-26 08:22:27

0001 /**
0002  * TRACCC library, part of the ACTS project (R&D line)
0003  *
0004  * (c) 2023-2024 CERN for the benefit of the ACTS project
0005  *
0006  * Mozilla Public License Version 2.0
0007  */
0008 
0009 // Project include(s).
0010 #include "traccc/options/details/value_array.hpp"
0011 
0012 // GTest include(s).
0013 #include <gtest/gtest.h>
0014 
0015 // System include(s).
0016 #include <sstream>
0017 #include <stdexcept>
0018 
0019 TEST(options, value_array_int) {
0020   traccc::opts::value_array<int, 3> parsed_vars;
0021 
0022   std::istringstream I("100:200:300");
0023   I >> parsed_vars;
0024 
0025   EXPECT_EQ(parsed_vars[0], 100);
0026   EXPECT_EQ(parsed_vars[1], 200);
0027   EXPECT_EQ(parsed_vars[2], 300);
0028 
0029   EXPECT_THROW(std::istringstream("100:200") >> parsed_vars,
0030                std::invalid_argument);
0031   EXPECT_THROW(std::istringstream("100:200:300:400") >> parsed_vars,
0032                std::invalid_argument);
0033 }
0034 
0035 TEST(options, value_array_float) {
0036   traccc::opts::value_array<float, 3> parsed_vars;
0037 
0038   std::istringstream I("1.1:2.2:3.3");
0039   I >> parsed_vars;
0040 
0041   EXPECT_FLOAT_EQ(parsed_vars[0], 1.1f);
0042   EXPECT_FLOAT_EQ(parsed_vars[1], 2.2f);
0043   EXPECT_FLOAT_EQ(parsed_vars[2], 3.3f);
0044 
0045   EXPECT_THROW(std::istringstream("1.1:2.2") >> parsed_vars,
0046                std::invalid_argument);
0047   EXPECT_THROW(std::istringstream("1.1:2.2:3.3:4.4") >> parsed_vars,
0048                std::invalid_argument);
0049 }
0050 
0051 TEST(options, value_array_double) {
0052   traccc::opts::value_array<double, 3> parsed_vars;
0053 
0054   std::istringstream I("1.1:2.2:3.3");
0055   I >> parsed_vars;
0056 
0057   EXPECT_DOUBLE_EQ(parsed_vars[0], 1.1);
0058   EXPECT_DOUBLE_EQ(parsed_vars[1], 2.2);
0059   EXPECT_DOUBLE_EQ(parsed_vars[2], 3.3);
0060 
0061   EXPECT_THROW(std::istringstream("1.1:2.2") >> parsed_vars,
0062                std::invalid_argument);
0063   EXPECT_THROW(std::istringstream("1.1:2.2:3.3:4.4") >> parsed_vars,
0064                std::invalid_argument);
0065 }