aboutsummaryrefslogtreecommitdiffstats
path: root/nihil.ucl/tests/real.cc
diff options
context:
space:
mode:
authorLexi Winter <lexi@le-fay.org>2025-06-26 20:47:45 +0100
committerLexi Winter <lexi@le-fay.org>2025-06-26 20:47:45 +0100
commit90aa957ca9b7c217af7569009d1675e0f3ff8e9b (patch)
treee6a61ca2b6928e6414372b9b1484ce80fa2fb0b3 /nihil.ucl/tests/real.cc
parent1db86c401df11423c945634d8b2a483e97afa878 (diff)
downloadnihil-90aa957ca9b7c217af7569009d1675e0f3ff8e9b.tar.gz
nihil-90aa957ca9b7c217af7569009d1675e0f3ff8e9b.tar.bz2
ucl, config: use monadic error handling more
Diffstat (limited to 'nihil.ucl/tests/real.cc')
-rw-r--r--nihil.ucl/tests/real.cc17
1 files changed, 12 insertions, 5 deletions
diff --git a/nihil.ucl/tests/real.cc b/nihil.ucl/tests/real.cc
index b11c113..be4e213 100644
--- a/nihil.ucl/tests/real.cc
+++ b/nihil.ucl/tests/real.cc
@@ -31,7 +31,7 @@ TEST_CASE("ucl: real: invariants", "[ucl]")
TEST_CASE("ucl: real: construct", "[ucl]")
{
auto obj = nihil::ucl::real(42.1);
- REQUIRE_THAT(object_cast<nihil::ucl::real>(obj).value(),
+ REQUIRE_THAT(object_cast<nihil::ucl::real>(obj)->value(),
Catch::Matchers::WithinRel(42.1));
}
@@ -80,19 +80,26 @@ TEST_CASE("ucl: real: parse", "[ucl]")
{
using namespace std::literals;
- auto obj = nihil::ucl::parse("value = 42.1"sv);
+ auto err = nihil::ucl::parse("value = 42.1"sv);
+ REQUIRE(err);
+
+ auto obj = *err;
+
auto v = obj["value"];
REQUIRE(v.key() == "value");
- REQUIRE_THAT(object_cast<nihil::ucl::real>(v).value(),
+ REQUIRE_THAT(object_cast<nihil::ucl::real>(v)->value(),
Catch::Matchers::WithinRel(42.1));
}
TEST_CASE("ucl: real: emit", "[ucl]")
{
- auto ucl = nihil::ucl::parse("real = 42.2");
+ auto err = nihil::ucl::parse("real = 42.2");
+ REQUIRE(err);
+
+ auto obj = *err;
auto output = std::string();
- emit(ucl, nihil::ucl::emitter::configuration,
+ emit(obj, nihil::ucl::emitter::configuration,
std::back_inserter(output));
REQUIRE(output == "real = 42.2;\n");