diff options
Diffstat (limited to 'nihil.ucl/tests/parse.cc')
| -rw-r--r-- | nihil.ucl/tests/parse.cc | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/nihil.ucl/tests/parse.cc b/nihil.ucl/tests/parse.cc deleted file mode 100644 index 43ce219..0000000 --- a/nihil.ucl/tests/parse.cc +++ /dev/null @@ -1,55 +0,0 @@ -/* - * This source code is released into the public domain. - */ - -#include <string> - -#include <catch2/catch_test_macros.hpp> -#include <catch2/matchers/catch_matchers_floating_point.hpp> - -import nihil.ucl; - -TEST_CASE("ucl parse: iterate array", "[ucl]") -{ - using namespace std::literals; - using namespace nihil::ucl; - - auto err = parse("value = [1, 42, 666];"sv); - REQUIRE(err); - - auto obj = *err; - - auto arr = obj["value"]; - REQUIRE(arr.key() == "value"); - - auto ints = object_cast<array<integer>>(arr); - REQUIRE(ints); - - auto vec = std::vector(std::from_range, *ints); - - REQUIRE(vec.size() == 3); - REQUIRE(vec[0] == 1); - REQUIRE(vec[1] == 42); - REQUIRE(vec[2] == 666); -} - -TEST_CASE("ucl parse: iterate hash", "[ucl]") -{ - using namespace std::literals; - using namespace nihil::ucl; - - auto input = "int = 42; bool = true; str = \"test\";"sv; - auto obj = parse(input); - REQUIRE(obj); - - for (auto &&[key, value] : *obj) { - REQUIRE(key == value.key()); - - if (key == "int") - REQUIRE(object_cast<integer>(value) == 42); - else if (key == "bool") - REQUIRE(object_cast<boolean>(value) == true); - else if (key == "str") - REQUIRE(object_cast<string>(value) == "test"); - } -} |
