test_string_tools.cpp

Back to String algorithms

test/pastel/sys/

// Description: Testing for string algorithms
// DocumentationOf: string_algorithms.h

#include "test/test_init.h"

#include "pastel/sys/string.h"
#include "pastel/sys/math/constants.h"

TEST_CASE("stringToReal (string_algorithms)")
{
    REQUIRE(isNan(stringToReal("nan")));
    REQUIRE(isNan(stringToReal("+nan")));
    REQUIRE(isNan(stringToReal("-nan")));
    REQUIRE(stringToReal("inf") == (real)Infinity());
    REQUIRE(stringToReal("+inf") == (real)Infinity());
    REQUIRE(stringToReal("-inf") == -(real)Infinity());
    REQUIRE(stringToReal("123") == 123);
    REQUIRE(stringToReal("-123") == -123);
    REQUIRE(stringToReal("+123") == +123);
    REQUIRE(stringToReal("1.0") == 1.0);
    REQUIRE(stringToReal("1.01") == 1.01);
    REQUIRE(stringToReal("1.01e5") == 1.01e5);
    REQUIRE(stringToReal("1.01e-5") == 1.01e-5);
    REQUIRE(stringToReal("1.01e+5") == 1.01e+5);
}

TEST_CASE("realToString (string_algorithms)")
{
    REQUIRE(realToString((real)Infinity()) == "inf");
    REQUIRE(realToString(-(real)Infinity()) == "-inf");
    REQUIRE(realToString((real)Nan()) == "nan");
    REQUIRE(realToString(123) == "123");
    REQUIRE(realToString(-123) == "-123");
}