aboutsummaryrefslogtreecommitdiffstats
path: root/nihil.util/parse_size.test.cc
diff options
context:
space:
mode:
authorLexi Winter <lexi@le-fay.org>2025-07-02 04:00:06 +0100
committerLexi Winter <lexi@le-fay.org>2025-07-02 04:00:06 +0100
commit5adeb648f74c1771164c0686d6e0fc584cf36d9e (patch)
tree060cd918d3dd9e931a1541a43c9edff1a404ff47 /nihil.util/parse_size.test.cc
parent06fafff8e9e9c096cc39bde0306caa53ad3a2351 (diff)
downloadnihil-5adeb648f74c1771164c0686d6e0fc584cf36d9e.tar.gz
nihil-5adeb648f74c1771164c0686d6e0fc584cf36d9e.tar.bz2
move everything from util to core
Diffstat (limited to 'nihil.util/parse_size.test.cc')
-rw-r--r--nihil.util/parse_size.test.cc166
1 files changed, 0 insertions, 166 deletions
diff --git a/nihil.util/parse_size.test.cc b/nihil.util/parse_size.test.cc
deleted file mode 100644
index ee97996..0000000
--- a/nihil.util/parse_size.test.cc
+++ /dev/null
@@ -1,166 +0,0 @@
-// This source code is released into the public domain.
-
-#include <catch2/catch_test_macros.hpp>
-
-import nihil.std;
-import nihil.core;
-import nihil.util;
-
-namespace {
-TEST_CASE("parse_size: empty value", "[nihil]")
-{
- using namespace nihil;
-
- auto n = parse_size<std::uint64_t>("");
- REQUIRE(!n);
- REQUIRE(n.error() == nihil::errc::empty_string);
-}
-
-TEST_CASE("parse_size: basic", "[nihil]")
-{
- using namespace nihil;
-
- SECTION ("bare number") {
- auto n = parse_size<std::uint64_t>("1024").value();
- REQUIRE(n == 1024);
- }
-
- SECTION ("max value, unsigned") {
- auto n = parse_size<std::uint16_t>("65535").value();
- REQUIRE(n == 65535);
- }
-
- SECTION ("max value, signed") {
- auto n = parse_size<std::uint16_t>("32767").value();
- REQUIRE(n == 32767);
- }
-
- SECTION ("overflow by 1, unsigned") {
- auto n = parse_size<std::uint16_t>("65536");
- REQUIRE(!n);
- REQUIRE(n.error() == std::errc::result_out_of_range);
- }
-
- SECTION ("overflow by 1, signed") {
- auto n = parse_size<std::int16_t>("32768");
- REQUIRE(!n);
- REQUIRE(n.error() == std::errc::result_out_of_range);
- }
-
- SECTION ("overflow by many, unsigned") {
- auto n = parse_size<std::uint16_t>("100000");
- REQUIRE(!n);
- REQUIRE(n.error() == std::errc::result_out_of_range);
- }
-
- SECTION ("overflow by many, signed") {
- auto n = parse_size<std::int16_t>("100000");
- REQUIRE(!n);
- REQUIRE(n.error() == std::errc::result_out_of_range);
- }
-}
-
-TEST_CASE("parse_size: invalid multiplier", "[nihil]")
-{
- using namespace nihil;
-
- auto n = parse_size<std::uint64_t>("4z");
- REQUIRE(!n);
- REQUIRE(n.error() == nihil::errc::invalid_unit);
-
- n = parse_size<std::uint64_t>("4kz");
- REQUIRE(!n);
- REQUIRE(n.error() == nihil::errc::invalid_unit);
-}
-
-TEST_CASE("parse_size: multipliers", "[nihil]")
-{
- using namespace nihil;
-
- auto sf = static_cast<std::uint64_t>(4);
-
- SECTION ("k") {
- auto n = parse_size<std::uint64_t>("4k").value();
- REQUIRE(n == sf * 1024);
- }
-
- SECTION ("m") {
- auto n = parse_size<std::uint64_t>("4m").value();
- REQUIRE(n == sf * 1024 * 1024);
- }
-
- SECTION ("g") {
- auto n = parse_size<std::uint64_t>("4g").value();
- REQUIRE(n == sf * 1024 * 1024 * 1024);
- }
-
- SECTION ("t") {
- auto n = parse_size<std::uint64_t>("4t").value();
- REQUIRE(n == sf * 1024 * 1024 * 1024 * 1024);
- }
-
- SECTION ("p") {
- auto n = parse_size<std::uint64_t>("4p").value();
- REQUIRE(n == sf * 1024 * 1024 * 1024 * 1024 * 1024);
- }
-}
-
-TEST_CASE("parse_size: multiplier overflow", "[nihil]")
-{
- using namespace nihil;
-
- SECTION ("signed") {
- auto n = parse_size<std::uint16_t>("64k");
- REQUIRE(!n);
- REQUIRE(n.error() == std::errc::result_out_of_range);
- }
-
- SECTION ("unsigned") {
- auto n = parse_size<std::int16_t>("32k");
- REQUIRE(!n);
- REQUIRE(n.error() == std::errc::result_out_of_range);
- }
-}
-
-TEST_CASE("parse_size: wide", "[nihil]")
-{
- using namespace nihil;
-
- SECTION ("bare number") {
- auto n = parse_size<std::uint64_t>(L"1024").value();
- REQUIRE(n == 1024);
- }
-}
-
-TEST_CASE("parse_size: wide multipliers", "[nihil]")
-{
- using namespace nihil;
-
- auto sf = static_cast<std::uint64_t>(4);
-
- SECTION ("k") {
- auto n = parse_size<std::uint64_t>(L"4k").value();
- REQUIRE(n == sf * 1024);
- }
-
- SECTION ("m") {
- auto n = parse_size<std::uint64_t>(L"4m").value();
- REQUIRE(n == sf * 1024 * 1024);
- }
-
- SECTION ("g") {
- auto n = parse_size<std::uint64_t>(L"4g").value();
- REQUIRE(n == sf * 1024 * 1024 * 1024);
- }
-
- SECTION ("t") {
- auto n = parse_size<std::uint64_t>(L"4t").value();
- REQUIRE(n == sf * 1024 * 1024 * 1024 * 1024);
- }
-
- SECTION ("p") {
- auto n = parse_size<std::uint64_t>(L"4p").value();
- REQUIRE(n == sf * 1024 * 1024 * 1024 * 1024 * 1024);
- }
-}
-} // anonymous namespace