diff --git a/include/mechanism_configuration/errors.hpp b/include/mechanism_configuration/errors.hpp index a838f9ea..1c0fe948 100644 --- a/include/mechanism_configuration/errors.hpp +++ b/include/mechanism_configuration/errors.hpp @@ -4,8 +4,6 @@ #pragma once -#include - #include #include #include @@ -64,34 +62,4 @@ namespace mechanism_configuration } using Errors = std::vector>; -} // namespace mechanism_configuration - -#ifdef MECH_CONFIG_USE_FMT -template<> -struct fmt::formatter -{ - constexpr auto parse(fmt::format_parse_context& ctx) const - { - return ctx.begin(); - } - template - auto format(const mechanism_configuration::ErrorLocation& loc, FormatContext& ctx) const - { - return fmt::format_to(ctx.out(), "{}:{}", loc.line, loc.column); - } -}; -#else -template<> -struct std::formatter -{ - constexpr auto parse(std::format_parse_context& ctx) const - { - return ctx.begin(); - } - template - auto format(const mechanism_configuration::ErrorLocation& loc, FormatContext& ctx) const - { - return std::format_to(ctx.out(), "{}:{}", loc.line, loc.column); - } -}; -#endif \ No newline at end of file +} // namespace mechanism_configuration \ No newline at end of file diff --git a/include/mechanism_configuration/mechanism_configuration.hpp b/include/mechanism_configuration/mechanism_configuration.hpp index db2e42a5..8ba5d2cb 100644 --- a/include/mechanism_configuration/mechanism_configuration.hpp +++ b/include/mechanism_configuration/mechanism_configuration.hpp @@ -5,7 +5,6 @@ #pragma once #include -#include #include #include #include diff --git a/include/mechanism_configuration/parse.hpp b/include/mechanism_configuration/parse.hpp index ee3d3849..c1b334e3 100644 --- a/include/mechanism_configuration/parse.hpp +++ b/include/mechanism_configuration/parse.hpp @@ -9,6 +9,7 @@ #include #include +#include namespace mechanism_configuration { @@ -17,4 +18,5 @@ namespace mechanism_configuration /// or a directory of version-0 CAMP files. /// @return The parsed Mechanism, or all structural and semantic errors encountered. std::expected Parse(const std::filesystem::path& config_path); + std::expected ParseFromString(const std::string& config); } // namespace mechanism_configuration \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index be92c6e0..38930860 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -13,8 +13,8 @@ add_library(musica::mechanism_configuration ALIAS mechanism_configuration) target_compile_features(mechanism_configuration PUBLIC cxx_std_23) if(MECH_CONFIG_USE_FMT) - target_compile_definitions(mechanism_configuration PUBLIC MECH_CONFIG_USE_FMT) - target_link_libraries(mechanism_configuration PUBLIC fmt::fmt) + target_compile_definitions(mechanism_configuration PRIVATE MECH_CONFIG_USE_FMT) + target_link_libraries(mechanism_configuration PRIVATE fmt::fmt) endif() set_target_properties(mechanism_configuration PROPERTIES diff --git a/src/check_schema.cpp b/src/check_schema.cpp index fcb50d70..9b7d82e2 100644 --- a/src/check_schema.cpp +++ b/src/check_schema.cpp @@ -3,8 +3,7 @@ // SPDX-License-Identifier: Apache-2.0 #include "detail/check_schema.hpp" - -#include +#include "detail/error_format.hpp" #include diff --git a/src/detail/error_format.hpp b/src/detail/error_format.hpp new file mode 100644 index 00000000..8339c0ea --- /dev/null +++ b/src/detail/error_format.hpp @@ -0,0 +1,41 @@ +// Copyright (C) 2023–2026 University Corporation for Atmospheric Research +// University of Illinois at Urbana-Champaign +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include +#include + +// Formatter for ErrorLocation. Kept internal (not in the public errors.hpp) so that +// fmt / is not pulled into the library's public interface. Only the .cpp +// files that build error-message strings need this, so it lives under src/detail. +#ifdef MECH_CONFIG_USE_FMT +template<> +struct fmt::formatter +{ + constexpr auto parse(fmt::format_parse_context& ctx) const + { + return ctx.begin(); + } + template + auto format(const mechanism_configuration::ErrorLocation& loc, FormatContext& ctx) const + { + return fmt::format_to(ctx.out(), "{}:{}", loc.line, loc.column); + } +}; +#else +template<> +struct std::formatter +{ + constexpr auto parse(std::format_parse_context& ctx) const + { + return ctx.begin(); + } + template + auto format(const mechanism_configuration::ErrorLocation& loc, FormatContext& ctx) const + { + return std::format_to(ctx.out(), "{}:{}", loc.line, loc.column); + } +}; +#endif diff --git a/src/parse.cpp b/src/parse.cpp index 56b0ab61..28cb709b 100644 --- a/src/parse.cpp +++ b/src/parse.cpp @@ -2,11 +2,11 @@ // University of Illinois at Urbana-Champaign // SPDX-License-Identifier: Apache-2.0 +#include "detail/error_format.hpp" #include "detail/v0/parser.hpp" #include "detail/v1/parser.hpp" #include -#include #include #include @@ -90,4 +90,28 @@ namespace mechanism_configuration } } + std::expected ParseFromString(const std::string& config) + { + // only v1 supports parsing from a string, so we must first detect the version from the string + YAML::Node object; + try + { + object = YAML::Load(config); + if (!object["version"]) + { + return std::unexpected(Errors{ { ErrorCode::InvalidVersion, "error: Unsupported version number '0.0.0'." } }); + } + const Version version(object["version"].as()); + if (version.major != 1) + { + return std::unexpected(Errors{ { ErrorCode::InvalidVersion, mc_fmt::format("error: Unsupported version number '{}'.", version.to_string()) } }); + } + return v1::Parser{}.Parse(config); + } + catch (const YAML::Exception& e) + { + return std::unexpected(Errors{ { ErrorCode::UnexpectedError, mc_fmt::format("Failed to parse configuration string: {}", e.what()) } }); + } + } + } // namespace mechanism_configuration diff --git a/src/v0/emission_parser.cpp b/src/v0/emission_parser.cpp index e37b94fc..7491bc0b 100644 --- a/src/v0/emission_parser.cpp +++ b/src/v0/emission_parser.cpp @@ -23,16 +23,15 @@ namespace mechanism_configuration::v0 { std::string species = object[keys::SPECIES].as(); YAML::Node products_object{}; - std::vector reactants; std::vector products; products.push_back({ .name = species, .coefficient = 1.0 }); double scaling_factor = object[keys::SCALING_FACTOR] ? object[keys::SCALING_FACTOR].as() : 1.0; - std::string name = "EMIS." + object[keys::MUSICA_NAME].as(); - types::UserDefined user_defined = { - .scaling_factor = scaling_factor, .reactants = reactants, .products = products, .name = name + std::string name = object[keys::MUSICA_NAME].as(); + types::Emission user_defined = { + .scaling_factor = scaling_factor, .products = products, .name = name }; - mechanism.reactions.user_defined.push_back(user_defined); + mechanism.reactions.emission.push_back(user_defined); } return errors; diff --git a/src/v0/first_order_loss_parser.cpp b/src/v0/first_order_loss_parser.cpp index 438e7651..66781f39 100644 --- a/src/v0/first_order_loss_parser.cpp +++ b/src/v0/first_order_loss_parser.cpp @@ -29,11 +29,11 @@ namespace mechanism_configuration::v0 reactants.push_back({ .name = species, .coefficient = 1.0 }); double scaling_factor = object[keys::SCALING_FACTOR] ? object[keys::SCALING_FACTOR].as() : 1.0; - std::string name = "LOSS." + object[keys::MUSICA_NAME].as(); - types::UserDefined user_defined = { - .scaling_factor = scaling_factor, .reactants = reactants, .products = products, .name = name + std::string name = object[keys::MUSICA_NAME].as(); + types::FirstOrderLoss user_defined = { + .scaling_factor = scaling_factor, .reactants = reactants[0], .products = products, .name = name }; - mechanism.reactions.user_defined.push_back(user_defined); + mechanism.reactions.first_order_loss.push_back(user_defined); } return errors; diff --git a/src/v0/parser.cpp b/src/v0/parser.cpp index a221f6ca..22e677b9 100644 --- a/src/v0/parser.cpp +++ b/src/v0/parser.cpp @@ -171,7 +171,7 @@ namespace mechanism_configuration::v0 // all species in version 0 are in the gas phase types::Phase gas_phase; - gas_phase.name = "GAS"; + gas_phase.name = "gas"; for (auto& species : mechanism.species) { types::PhaseSpecies phase_species; diff --git a/src/v0/photolysis_parser.cpp b/src/v0/photolysis_parser.cpp index a71c75ed..c24e790f 100644 --- a/src/v0/photolysis_parser.cpp +++ b/src/v0/photolysis_parser.cpp @@ -32,11 +32,14 @@ namespace mechanism_configuration::v0 double scaling_factor = object[keys::SCALING_FACTOR] ? object[keys::SCALING_FACTOR].as() : 1.0; - std::string name = "PHOTO." + object[keys::MUSICA_NAME].as(); - types::UserDefined user_defined = { - .scaling_factor = scaling_factor, .reactants = reactants, .products = products, .name = name - }; - mechanism.reactions.user_defined.push_back(user_defined); + if (!reactants.empty()) + { + std::string name = object[keys::MUSICA_NAME].as(); + types::Photolysis user_defined = { + .scaling_factor = scaling_factor, .reactants = reactants[0], .products = products, .name = name + }; + mechanism.reactions.photolysis.push_back(user_defined); + } } return errors; diff --git a/src/v0/user_defined_reaction_parser.cpp b/src/v0/user_defined_reaction_parser.cpp index 858fce11..c26a4f04 100644 --- a/src/v0/user_defined_reaction_parser.cpp +++ b/src/v0/user_defined_reaction_parser.cpp @@ -32,7 +32,7 @@ namespace mechanism_configuration::v0 double scaling_factor = object[keys::SCALING_FACTOR] ? object[keys::SCALING_FACTOR].as() : 1.0; - std::string name = "USER." + object[keys::MUSICA_NAME].as(); + std::string name = object[keys::MUSICA_NAME].as(); types::UserDefined user_defined = { .scaling_factor = scaling_factor, .reactants = reactants, .products = products, .name = name diff --git a/src/v1/parser.cpp b/src/v1/parser.cpp index d5b01c1a..9f62f8e3 100644 --- a/src/v1/parser.cpp +++ b/src/v1/parser.cpp @@ -5,13 +5,13 @@ #include "detail/v1/parser.hpp" #include "detail/check_schema.hpp" +#include "detail/error_format.hpp" #include "detail/v1/keys.hpp" #include "detail/v1/type_parsers.hpp" #include "detail/v1/type_schema.hpp" #include "detail/v1/utils.hpp" #include -#include #include #include diff --git a/src/v1/reactions/arrhenius.cpp b/src/v1/reactions/arrhenius.cpp index e786de7c..e35ec51a 100644 --- a/src/v1/reactions/arrhenius.cpp +++ b/src/v1/reactions/arrhenius.cpp @@ -3,11 +3,11 @@ // SPDX-License-Identifier: Apache-2.0 #include -#include #include #include #include +#include #include #include #include diff --git a/src/v1/reactions/first_order_loss.cpp b/src/v1/reactions/first_order_loss.cpp index 5fbed8a3..8a1d206f 100644 --- a/src/v1/reactions/first_order_loss.cpp +++ b/src/v1/reactions/first_order_loss.cpp @@ -3,10 +3,10 @@ // SPDX-License-Identifier: Apache-2.0 #include -#include #include #include +#include #include #include #include diff --git a/src/v1/reactions/photolysis.cpp b/src/v1/reactions/photolysis.cpp index 8f66bd93..7a020b8e 100644 --- a/src/v1/reactions/photolysis.cpp +++ b/src/v1/reactions/photolysis.cpp @@ -3,10 +3,10 @@ // SPDX-License-Identifier: Apache-2.0 #include -#include #include #include +#include #include #include #include diff --git a/src/v1/reactions/surface.cpp b/src/v1/reactions/surface.cpp index c195dec5..7927f5dd 100644 --- a/src/v1/reactions/surface.cpp +++ b/src/v1/reactions/surface.cpp @@ -3,10 +3,10 @@ // SPDX-License-Identifier: Apache-2.0 #include -#include #include #include +#include #include #include #include diff --git a/src/v1/reactions/taylor_series.cpp b/src/v1/reactions/taylor_series.cpp index d40c6c4e..7a8f821d 100644 --- a/src/v1/reactions/taylor_series.cpp +++ b/src/v1/reactions/taylor_series.cpp @@ -3,11 +3,11 @@ // SPDX-License-Identifier: Apache-2.0 #include -#include #include #include #include +#include #include #include #include diff --git a/src/v1/type_schema.cpp b/src/v1/type_schema.cpp index a627c389..354da33d 100644 --- a/src/v1/type_schema.cpp +++ b/src/v1/type_schema.cpp @@ -5,12 +5,12 @@ #include "detail/v1/type_schema.hpp" #include "detail/check_schema.hpp" +#include "detail/error_format.hpp" #include "detail/v1/keys.hpp" #include "detail/v1/reaction_parsers.hpp" #include "detail/v1/utils.hpp" #include -#include #include #include diff --git a/src/validate.cpp b/src/validate.cpp index 84772969..0a8f9b05 100644 --- a/src/validate.cpp +++ b/src/validate.cpp @@ -2,9 +2,10 @@ // University of Illinois at Urbana-Champaign // SPDX-License-Identifier: Apache-2.0 -#include #include +#include "detail/error_format.hpp" + #include #include #include diff --git a/test/integration/test_parser.cpp b/test/integration/test_parser.cpp index a6cb717e..2959bd2b 100644 --- a/test/integration/test_parser.cpp +++ b/test/integration/test_parser.cpp @@ -71,3 +71,155 @@ TEST(Parse, ParsesV0DirectoryConfiguration) if (parsed) EXPECT_EQ(parsed->version.major, 0); } + +TEST(Parse, ParsesV1JsonString) +{ + std::string config = R"( + { + "version": "1.0.0", + "species": [ + { + "name": "H2O", + } + ], + "phases": [ + { + "name": "gas", + "species": [ + { + "name": "H2O" + } + ] + } + ], + "reactions": [ + { + type: "ARRHENIUS", + "reactants": [ { "species name": "H2O" } ], + "products": [ { "species name": "H2O" } ], + "gas phase": "gas", + } + ] + } + )"; + auto parsed = ParseFromString(config); + EXPECT_TRUE(parsed); + if (parsed){ + EXPECT_EQ(parsed->version.major, 1); + EXPECT_EQ(parsed->species.size(), 1); + EXPECT_EQ(parsed->phases.size(), 1); + EXPECT_EQ(parsed->reactions.arrhenius.size(), 1); + } + else { + for (const auto& [code, message] : parsed.error()) + std::cout << message << " " << ErrorCodeToString(code) << std::endl; + } +} + +TEST(Parse, ParsesV11JsonString) +{ + std::string config = R"( + { + "version": "1.1.0", + "species": [ + { + "name": "H2O", + } + ], + "phases": [ + { + "name": "gas", + "species": [ + { + "name": "H2O" + } + ] + } + ], + "reactions": [ + { + type: "ARRHENIUS", + "reactants": [ { "species name": "H2O" } ], + "products": [ { "species name": "H2O" } ], + "gas phase": "gas", + } + ] + } + )"; + auto parsed = ParseFromString(config); + EXPECT_TRUE(parsed); + if (parsed){ + EXPECT_EQ(parsed->version.major, 1); + EXPECT_EQ(parsed->species.size(), 1); + EXPECT_EQ(parsed->phases.size(), 1); + EXPECT_EQ(parsed->reactions.arrhenius.size(), 1); + } + else { + for (const auto& [code, message] : parsed.error()) + std::cout << message << " " << ErrorCodeToString(code) << std::endl; + } +} + +TEST(Parse, ParsesV1YamlString) +{ + std::string config = R"( +version: 1.0.0 +species: + - name: H2O +phases: + - name: gas + species: + - name: H2O +reactions: + - type: ARRHENIUS + reactants: + - species name: H2O + products: + - species name: H2O + gas phase: gas + )"; + auto parsed = ParseFromString(config); + EXPECT_TRUE(parsed); + if (parsed){ + EXPECT_EQ(parsed->version.major, 1); + EXPECT_EQ(parsed->species.size(), 1); + EXPECT_EQ(parsed->phases.size(), 1); + EXPECT_EQ(parsed->reactions.arrhenius.size(), 1); + } + else { + for (const auto& [code, message] : parsed.error()) + std::cout << message << " " << ErrorCodeToString(code) << std::endl; + } +} + +TEST(Parse, ParsesV11YamlString) +{ + std::string config = R"( +version: 1.1.0 +species: + - name: H2O +phases: + - name: gas + species: + - name: H2O +reactions: + - type: ARRHENIUS + reactants: + - species name: H2O + products: + - species name: H2O + gas phase: gas + )"; + auto parsed = ParseFromString(config); + EXPECT_TRUE(parsed); + if (parsed){ + EXPECT_EQ(parsed->version.major, 1); + EXPECT_EQ(parsed->species.size(), 1); + EXPECT_EQ(parsed->phases.size(), 1); + EXPECT_EQ(parsed->reactions.arrhenius.size(), 1); + } + else { + for (const auto& [code, message] : parsed.error()) + std::cout << message << " " << ErrorCodeToString(code) << std::endl; + } +} \ No newline at end of file diff --git a/test/integration/test_v0_parser.cpp b/test/integration/test_v0_parser.cpp index 9ff1b36f..2a0279a7 100644 --- a/test/integration/test_v0_parser.cpp +++ b/test/integration/test_v0_parser.cpp @@ -20,7 +20,10 @@ TEST(V0Parser, ParsesFullV0Configuration) ASSERT_TRUE(parsed); Mechanism mechanism = *parsed; - EXPECT_EQ(mechanism.reactions.user_defined.size(), 4); + EXPECT_EQ(mechanism.reactions.user_defined.size(), 1); + EXPECT_EQ(mechanism.reactions.first_order_loss.size(), 1); + EXPECT_EQ(mechanism.reactions.emission.size(), 1); + EXPECT_EQ(mechanism.reactions.photolysis.size(), 1); EXPECT_EQ(mechanism.reactions.arrhenius.size(), 1); EXPECT_EQ(mechanism.reactions.troe.size(), 1); EXPECT_EQ(mechanism.reactions.ternary_chemical_activation.size(), 1); @@ -40,7 +43,10 @@ TEST(V0Parser, ConfigPathIsDirectory) Mechanism mechanism = *parsed; EXPECT_EQ(mechanism.version.major, 0); - EXPECT_EQ(mechanism.reactions.user_defined.size(), 4); + EXPECT_EQ(mechanism.reactions.user_defined.size(), 1); + EXPECT_EQ(mechanism.reactions.first_order_loss.size(), 1); + EXPECT_EQ(mechanism.reactions.emission.size(), 1); + EXPECT_EQ(mechanism.reactions.photolysis.size(), 1); EXPECT_EQ(mechanism.reactions.arrhenius.size(), 1); EXPECT_EQ(mechanism.reactions.troe.size(), 1); EXPECT_EQ(mechanism.reactions.ternary_chemical_activation.size(), 1); diff --git a/test/unit/v0/test_emission_config.cpp b/test/unit/v0/test_emission_config.cpp index c753ed68..2cf2ea10 100644 --- a/test/unit/v0/test_emission_config.cpp +++ b/test/unit/v0/test_emission_config.cpp @@ -49,26 +49,24 @@ TEST(EmissionConfig, ParseConfig) EXPECT_TRUE(parsed); Mechanism mechanism = *parsed; - auto& process_vector = mechanism.reactions.user_defined; + auto& process_vector = mechanism.reactions.emission; EXPECT_EQ(process_vector.size(), 2); // first reaction { - EXPECT_EQ(process_vector[0].reactants.size(), 0); EXPECT_EQ(process_vector[0].products.size(), 1); EXPECT_EQ(process_vector[0].products[0].name, "foo"); EXPECT_EQ(process_vector[0].products[0].coefficient, 1.0); - EXPECT_EQ(process_vector[0].name, "EMIS.foo"); + EXPECT_EQ(process_vector[0].name, "foo"); EXPECT_EQ(process_vector[0].scaling_factor, 1.0); } // second reaction { - EXPECT_EQ(process_vector[1].reactants.size(), 0); EXPECT_EQ(process_vector[1].products.size(), 1); EXPECT_EQ(process_vector[1].products[0].name, "bar"); EXPECT_EQ(process_vector[1].products[0].coefficient, 1.0); - EXPECT_EQ(process_vector[1].name, "EMIS.bar"); + EXPECT_EQ(process_vector[1].name, "bar"); EXPECT_EQ(process_vector[1].scaling_factor, 2.5); } } diff --git a/test/unit/v0/test_first_order_loss_config.cpp b/test/unit/v0/test_first_order_loss_config.cpp index 60fab0a5..5e3a60d9 100644 --- a/test/unit/v0/test_first_order_loss_config.cpp +++ b/test/unit/v0/test_first_order_loss_config.cpp @@ -49,24 +49,22 @@ TEST(FirstOrderLossConfig, ParseConfig) EXPECT_TRUE(parsed); Mechanism mechanism = *parsed; - auto& process_vector = mechanism.reactions.user_defined; + auto& process_vector = mechanism.reactions.first_order_loss; EXPECT_EQ(process_vector.size(), 2); // first reaction { - EXPECT_EQ(process_vector[0].reactants.size(), 1); EXPECT_EQ(process_vector[0].products.size(), 0); - EXPECT_EQ(process_vector[0].reactants[0].name, "foo"); - EXPECT_EQ(process_vector[0].name, "LOSS.foo"); + EXPECT_EQ(process_vector[0].reactants.name, "foo"); + EXPECT_EQ(process_vector[0].name, "foo"); EXPECT_EQ(process_vector[0].scaling_factor, 1.0); } // second reaction { - EXPECT_EQ(process_vector[1].reactants.size(), 1); EXPECT_EQ(process_vector[1].products.size(), 0); - EXPECT_EQ(process_vector[1].reactants[0].name, "bar"); - EXPECT_EQ(process_vector[1].name, "LOSS.bar"); + EXPECT_EQ(process_vector[1].reactants.name, "bar"); + EXPECT_EQ(process_vector[1].name, "bar"); EXPECT_EQ(process_vector[1].scaling_factor, 2.5); } } diff --git a/test/unit/v0/test_photolysis_config.cpp b/test/unit/v0/test_photolysis_config.cpp index afb82a3f..52585318 100644 --- a/test/unit/v0/test_photolysis_config.cpp +++ b/test/unit/v0/test_photolysis_config.cpp @@ -59,32 +59,30 @@ TEST(PhotolysisConfig, ParseConfig) EXPECT_TRUE(parsed); Mechanism mechanism = *parsed; - auto& process_vector = mechanism.reactions.user_defined; + auto& process_vector = mechanism.reactions.photolysis; EXPECT_EQ(process_vector.size(), 2); // first reaction { - EXPECT_EQ(process_vector[0].reactants.size(), 1); - EXPECT_EQ(process_vector[0].reactants[0].name, "foo"); + EXPECT_EQ(process_vector[0].reactants.name, "foo"); EXPECT_EQ(process_vector[0].products.size(), 2); EXPECT_EQ(process_vector[0].products[0].name, "bar"); EXPECT_EQ(process_vector[0].products[0].coefficient, 1.0); EXPECT_EQ(process_vector[0].products[1].name, "baz"); EXPECT_EQ(process_vector[0].products[1].coefficient, 3.2); - EXPECT_EQ(process_vector[0].name, "PHOTO.jfoo"); + EXPECT_EQ(process_vector[0].name, "jfoo"); EXPECT_EQ(process_vector[0].scaling_factor, 1.0); } // second reaction { - EXPECT_EQ(process_vector[1].reactants.size(), 1); - EXPECT_EQ(process_vector[1].reactants[0].name, "bar"); + EXPECT_EQ(process_vector[1].reactants.name, "bar"); EXPECT_EQ(process_vector[1].products.size(), 2); EXPECT_EQ(process_vector[1].products[0].name, "bar"); EXPECT_EQ(process_vector[1].products[0].coefficient, 0.5); EXPECT_EQ(process_vector[1].products[1].name, "foo"); EXPECT_EQ(process_vector[1].products[1].coefficient, 1.0); - EXPECT_EQ(process_vector[1].name, "PHOTO.jbar"); + EXPECT_EQ(process_vector[1].name, "jbar"); EXPECT_EQ(process_vector[1].scaling_factor, 2.5); } } diff --git a/test/unit/v0/test_user_defined_config.cpp b/test/unit/v0/test_user_defined_config.cpp index 7cf1d13c..3bebd65a 100644 --- a/test/unit/v0/test_user_defined_config.cpp +++ b/test/unit/v0/test_user_defined_config.cpp @@ -76,7 +76,7 @@ TEST(UserDefinedConfig, ParseConfig) EXPECT_EQ(process_vector[0].products[0].coefficient, 1.4); EXPECT_EQ(process_vector[0].products[1].name, "foo"); EXPECT_EQ(process_vector[0].products[1].coefficient, 1.0); - EXPECT_EQ(process_vector[0].name, "USER.foo"); + EXPECT_EQ(process_vector[0].name, "foo"); EXPECT_EQ(process_vector[0].scaling_factor, 1.0); } @@ -88,7 +88,7 @@ TEST(UserDefinedConfig, ParseConfig) EXPECT_EQ(process_vector[1].products.size(), 1); EXPECT_EQ(process_vector[1].products[0].name, "bar"); EXPECT_EQ(process_vector[1].products[0].coefficient, 1.0); - EXPECT_EQ(process_vector[1].name, "USER.bar"); + EXPECT_EQ(process_vector[1].name, "bar"); EXPECT_EQ(process_vector[1].scaling_factor, 2.5); } }