59 lines
1.6 KiB
C++
59 lines
1.6 KiB
C++
// Copyright (c) 2010-2025, Lawrence Livermore National Security, LLC. Produced
|
|
// at the Lawrence Livermore National Laboratory. All Rights reserved. See files
|
|
// LICENSE and NOTICE for details. LLNL-CODE-806117.
|
|
//
|
|
// This file is part of the MFEM library. For more information and source code
|
|
// availability visit https://mfem.org.
|
|
//
|
|
// MFEM is free software; you can redistribute it and/or modify it under the
|
|
// terms of the BSD-3 license. We welcome feedback and contributions, see file
|
|
// CONTRIBUTING.md for details.
|
|
|
|
#include "mfem.hpp"
|
|
using namespace mfem;
|
|
|
|
#include "unit_tests.hpp"
|
|
#include "general/text.hpp"
|
|
|
|
TEST_CASE("String Manipulation", "[General]")
|
|
{
|
|
SECTION("String Conversion")
|
|
{
|
|
SECTION("Integer")
|
|
{
|
|
// Catch workaround for nvcc compiler: see issue
|
|
// https://github.com/catchorg/Catch2/issues/2005
|
|
int i = to_int(to_string(12));
|
|
REQUIRE(i == 12);
|
|
int j = to_int(to_string(-1234));
|
|
REQUIRE(j == -1234);
|
|
}
|
|
}
|
|
}
|
|
|
|
TEST_CASE("Quoted String Input", "[General]")
|
|
{
|
|
const auto test_strings =
|
|
{
|
|
"Test",
|
|
"Test with spaces",
|
|
"Test with \"quoted text\"",
|
|
"Test string ending with \\",
|
|
"\nTest with\tvarious white\v\rspace characters.",
|
|
"Test with some unicode characters: ∆, ∉, ∑, 🍎."
|
|
};
|
|
|
|
for (const auto c_str : test_strings)
|
|
{
|
|
CAPTURE(c_str);
|
|
const std::string str(c_str);
|
|
std::stringstream ss;
|
|
ss << std::quoted(str);
|
|
|
|
std::string read_str;
|
|
int error = parse_quoted_string(read_str, ss);
|
|
CHECK(error == 0);
|
|
CHECK(read_str == str);
|
|
}
|
|
}
|