File indexing completed on 2026-07-26 08:22:27
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include "traccc/options/details/value_array.hpp"
0011
0012
0013 #include <gtest/gtest.h>
0014
0015
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 }