1#include <Core/Utils/StringUtils.hpp>
2#include <catch2/catch_test_macros.hpp>
4TEST_CASE(
"Core/Utils/StringUtils",
"[unittests][Core][Core/Utils][StringUtils]" ) {
5 SECTION(
"Test getFileExt" ) {
6 using Ra::Core::Utils::getFileExt;
8 REQUIRE( getFileExt(
"aaa.xyz" ) ==
std::string(
"xyz" ) );
10 REQUIRE( getFileExt(
"aaa/bbb.xyz" ) ==
std::string(
"xyz" ) );
12 REQUIRE( getFileExt(
"/aaa/bbb/ccc.xyz" ) ==
std::string(
"xyz" ) );
14 REQUIRE( getFileExt(
"aaa/bbb/xyz" ) ==
std::string(
"" ) );
15 REQUIRE( getFileExt(
"aaa/bbb/xyz." ) ==
std::string(
"" ) );
17 SECTION(
"Test getDirName" ) {
18 using Ra::Core::Utils::getDirName;
20 REQUIRE( getDirName(
"aaa.xyz" ) ==
std::string(
"." ) );
22 REQUIRE( getDirName(
"aaa/bbb.xyz" ) ==
std::string(
"aaa" ) );
24 REQUIRE( getDirName(
"/aaa/bbb/ccc.xyz" ) ==
std::string(
"/aaa/bbb" ) );
26 REQUIRE( getDirName(
"/aaa/bbb/ccc.xyz///" ) ==
std::string(
"/aaa/bbb" ) );
28 REQUIRE( getDirName(
"aaa/bbb/xyz" ) ==
std::string(
"aaa/bbb" ) );
30 SECTION(
"Test getBaseName" ) {
31 using Ra::Core::Utils::getBaseName;
33 REQUIRE( getBaseName(
"aaa.xyz",
true ) ==
std::string(
"aaa.xyz" ) );
34 REQUIRE( getBaseName(
"aaa.xyz",
false ) ==
std::string(
"aaa" ) );
36 REQUIRE( getBaseName(
"aaa/bbb.xyz",
true ) ==
std::string(
"bbb.xyz" ) );
37 REQUIRE( getBaseName(
"aaa/bbb.xyz",
false ) ==
std::string(
"bbb" ) );
39 REQUIRE( getBaseName(
"/aaa/bbb/ccc.xyz",
true ) ==
std::string(
"ccc.xyz" ) );
40 REQUIRE( getBaseName(
"/aaa/bbb/ccc.xyz",
false ) ==
std::string(
"ccc" ) );
42 REQUIRE( getBaseName(
"/aaa/bbb/ccc.xyz///",
false ) ==
std::string(
"ccc" ) );
44 REQUIRE( getBaseName(
"aaa/bbb/xyz",
true ) ==
std::string(
"xyz" ) );
45 REQUIRE( getBaseName(
"aaa/bbb/xyz",
false ) ==
std::string(
"xyz" ) );
47 SECTION(
"Test jointly getDirName, getBaseName and getFileExt" ) {
48 using Ra::Core::Utils::getBaseName;
49 using Ra::Core::Utils::getDirName;
50 using Ra::Core::Utils::getFileExt;
53 REQUIRE( getDirName( path ) +
"/" + getBaseName( path,
false ) +
"." + getFileExt( path ) ==
56 SECTION(
"Test replace/remove" ) {
57 using Ra::Core::Utils::removeAllInString;
58 using Ra::Core::Utils::replaceAllInString;
61 auto n = removeAllInString( initial,
"b" );
63 REQUIRE( initial ==
"acdca" );
65 n = replaceAllInString( initial,
"c",
"x" );
67 REQUIRE( initial ==
"axdxa" );