/* SPDX-License-Identifier: BSL-1.0 OR BSD-3-Clause */ #ifndef MPT_PARSE_TESTS_PARSE_HPP #define MPT_PARSE_TESTS_PARSE_HPP #include "mpt/base/detect.hpp" #include "mpt/base/integer.hpp" #include "mpt/base/namespace.hpp" #include "mpt/format/simple.hpp" #include "mpt/parse/parse.hpp" #include "mpt/string/types.hpp" #include "mpt/test/test.hpp" #include "mpt/test/test_macros.hpp" #include namespace mpt { inline namespace MPT_INLINE_NS { namespace tests { namespace parse { #if MPT_COMPILER_CLANG #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wglobal-constructors" #endif MPT_TEST_GROUP_INLINE("mpt/parse") #if MPT_COMPILER_CLANG #pragma clang diagnostic pop #endif { MPT_TEST_EXPECT_EQUAL(mpt::ConvertStringTo("586"), 586u); MPT_TEST_EXPECT_EQUAL(mpt::ConvertStringTo("2147483647"), (uint32)std::numeric_limits::max()); MPT_TEST_EXPECT_EQUAL(mpt::ConvertStringTo("4294967295"), std::numeric_limits::max()); MPT_TEST_EXPECT_EQUAL(mpt::ConvertStringTo("-9223372036854775808"), std::numeric_limits::min()); MPT_TEST_EXPECT_EQUAL(mpt::ConvertStringTo("-159"), -159); MPT_TEST_EXPECT_EQUAL(mpt::ConvertStringTo("9223372036854775807"), std::numeric_limits::max()); MPT_TEST_EXPECT_EQUAL(mpt::ConvertStringTo("85059"), 85059u); MPT_TEST_EXPECT_EQUAL(mpt::ConvertStringTo("9223372036854775807"), (uint64)std::numeric_limits::max()); MPT_TEST_EXPECT_EQUAL(mpt::ConvertStringTo("18446744073709551615"), std::numeric_limits::max()); MPT_TEST_EXPECT_EQUAL(mpt::ConvertStringTo("-87.0"), -87.0f); #if !MPT_OS_DJGPP MPT_TEST_EXPECT_EQUAL(mpt::ConvertStringTo("-0.5e-6"), -0.5e-6); #endif #if !MPT_OS_DJGPP MPT_TEST_EXPECT_EQUAL(mpt::ConvertStringTo("58.65403492763"), 58.65403492763); #else MPT_TEST_EXPECT_EQUAL(std::abs(mpt::ConvertStringTo("58.65403492763") - 58.65403492763) <= 0.0001, true); #endif MPT_TEST_EXPECT_EQUAL(mpt::ConvertStringTo(mpt::format::val(-87.0)), -87.0f); #if !MPT_OS_DJGPP MPT_TEST_EXPECT_EQUAL(mpt::ConvertStringTo(mpt::format::val(-0.5e-6)), -0.5e-6); #endif MPT_TEST_EXPECT_EQUAL(mpt::ConvertHexStringTo("fe"), 254); #if !defined(MPT_COMPILER_QUIRK_NO_WCHAR) MPT_TEST_EXPECT_EQUAL(mpt::ConvertHexStringTo(L"fe"), 254); #endif // !MPT_COMPILER_QUIRK_NO_WCHAR MPT_TEST_EXPECT_EQUAL(mpt::ConvertHexStringTo(MPT_USTRING("ffff")), 65535u); } } // namespace parse } // namespace tests } // namespace MPT_INLINE_NS } // namespace mpt #endif // MPT_PARSE_TESTS_PARSE_HPP