o = options() assert(#o == 0) assert(o:empty()) o = o:update_bool("tst", true) assert(#o == 1) assert(not o:empty()) assert(o:contains("tst")) assert(o:get_bool("tst") == true) assert(o:get_bool("tst2", true) == true) assert(o:get_bool("tst2") == false) o = o:update_int("val", 10) assert(#o == 2) assert(o:contains("val")) assert(o:get_int("val") == 10) assert(o:get_int("val2", 20) == 20) assert(o:get_int("val", 20) == 10) assert(o:get_int("val2") == 0) assert(o:get_int("val2", -10) == -10) o = o:update_unsigned("x", 10) assert(#o == 3) assert(o:size() == 3) print(o) assert(o:get_unsigned("x") == 10) assert(o:get_unsigned("y", -1) == 4294967295) o = o:update_double("ratio", 10.2) assert(o:contains("ratio")) print(o:get_double("ratio")) o = o:update_string("file", "foo") assert(o:get_string("file") == "foo") assert(not o:get(name("pp", "colors"))) o = o:update(name("pp", "colors"), true) assert(o:get(name("pp", "colors"))) print(o)