mirror of
https://github.com/Open-Cascade-SAS/OCCT.git
synced 2026-05-10 09:30:48 +08:00
Foundation Classes - Enhance TCollection_ExtendedString with std::u16string_view support (#1009)
- Added constructor and assignment operator for std::u16string_view. - Implemented conversion operator to std::u16string_view. - Introduced methods to append std::u16string_view. - Added Copy and assignment operator overloads for char16_t pointers. - Fixed variable name inconsistencies (myLength vs mylength). - Added new string manipulation methods: LeftAdjust, RightAdjust, LeftJustify, RightJustify, Center, Capitalize, Prepend, FirstLocationInSet, FirstLocationNotInSet, IntegerValue, IsIntegerValue, RealValue, IsRealValue, IsSameString.
This commit is contained in:
@@ -319,7 +319,7 @@ void XmlMDataStd_ExtStringArrayDriver::Paste(const occ::handle<TDF_Attribute>& t
|
||||
}
|
||||
if (xstr.SearchFromEnd(c) == isym - 1)
|
||||
isym--; // replace the last separator by '\0'
|
||||
xstr.SetValue(isym, '\0');
|
||||
xstr.SetValue(isym, u'\0');
|
||||
#ifdef _DEBUG
|
||||
TCollection_AsciiString cstr(xstr, '?'); // deb
|
||||
#endif
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
#include <TCollection_ExtendedString.hxx>
|
||||
#include <TCollection_AsciiString.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
@@ -444,3 +445,586 @@ TEST(TCollection_ExtendedStringTest, OCC3277_CatOperation)
|
||||
// Verify the content matches
|
||||
EXPECT_EQ(anInputString, aResult) << "Concatenated string should match input string";
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for LeftAdjust method
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, LeftAdjust_RemovesLeadingSpaces)
|
||||
{
|
||||
TCollection_ExtendedString aString(" Hello World");
|
||||
aString.LeftAdjust();
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("Hello World", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, LeftAdjust_NoLeadingSpaces)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello World");
|
||||
aString.LeftAdjust();
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("Hello World", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, LeftAdjust_AllSpaces)
|
||||
{
|
||||
TCollection_ExtendedString aString(" ");
|
||||
aString.LeftAdjust();
|
||||
EXPECT_TRUE(aString.IsEmpty());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, LeftAdjust_EmptyString)
|
||||
{
|
||||
TCollection_ExtendedString aString;
|
||||
aString.LeftAdjust();
|
||||
EXPECT_TRUE(aString.IsEmpty());
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for RightAdjust method
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, RightAdjust_RemovesTrailingSpaces)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello World ");
|
||||
aString.RightAdjust();
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("Hello World", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, RightAdjust_NoTrailingSpaces)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello World");
|
||||
aString.RightAdjust();
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("Hello World", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, RightAdjust_AllSpaces)
|
||||
{
|
||||
TCollection_ExtendedString aString(" ");
|
||||
aString.RightAdjust();
|
||||
EXPECT_TRUE(aString.IsEmpty());
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for LeftJustify method
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, LeftJustify_ExtendsWithFiller)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
aString.LeftJustify(10, '-');
|
||||
EXPECT_EQ(10, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("Hello-----", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, LeftJustify_NoChangeIfShorter)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
aString.LeftJustify(3, '-');
|
||||
EXPECT_EQ(5, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("Hello", anAscii.ToCString());
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for RightJustify method
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, RightJustify_ExtendsWithFiller)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
aString.RightJustify(10, '-');
|
||||
EXPECT_EQ(10, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("-----Hello", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, RightJustify_NoChangeIfShorter)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
aString.RightJustify(3, '-');
|
||||
EXPECT_EQ(5, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("Hello", anAscii.ToCString());
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for Center method
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Center_CentersWithFiller)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hi");
|
||||
aString.Center(6, '-');
|
||||
EXPECT_EQ(6, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("--Hi--", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Center_OddWidth)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hi");
|
||||
aString.Center(7, '-');
|
||||
EXPECT_EQ(7, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
// 7 - 2 = 5, left = 2, right = 3
|
||||
EXPECT_STREQ("--Hi---", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Center_NoChangeIfShorter)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
aString.Center(3, '-');
|
||||
EXPECT_EQ(5, aString.Length());
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for Capitalize method
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Capitalize_UppercasesFirstLetter)
|
||||
{
|
||||
TCollection_ExtendedString aString("hello WORLD");
|
||||
aString.Capitalize();
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("Hello world", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Capitalize_AlreadyCapitalized)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
aString.Capitalize();
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("Hello", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Capitalize_EmptyString)
|
||||
{
|
||||
TCollection_ExtendedString aString;
|
||||
aString.Capitalize();
|
||||
EXPECT_TRUE(aString.IsEmpty());
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for Prepend method
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Prepend_InsertsAtBeginning)
|
||||
{
|
||||
TCollection_ExtendedString aString("World");
|
||||
TCollection_ExtendedString aPrefix("Hello ");
|
||||
aString.Prepend(aPrefix);
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("Hello World", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Prepend_EmptyPrefix)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
TCollection_ExtendedString aPrefix;
|
||||
aString.Prepend(aPrefix);
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("Hello", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Prepend_ToEmptyString)
|
||||
{
|
||||
TCollection_ExtendedString aString;
|
||||
TCollection_ExtendedString aPrefix("Hello");
|
||||
aString.Prepend(aPrefix);
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("Hello", anAscii.ToCString());
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for FirstLocationInSet method
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, FirstLocationInSet_FindsCharacter)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello World");
|
||||
TCollection_ExtendedString aSet("aeiou");
|
||||
int aLoc = aString.FirstLocationInSet(aSet, 1, aString.Length());
|
||||
EXPECT_EQ(2, aLoc); // 'e' at position 2
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, FirstLocationInSet_NotFound)
|
||||
{
|
||||
TCollection_ExtendedString aString("BCDFG");
|
||||
TCollection_ExtendedString aSet("aeiou");
|
||||
int aLoc = aString.FirstLocationInSet(aSet, 1, aString.Length());
|
||||
EXPECT_EQ(0, aLoc);
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, FirstLocationInSet_EmptySet)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
TCollection_ExtendedString aSet;
|
||||
int aLoc = aString.FirstLocationInSet(aSet, 1, aString.Length());
|
||||
EXPECT_EQ(0, aLoc);
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for FirstLocationNotInSet method
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, FirstLocationNotInSet_FindsCharacter)
|
||||
{
|
||||
TCollection_ExtendedString aString("aaaHello");
|
||||
TCollection_ExtendedString aSet("a");
|
||||
int aLoc = aString.FirstLocationNotInSet(aSet, 1, aString.Length());
|
||||
EXPECT_EQ(4, aLoc); // 'H' at position 4
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, FirstLocationNotInSet_AllInSet)
|
||||
{
|
||||
TCollection_ExtendedString aString("aaa");
|
||||
TCollection_ExtendedString aSet("a");
|
||||
int aLoc = aString.FirstLocationNotInSet(aSet, 1, aString.Length());
|
||||
EXPECT_EQ(0, aLoc);
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, FirstLocationNotInSet_EmptySet)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
TCollection_ExtendedString aSet;
|
||||
int aLoc = aString.FirstLocationNotInSet(aSet, 1, aString.Length());
|
||||
EXPECT_EQ(1, aLoc); // First character is not in empty set
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for IntegerValue and IsIntegerValue methods
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IntegerValue_ValidInteger)
|
||||
{
|
||||
TCollection_ExtendedString aString("12345");
|
||||
EXPECT_TRUE(aString.IsIntegerValue());
|
||||
EXPECT_EQ(12345, aString.IntegerValue());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IntegerValue_NegativeInteger)
|
||||
{
|
||||
TCollection_ExtendedString aString("-42");
|
||||
EXPECT_TRUE(aString.IsIntegerValue());
|
||||
EXPECT_EQ(-42, aString.IntegerValue());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IntegerValue_NotAnInteger)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
EXPECT_FALSE(aString.IsIntegerValue());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IntegerValue_EmptyString)
|
||||
{
|
||||
TCollection_ExtendedString aString;
|
||||
EXPECT_FALSE(aString.IsIntegerValue());
|
||||
EXPECT_EQ(0, aString.IntegerValue());
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for RealValue and IsRealValue methods
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, RealValue_ValidReal)
|
||||
{
|
||||
TCollection_ExtendedString aString("3.14159");
|
||||
EXPECT_TRUE(aString.IsRealValue(true));
|
||||
EXPECT_NEAR(3.14159, aString.RealValue(), 0.00001);
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, RealValue_Integer)
|
||||
{
|
||||
TCollection_ExtendedString aString("42");
|
||||
EXPECT_TRUE(aString.IsRealValue(true));
|
||||
EXPECT_NEAR(42.0, aString.RealValue(), 0.00001);
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, RealValue_NotAReal)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
EXPECT_FALSE(aString.IsRealValue(true));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, RealValue_EmptyString)
|
||||
{
|
||||
TCollection_ExtendedString aString;
|
||||
EXPECT_FALSE(aString.IsRealValue());
|
||||
EXPECT_NEAR(0.0, aString.RealValue(), 0.00001);
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for IsSameString method
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IsSameString_CaseSensitiveMatch)
|
||||
{
|
||||
TCollection_ExtendedString aString1("Hello");
|
||||
TCollection_ExtendedString aString2("Hello");
|
||||
EXPECT_TRUE(aString1.IsSameString(aString2, true));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IsSameString_CaseSensitiveMismatch)
|
||||
{
|
||||
TCollection_ExtendedString aString1("Hello");
|
||||
TCollection_ExtendedString aString2("hello");
|
||||
EXPECT_FALSE(aString1.IsSameString(aString2, true));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IsSameString_CaseInsensitiveMatch)
|
||||
{
|
||||
TCollection_ExtendedString aString1("Hello");
|
||||
TCollection_ExtendedString aString2("HELLO");
|
||||
EXPECT_TRUE(aString1.IsSameString(aString2, false));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IsSameString_DifferentLengths)
|
||||
{
|
||||
TCollection_ExtendedString aString1("Hello");
|
||||
TCollection_ExtendedString aString2("Hello World");
|
||||
EXPECT_FALSE(aString1.IsSameString(aString2, false));
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for C++17 std::u16string_view support
|
||||
// ========================================
|
||||
|
||||
#if __cplusplus >= 201703L
|
||||
TEST(TCollection_ExtendedStringTest, StringView_Constructor)
|
||||
{
|
||||
std::u16string_view aView(u"Hello World");
|
||||
TCollection_ExtendedString aString(aView);
|
||||
EXPECT_EQ(11, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("Hello World", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, StringView_Assignment)
|
||||
{
|
||||
TCollection_ExtendedString aString("Original");
|
||||
std::u16string_view aView(u"New Value");
|
||||
aString = aView;
|
||||
EXPECT_EQ(9, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("New Value", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, StringView_AssignCat)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
std::u16string_view aView(u" World");
|
||||
aString.AssignCat(aView);
|
||||
EXPECT_EQ(11, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("Hello World", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, StringView_Conversion)
|
||||
{
|
||||
TCollection_ExtendedString aString("Test");
|
||||
std::u16string_view aView = aString;
|
||||
EXPECT_EQ(4, aView.size());
|
||||
EXPECT_EQ(u'T', aView[0]);
|
||||
EXPECT_EQ(u'e', aView[1]);
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, StringView_EmptyConstructor)
|
||||
{
|
||||
std::u16string_view aView;
|
||||
TCollection_ExtendedString aString(aView);
|
||||
EXPECT_TRUE(aString.IsEmpty());
|
||||
}
|
||||
#endif
|
||||
|
||||
// ========================================
|
||||
// Tests for edge cases and error handling
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, FillerConstructor_NegativeLength_Throws)
|
||||
{
|
||||
EXPECT_THROW(TCollection_ExtendedString(-5, u'X'), Standard_OutOfRange);
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, FillerConstructor_ZeroLength)
|
||||
{
|
||||
const int aZeroLength = 0;
|
||||
TCollection_ExtendedString aString(aZeroLength, u'X');
|
||||
EXPECT_TRUE(aString.IsEmpty());
|
||||
EXPECT_EQ(0, aString.Length());
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for AssignCat self-append (aliasing)
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, AssignCat_SelfAppend)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
aString.AssignCat(aString);
|
||||
EXPECT_EQ(10, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("HelloHello", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, AssignCat_SelfAppendMultiple)
|
||||
{
|
||||
TCollection_ExtendedString aString("AB");
|
||||
aString.AssignCat(aString);
|
||||
aString.AssignCat(aString);
|
||||
EXPECT_EQ(8, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("ABABABAB", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, AssignCat_PointerIntoSelf)
|
||||
{
|
||||
TCollection_ExtendedString aString("HelloWorld");
|
||||
// Append substring of self starting at position 5 (0-based), length 5
|
||||
aString.AssignCat(aString.ToExtString() + 5, 5);
|
||||
EXPECT_EQ(15, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("HelloWorldWorld", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, AssignCat_PointerIntoSelfBeginning)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
// Append first 3 characters of self
|
||||
aString.AssignCat(aString.ToExtString(), 3);
|
||||
EXPECT_EQ(8, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("HelloHel", anAscii.ToCString());
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for Prepend aliasing
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Prepend_PointerIntoSelf)
|
||||
{
|
||||
TCollection_ExtendedString aString("HelloWorld");
|
||||
// Prepend substring of self starting at position 5 (0-based), length 5
|
||||
aString.Prepend(aString.ToExtString() + 5, 5);
|
||||
EXPECT_EQ(15, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("WorldHelloWorld", anAscii.ToCString());
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, Prepend_PointerIntoSelfBeginning)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
// Prepend first 3 characters of self
|
||||
aString.Prepend(aString.ToExtString(), 3);
|
||||
EXPECT_EQ(8, aString.Length());
|
||||
TCollection_AsciiString anAscii(aString);
|
||||
EXPECT_STREQ("HelHello", anAscii.ToCString());
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// Tests for comparison methods with null/negative length
|
||||
// ========================================
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IsEqual_NullPointer)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
EXPECT_FALSE(aString.IsEqual(nullptr, 5));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IsEqual_NegativeLength)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
const char16_t* aOther = u"Hello";
|
||||
EXPECT_FALSE(aString.IsEqual(aOther, -1));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IsEqual_ZeroLengthNullPointer)
|
||||
{
|
||||
TCollection_ExtendedString aString;
|
||||
// Empty string with null pointer and zero length should be equal
|
||||
EXPECT_TRUE(aString.IsEqual(nullptr, 0));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IsDifferent_NullPointer)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
EXPECT_TRUE(aString.IsDifferent(nullptr, 5));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IsDifferent_NegativeLength)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
const char16_t* aOther = u"Hello";
|
||||
EXPECT_TRUE(aString.IsDifferent(aOther, -1));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IsLess_NullPointer)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
// Non-empty string is not less than null/invalid
|
||||
EXPECT_FALSE(aString.IsLess(nullptr, 5));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IsLess_NegativeLength)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
const char16_t* aOther = u"Hello";
|
||||
EXPECT_FALSE(aString.IsLess(aOther, -1));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IsGreater_NullPointer)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
// Non-empty string is greater than null/invalid
|
||||
EXPECT_TRUE(aString.IsGreater(nullptr, 5));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, IsGreater_NegativeLength)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
const char16_t* aOther = u"Hello";
|
||||
EXPECT_TRUE(aString.IsGreater(aOther, -1));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, StartsWith_NullPointer)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
EXPECT_FALSE(aString.StartsWith(nullptr, 3));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, StartsWith_NegativeLength)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
const char16_t* aPrefix = u"Hel";
|
||||
EXPECT_FALSE(aString.StartsWith(aPrefix, -1));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, StartsWith_ZeroLength)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
// Any string starts with empty string
|
||||
EXPECT_TRUE(aString.StartsWith(nullptr, 0));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, EndsWith_NullPointer)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
EXPECT_FALSE(aString.EndsWith(nullptr, 3));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, EndsWith_NegativeLength)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
const char16_t* aSuffix = u"llo";
|
||||
EXPECT_FALSE(aString.EndsWith(aSuffix, -1));
|
||||
}
|
||||
|
||||
TEST(TCollection_ExtendedStringTest, EndsWith_ZeroLength)
|
||||
{
|
||||
TCollection_ExtendedString aString("Hello");
|
||||
// Any string ends with empty string
|
||||
EXPECT_TRUE(aString.EndsWith(nullptr, 0));
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user