Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SettingsManagerTest.cpp
Go to the documentation of this file.
1#include "test/storm_gtest.h"
2
8
9namespace {
10
11class SettingsParsingTestModule : public storm::settings::modules::ModuleSettings {
12 public:
13 static const std::string moduleName;
14
15 SettingsParsingTestModule() : ModuleSettings(moduleName) {
16 this->addOption(storm::settings::OptionBuilder("settingsparsing", "optiona", false, "Test option a.")
17 .addArgument(storm::settings::ArgumentBuilder::createStringArgument("value", "The value.").build())
18 .build());
19 this->addOption(storm::settings::OptionBuilder("settingsparsing", "optionb", false, "Test option b.")
20 .setShortName("ob")
21 .addArgument(storm::settings::ArgumentBuilder::createStringArgument("value", "The value.").build())
22 .build());
23 this->addOption(storm::settings::OptionBuilder("settingsparsing", "optionc", false, "Test option c.")
24 .addArgument(storm::settings::ArgumentBuilder::createStringArgument("value", "The value.").build())
25 .build());
26 this->addOption(storm::settings::OptionBuilder("settingsparsing", "optiond", false, "Test option d.")
27 .addArgument(storm::settings::ArgumentBuilder::createStringArgument("value", "The value.").build())
28 .build());
29 }
30
31 std::string getOptionString(std::string const& optionName) const {
32 return this->getOption(optionName).getArgumentByName("value").getValueAsString();
33 }
34};
35
36const std::string SettingsParsingTestModule::moduleName = "settingsparsing";
37
38bool ensureSettingsParsingTestModuleRegistered() {
39 if (!storm::settings::manager().hasModule("settingsparsing")) {
41 }
42 return true;
43}
44
45bool settingsParsingTestModuleRegistered = ensureSettingsParsingTestModuleRegistered();
46
47} // namespace
48
49TEST(SettingsManagerTest, ValueWithLeadingDashLongOption) {
50 storm::settings::mutableManager().setFromExplodedString({"--optiona", "-1 <= x <= 1"});
51 EXPECT_EQ("-1 <= x <= 1", storm::settings::getModule<SettingsParsingTestModule>().getOptionString("optiona"));
52}
53
54TEST(SettingsManagerTest, ValueWithLeadingDashShortOption) {
56 EXPECT_EQ("-1<=x<=1", storm::settings::getModule<SettingsParsingTestModule>().getOptionString("optionb"));
57}
58
59TEST(SettingsManagerTest, ValueWithLeadingDashFollowedByKnownOption) {
60 storm::settings::mutableManager().setFromExplodedString({"--optionc", "-1 <= x <= 1", "--verbose"});
61 EXPECT_EQ("-1 <= x <= 1", storm::settings::getModule<SettingsParsingTestModule>().getOptionString("optionc"));
62}
63
64TEST(SettingsManagerTest, KnownOptionNotSwallowedAsValue) {
65 EXPECT_THROW({ storm::settings::mutableManager().setFromExplodedString({"--optiond", "--verbose"}); }, storm::exceptions::OptionParserException);
66}
TEST(SettingsManagerTest, ValueWithLeadingDashLongOption)
static ArgumentBuilder createStringArgument(std::string const &name, std::string const &description)
Creates a string argument with the given parameters.
void setFromExplodedString(std::vector< std::string > const &commandLineArguments)
This function parses the given command line arguments (represented by several strings) and sets all r...
This is the base class of the settings for a particular module.
bool hasModule()
Returns true if the given module is registered.
SettingsType const & getModule()
Get module.
void addModule(bool doRegister=true)
Add new module to use for the settings.
SettingsManager const & manager()
Retrieves the settings manager.
SettingsManager & mutableManager()
Retrieves the settings manager.