Esempio n. 1
0
TEST(SettingsTree, test2)
{
    SettingsTree s;
    s.add_setting("g1", "group 1", "description of group 1");
    s.begin_group("g1");
    {
        s.add_setting("b", "setting b", "", "Int");
        s.add_setting("c", "OptionList", "description for c", "OptionList",
                         "", "opt1, opt2, opt3, opt4", true);
        s.add_setting("d", "setting d", "description or d", "InputFile",
                         "", "", true);
        s.begin_dependency_group("OR");
        s.add_dependency("g1/b", "3", "GE");
        s.add_dependency("g1/c", "opt4", "EQ");
        s.end_dependency_group();
        s.end_group();
    }
    s.begin_group("g2");
    {
        s.add_setting("DoubleRangeExt", "DoubleRangeExt", "",
                         "DoubleRangeExt", "min", "-DBL_MIN,DBL_MAX,min");
        s.add_setting("IntRangeExt", "IntRangeExt", "",
                         "IntRangeExt", "5", "-1,INT_MAX,min");
        s.end_group();
    }
    s.begin_group("g3");
    {
        s.begin_group("g4");
        {
            s.add_setting("IntListExt", "IntListExt", "",
                             "IntListExt", "1,2,3", "all");
            s.end_group();
        }
        s.add_setting("Double1", "Double1", "", "Double", "-10.0");
        s.add_setting("Double2", "Double2", "", "Double", "100.0e3");
        s.end_group();
    }

    int status = 0;
    ASSERT_EQ(0, s.to_int("g1/b", &status));
    ASSERT_EQ(0, status);
    ASSERT_TRUE(s.dependencies_satisfied("g1"));
    ASSERT_TRUE(s.dependencies_satisfied("g1/b"));
    ASSERT_FALSE(s.dependencies_satisfied("g1/d"));
}
Esempio n. 2
0
TEST(SettingsTree, nested_deps)
{
    SettingsTree s;
    s.add_setting("keyA1", "", "", "Bool", "false");
    s.add_setting("keyA2", "", "", "Int", "2");

    s.add_setting("keyB");
    s.begin_dependency_group("AND");
    s.add_dependency("KeyA1", "true", "EQ");
    s.add_dependency("KeyA2", "3", "GT");
    s.end_dependency_group();

    ASSERT_EQ(0, s.item("keyA1")->num_dependencies());
    ASSERT_EQ(0, s.item("keyA2")->num_dependencies());
    ASSERT_EQ(2, s.item("keyB")->num_dependencies());

    ASSERT_FALSE(s.dependencies_satisfied("keyB"));
    ASSERT_TRUE(s.set_value("keyA1", "true"));
    ASSERT_TRUE(s.set_value("keyA2", "5"));
    ASSERT_TRUE(s.dependencies_satisfied("keyB"));
}
Esempio n. 3
0
TEST(SettingsTree, simple_deps)
{
    SettingsTree s;
    s.add_setting("keyA", "", "", "Bool", "false");

    s.add_setting("keyB");
    s.add_dependency("keyA", "true", "EQ");
    s.add_setting("keyC");
    s.add_dependency("KeyA", "true", "EQ");

    ASSERT_EQ(0, s.item("keyA")->num_dependencies());
    ASSERT_EQ(1, s.item("keyB")->num_dependencies());

    EXPECT_FALSE(s.dependencies_satisfied("keyB"));

    ASSERT_TRUE(s.set_value("keyA", "true"));

    ASSERT_EQ("true", s.value("keyA")->get_value());
    ASSERT_EQ("true", s["keyA"]->get_value());

    ASSERT_TRUE(s.dependencies_satisfied("KEYB"));
}