Files
create/tests/src/App/MappedName.cpp
Pesc0 c65f049d20 [Toponaming] create ElementMap class (#9175)
* Copypaste ElementMap
* Add MappedNameRef
* Fix missing include
* Copypaste `findTagInElementName`
* fix error introduced _somewhere_
* refactor toponaming constants
* Move `findTagInElementName` in `MappedName`
* reintroduce workaround to compile ElementMap
* Added missing functions copied from complexgeodata
* fix last compile errors, reorder and format files
* remove recursive refs to ComplexGeoData
* Add more comments
* fixed comments and added tests
* added FIXME, make functions private, misc fixes
* Move static functions from complexGeoData to PostfixStringReferences. Rename to ElementNamingUtils
* Fix broken includes due to previous change
* Revert constants from string to const char*
* added childmap tests and made hasher public
* Make functions private
* Added remaining tests
* removed bool return from `erase` functions
* fix missing appexport

Co-authored-by: John Dupuy <jdupuy98@gmail.com>
2023-06-15 09:05:24 -05:00

839 lines
24 KiB
C++

// SPDX-License-Identifier: LGPL-2.1-or-later
#include "gtest/gtest.h"
#include "App/ComplexGeoData.h"
#include "App/MappedName.h"
#include <string>
// NOLINTBEGIN(readability-magic-numbers)
TEST(MappedName, defaultConstruction)
{
// Act
Data::MappedName mappedName;
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), true);
EXPECT_EQ(mappedName.size(), 0);
EXPECT_EQ(mappedName.dataBytes(), QByteArray());
EXPECT_EQ(mappedName.postfixBytes(), QByteArray());
}
TEST(MappedName, namedConstruction)
{
// Act
Data::MappedName mappedName("TEST");
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 4);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray());
}
TEST(MappedName, namedConstructionWithMaxSize)
{
// Act
Data::MappedName mappedName("TEST", 2);
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 2);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TE"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray());
}
TEST(MappedName, namedConstructionDiscardPrefix)
{
// Arrange
std::string name = std::string(Data::ELEMENT_MAP_PREFIX) + "TEST";
// Act
Data::MappedName mappedName(name.c_str());
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 4);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray());
}
TEST(MappedName, stringNamedConstruction)
{
// Act
Data::MappedName mappedName(std::string("TEST"));
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 4);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray());
}
TEST(MappedName, stringNamedConstructionDiscardPrefix)
{
// Arrange
std::string name = std::string(Data::ELEMENT_MAP_PREFIX) + "TEST";
// Act
Data::MappedName mappedName(name);
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 4);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray());
}
TEST(MappedName, constructFromIndexedNameNoIndex)
{
// Arrange
Data::IndexedName indexedName {"INDEXED_NAME"};
// Act
Data::MappedName mappedName {indexedName};
// Assert
EXPECT_EQ(mappedName.dataBytes().constData(), indexedName.getType());// shared memory
EXPECT_EQ(mappedName.isRaw(), true);
}
TEST(MappedName, constructFromIndexedNameWithIndex)
{
// Arrange
Data::IndexedName indexedName {"INDEXED_NAME", 1};
// Act
Data::MappedName mappedName {indexedName};
// Assert
EXPECT_NE(mappedName.dataBytes().constData(), indexedName.getType());// NOT shared memory
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.toString(), indexedName.toString());
}
TEST(MappedName, copyConstructor)
{
// Arrange
Data::MappedName temp("TEST");
// Act
Data::MappedName mappedName(temp);
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 4);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray());
}
TEST(MappedName, copyConstructorWithPostfix)
{
// Arrange
Data::MappedName temp("TEST");
// Act
Data::MappedName mappedName(temp, "POSTFIXTEST");
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 15);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray("POSTFIXTEST"));
// Act
Data::MappedName mappedName2(mappedName, "ANOTHERPOSTFIX");
// Assert
EXPECT_EQ(mappedName2.isRaw(), false);
EXPECT_EQ(mappedName2.empty(), false);
EXPECT_EQ(mappedName2.size(), 29);
EXPECT_EQ(mappedName2.dataBytes(), QByteArray("TESTPOSTFIXTEST"));
EXPECT_EQ(mappedName2.postfixBytes(), QByteArray("ANOTHERPOSTFIX"));
}
TEST(MappedName, copyConstructorStartpos)
{
// Arrange
Data::MappedName temp(Data::MappedName("TEST"), "POSTFIXTEST");
// Act
Data::MappedName mappedName(temp, 2, -1);
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 13);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("ST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray("POSTFIXTEST"));
}
TEST(MappedName, copyConstructorStartposAndSize)
{
// Arrange
Data::MappedName temp(Data::MappedName("TEST"), "POSTFIXTEST");
// Act
Data::MappedName mappedName(temp, 2, 6);
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 6);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("ST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray("POST"));
}
TEST(MappedName, moveConstructor)
{
// Arrange
Data::MappedName temp(Data::MappedName("TEST"), "POSTFIXTEST");
// Act
Data::MappedName mappedName(std::move(temp));
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 15);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray("POSTFIXTEST"));
}
TEST(MappedName, fromRawData)
{
// Act
Data::MappedName mappedName = Data::MappedName::fromRawData("TESTTEST", 10);
// Assert
EXPECT_EQ(mappedName.isRaw(), true);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 10);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TESTTEST", 10));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray());
}
TEST(MappedName, fromRawDataQByteArray)
{
// Act
Data::MappedName mappedName = Data::MappedName::fromRawData(QByteArray("TESTTEST", 10));
// Assert
EXPECT_EQ(mappedName.isRaw(), true);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 10);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TESTTEST", 10));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray());
}
TEST(MappedName, fromRawDataCopy)
{
// Arrange
Data::MappedName temp = Data::MappedName::fromRawData(QByteArray("TESTTEST", 10));
temp.append("TESTPOSTFIX");
temp.compact();// Always call compact before accessing data!
// Act
Data::MappedName mappedName = Data::MappedName::fromRawData(temp, 0);
// Assert
EXPECT_EQ(mappedName.isRaw(), true);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 21);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TESTTEST", 10));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray("TESTPOSTFIX"));
}
TEST(MappedName, fromRawDataCopyStartposAndSize)
{
// Arrange
Data::MappedName temp = Data::MappedName::fromRawData(QByteArray("TESTTEST", 8));
temp.append("ABCDEFGHIJKLM");// postfix
temp.compact(); // Always call compact before accessing data!
// Act
Data::MappedName mappedName = Data::MappedName::fromRawData(temp, 2, 13);
// Assert
EXPECT_EQ(mappedName.isRaw(), true);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 13);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("STTEST", 6));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray("ABCDEFG"));
}
TEST(MappedName, assignmentOperator)
{
// Arrange
Data::MappedName temp(Data::MappedName("TEST"), "POSTFIXTEST");
// Act
Data::MappedName mappedName = temp;
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 15);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray("POSTFIXTEST"));
}
TEST(MappedName, assignmentOperatorString)
{
// Arrange
Data::MappedName mappedName;
// Act
mappedName = std::string("TEST");
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 4);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray());
}
TEST(MappedName, assignmentOperatorConstCharPtr)
{
// Arrange
Data::MappedName mappedName;
// Act
mappedName = "TEST";
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 4);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray());
}
TEST(MappedName, assignmentOperatorMove)
{
// Arrange
Data::MappedName temp(Data::MappedName("TEST"), "POSTFIXTEST");
// Act
Data::MappedName mappedName = std::move(temp);
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 15);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray("POSTFIXTEST"));
}
TEST(MappedName, streamInsertionOperator)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
std::stringstream ss;
// Act
ss << mappedName;
// Assert
EXPECT_EQ(ss.str(), std::string("TESTPOSTFIXTEST"));
}
TEST(MappedName, comparisonOperators)
{
// Arrange
Data::MappedName mappedName1(Data::MappedName("TEST"), "POSTFIXTEST");
Data::MappedName mappedName2(Data::MappedName("TEST"), "POSTFIXTEST");
Data::MappedName mappedName3(Data::MappedName("TESTPOST"), "FIXTEST");
Data::MappedName mappedName4(Data::MappedName("THIS"), "ISDIFFERENT");
// Act & Assert
EXPECT_EQ(mappedName1 == mappedName1, true);
EXPECT_EQ(mappedName1 == mappedName2, true);
EXPECT_EQ(mappedName1 == mappedName3, true);
EXPECT_EQ(mappedName1 == mappedName4, false);
EXPECT_EQ(mappedName1 != mappedName1, false);
EXPECT_EQ(mappedName1 != mappedName2, false);
EXPECT_EQ(mappedName1 != mappedName3, false);
EXPECT_EQ(mappedName1 != mappedName4, true);
}
TEST(MappedName, additionOperators)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
// Act
mappedName += "POST1";
mappedName += std::string("POST2");
mappedName += QByteArray("POST3");
mappedName += Data::MappedName("POST4");
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 35);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray("POSTFIXTESTPOST1POST2POST3POST4"));
// Arrange
mappedName = Data::MappedName(Data::MappedName("TEST"), "POSTFIXTEST");
// Act
mappedName = mappedName + Data::MappedName("POST5");
mappedName = mappedName + "POST6";
mappedName = mappedName + std::string("POST7");
mappedName = mappedName + QByteArray("POST8");
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 35);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray("POSTFIXTESTPOST5POST6POST7POST8"));
}
TEST(MappedName, append)
{
// Arrange
Data::MappedName mappedName;
// Act
mappedName.append("TEST");
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 4);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray(""));
// Act
mappedName.append("POSTFIX");
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 11);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray("POSTFIX"));
// Act
mappedName.append("ANOTHERPOSTFIX", 5);
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 16);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray("POSTFIXANOTH"));
}
TEST(MappedName, appendMappedNameObj)
{
// Arrange
Data::MappedName mappedName;
Data::MappedName temp(Data::MappedName("TEST"), "POSTFIXTEST");
// Act
mappedName.append(temp);
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 15);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray("POSTFIXTEST"));
// Act
mappedName.append(temp, 2, 7);
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 22);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TEST"));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray("POSTFIXTESTSTPOSTF"));
}
TEST(MappedName, toString)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
// Act & Assert
EXPECT_EQ(mappedName.toString(0), "TESTPOSTFIXTEST");
EXPECT_EQ(mappedName.toString(0), std::string("TESTPOSTFIXTEST"));
EXPECT_EQ(mappedName.toString(2, 8), "STPOSTFI");
EXPECT_EQ(mappedName.toString(2, 8), std::string("STPOSTFI"));
}
TEST(MappedName, toConstString)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
int size {0};
// Act
const char* temp = mappedName.toConstString(0, size);
// Assert
EXPECT_EQ(QByteArray(temp, size), QByteArray("TEST"));
EXPECT_EQ(size, 4);
// Act
const char* temp2 = mappedName.toConstString(7, size);
// Assert
EXPECT_EQ(QByteArray(temp2, size), QByteArray("TFIXTEST"));
EXPECT_EQ(size, 8);
}
TEST(MappedName, toRawBytes)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
// Act & Assert
EXPECT_EQ(mappedName.toRawBytes(), QByteArray("TESTPOSTFIXTEST"));
EXPECT_EQ(mappedName.toRawBytes(3), QByteArray("TPOSTFIXTEST"));
EXPECT_EQ(mappedName.toRawBytes(7, 3), QByteArray("TFI"));
EXPECT_EQ(mappedName.toRawBytes(502, 5), QByteArray());
}
TEST(MappedName, toIndexedNameASCIIOnly)
{
// Arrange
Data::MappedName mappedName {"MAPPED_NAME"};
// Act
auto indexedName = mappedName.toIndexedName();
// Assert
EXPECT_FALSE(indexedName.isNull());
}
TEST(MappedName, toIndexedNameInvalid)
{
// Arrange
Data::MappedName mappedName {"MAPPED-NAME"};
// Act
auto indexedName = mappedName.toIndexedName();
// Assert
EXPECT_TRUE(indexedName.isNull());
}
TEST(MappedName, appendToBuffer)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
std::string buffer("STUFF");
// Act
mappedName.appendToBuffer(buffer);
// Assert
EXPECT_EQ(buffer, std::string("STUFFTESTPOSTFIXTEST"));
// Act
mappedName.appendToBuffer(buffer, 2, 7);
// Assert
EXPECT_EQ(buffer, std::string("STUFFTESTPOSTFIXTESTSTPOSTF"));
}
TEST(MappedName, appendToBufferWithPrefix)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
std::string buffer("STUFF");
std::string elemMapPrefix = Data::ELEMENT_MAP_PREFIX;
// Act
mappedName.appendToBufferWithPrefix(buffer);
// Assert
EXPECT_EQ(buffer, std::string("STUFF") + elemMapPrefix + std::string("TESTPOSTFIXTEST"));
// Arrange
Data::MappedName mappedName2("TEST");// If mappedName does not have a postfix and is a valid
// indexedName: prefix is not added
// Act
mappedName2.appendToBufferWithPrefix(buffer);
// Assert
EXPECT_EQ(buffer,
std::string("STUFF") + elemMapPrefix + std::string("TESTPOSTFIXTEST")
+ /*missing prefix*/ std::string("TEST"));
}
TEST(MappedName, toPrefixedString)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
std::string buffer("STUFF");
std::string elemMapPrefix = Data::ELEMENT_MAP_PREFIX;
// Act
buffer += mappedName.toPrefixedString();
// Assert
EXPECT_EQ(buffer, std::string("STUFF") + elemMapPrefix + std::string("TESTPOSTFIXTEST"));
// Arrange
Data::MappedName mappedName2("TEST");// If mappedName does not have a postfix and is a valid
// indexedName: prefix is not added
// Act
buffer += mappedName2.toPrefixedString();
// Assert
EXPECT_EQ(buffer,
std::string("STUFF") + elemMapPrefix + std::string("TESTPOSTFIXTEST")
+ /*missing prefix*/ std::string("TEST"));
}
TEST(MappedName, toBytes)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
// Act & Assert
EXPECT_EQ(mappedName.toBytes(), QByteArray("TESTPOSTFIXTEST"));
}
TEST(MappedName, compare)
{
// Arrange
Data::MappedName mappedName1(Data::MappedName("TEST"), "POSTFIXTEST");
Data::MappedName mappedName2(Data::MappedName("TEST"), "POSTFIXTEST");
Data::MappedName mappedName3(Data::MappedName("TESTPOST"), "FIXTEST");
Data::MappedName mappedName4(Data::MappedName("THIS"), "ISDIFFERENT");
Data::MappedName mappedName5(Data::MappedName("SH"), "ORTHER");
Data::MappedName mappedName6(Data::MappedName("VERYVERYVERY"), "VERYMUCHLONGER");
// Act & Assert
EXPECT_EQ(mappedName1.compare(mappedName1), 0);
EXPECT_EQ(mappedName1.compare(mappedName2), 0);
EXPECT_EQ(mappedName1.compare(mappedName3), 0);
EXPECT_EQ(mappedName1.compare(mappedName4), -1);
EXPECT_EQ(mappedName1.compare(mappedName5), 1);
EXPECT_EQ(mappedName1.compare(mappedName6), -1);
EXPECT_EQ(mappedName1 < mappedName1, false);
EXPECT_EQ(mappedName1 < mappedName2, false);
EXPECT_EQ(mappedName1 < mappedName3, false);
EXPECT_EQ(mappedName1 < mappedName4, true);
EXPECT_EQ(mappedName1 < mappedName5, false);
EXPECT_EQ(mappedName1 < mappedName6, true);
}
TEST(MappedName, subscriptOperator)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
// Act & Assert
EXPECT_EQ(mappedName[0], 'T');
EXPECT_EQ(mappedName[1], 'E');
EXPECT_EQ(mappedName[2], 'S');
EXPECT_EQ(mappedName[3], 'T');
EXPECT_EQ(mappedName[4], 'P');
EXPECT_EQ(mappedName[5], 'O');
EXPECT_EQ(mappedName[6], 'S');
EXPECT_EQ(mappedName[7], 'T');
EXPECT_EQ(mappedName[8], 'F');
EXPECT_EQ(mappedName[9], 'I');
}
TEST(MappedName, copy)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
// Act
Data::MappedName mappedName2 = mappedName.copy();
// Assert
EXPECT_EQ(mappedName, mappedName2);
}
TEST(MappedName, compact)
{
// Arrange
Data::MappedName mappedName = Data::MappedName::fromRawData("TESTTEST", 10);
// Act
mappedName.compact();
// Assert
EXPECT_EQ(mappedName.isRaw(), false);
EXPECT_EQ(mappedName.empty(), false);
EXPECT_EQ(mappedName.size(), 10);
EXPECT_EQ(mappedName.dataBytes(), QByteArray("TESTTEST", 10));
EXPECT_EQ(mappedName.postfixBytes(), QByteArray());
}
TEST(MappedName, boolOperator)
{
// Arrange
Data::MappedName mappedName;
// Act & Assert
EXPECT_EQ((bool)mappedName, false);
// Arrange
mappedName.append("TEST");
// Act & Assert
EXPECT_EQ((bool)mappedName, true);
}
TEST(MappedName, clear)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
// Act
mappedName.clear();
// Assert
EXPECT_EQ(mappedName.empty(), true);
}
TEST(MappedName, find)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
// Act & Assert
EXPECT_EQ(mappedName.find(nullptr), -1);
EXPECT_EQ(mappedName.find(""), 0);
EXPECT_EQ(mappedName.find(std::string("")), 0);
EXPECT_EQ(mappedName.find("TEST"), 0);
EXPECT_EQ(mappedName.find("STPO"), -1);// sentence must be fully contained in data or postfix
EXPECT_EQ(mappedName.find("POST"), 4);
EXPECT_EQ(mappedName.find("POST", 4), 4);
EXPECT_EQ(mappedName.find("POST", 5), -1);
EXPECT_EQ(mappedName.rfind("ST"), 13);
EXPECT_EQ(mappedName.rfind("ST", 15), 13);
EXPECT_EQ(mappedName.rfind("ST", 14), 13);
EXPECT_EQ(mappedName.rfind("ST", 13), 13);
EXPECT_EQ(mappedName.rfind("ST", 12), 6);
EXPECT_EQ(mappedName.rfind("ST", 11), 6);
EXPECT_EQ(mappedName.rfind("ST", 10), 6);
EXPECT_EQ(mappedName.rfind("ST", 9), 6);
EXPECT_EQ(mappedName.rfind("ST", 8), 6);
EXPECT_EQ(mappedName.rfind("ST", 7), 6);
EXPECT_EQ(mappedName.rfind("ST", 6), 6);
EXPECT_EQ(mappedName.rfind("ST", 5), 2);
EXPECT_EQ(mappedName.rfind("ST", 4), 2);
EXPECT_EQ(mappedName.rfind("ST", 3), 2);
EXPECT_EQ(mappedName.rfind("ST", 2), 2);
EXPECT_EQ(mappedName.rfind("ST", 1), -1);
EXPECT_EQ(mappedName.rfind("ST", 0), -1);
}
TEST(MappedName, rfind)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
// Act & Assert
EXPECT_EQ(mappedName.rfind(nullptr), -1);
EXPECT_EQ(mappedName.rfind(""), mappedName.size());
EXPECT_EQ(mappedName.rfind(std::string("")), mappedName.size());
EXPECT_EQ(mappedName.rfind("TEST"), 11);
EXPECT_EQ(mappedName.rfind("STPO"), -1);// sentence must be fully contained in data or postfix
EXPECT_EQ(mappedName.rfind("POST"), 4);
EXPECT_EQ(mappedName.rfind("POST", 4), 4);
EXPECT_EQ(mappedName.rfind("POST", 3), -1);
EXPECT_EQ(mappedName.rfind("ST"), 13);
EXPECT_EQ(mappedName.rfind("ST", 0), -1);
EXPECT_EQ(mappedName.rfind("ST", 1), -1);
EXPECT_EQ(mappedName.rfind("ST", 2), 2);
EXPECT_EQ(mappedName.rfind("ST", 3), 2);
EXPECT_EQ(mappedName.rfind("ST", 4), 2);
EXPECT_EQ(mappedName.rfind("ST", 5), 2);
EXPECT_EQ(mappedName.rfind("ST", 6), 6);
EXPECT_EQ(mappedName.rfind("ST", 7), 6);
EXPECT_EQ(mappedName.rfind("ST", 8), 6);
EXPECT_EQ(mappedName.rfind("ST", 9), 6);
EXPECT_EQ(mappedName.rfind("ST", 10), 6);
EXPECT_EQ(mappedName.rfind("ST", 11), 6);
EXPECT_EQ(mappedName.rfind("ST", 12), 6);
EXPECT_EQ(mappedName.rfind("ST", 13), 13);
EXPECT_EQ(mappedName.rfind("ST", 14), 13);
EXPECT_EQ(mappedName.rfind("ST", 15), 13);
}
TEST(MappedName, endswith)
{
// Arrange
Data::MappedName mappedName("TEST");
// Act & Assert
EXPECT_EQ(mappedName.endsWith(nullptr), false);
EXPECT_EQ(mappedName.endsWith("TEST"), true);
EXPECT_EQ(mappedName.endsWith(std::string("TEST")), true);
EXPECT_EQ(mappedName.endsWith("WASD"), false);
// Arrange
mappedName.append("POSTFIX");
// Act & Assert
EXPECT_EQ(mappedName.endsWith(nullptr), false);
EXPECT_EQ(mappedName.endsWith("TEST"), false);
EXPECT_EQ(mappedName.endsWith("FIX"), true);
}
TEST(MappedName, startsWith)
{
// Arrange
Data::MappedName mappedName;
// Act & Assert
EXPECT_EQ(mappedName.startsWith(nullptr), false);
EXPECT_EQ(mappedName.startsWith(QByteArray()), true);
EXPECT_EQ(mappedName.startsWith(""), true);
EXPECT_EQ(mappedName.startsWith(std::string("")), true);
EXPECT_EQ(mappedName.startsWith("WASD"), false);
// Arrange
mappedName.append("TEST");
// Act & Assert
EXPECT_EQ(mappedName.startsWith(nullptr), false);
EXPECT_EQ(mappedName.startsWith(QByteArray()), true);
EXPECT_EQ(mappedName.startsWith("TEST"), true);
EXPECT_EQ(mappedName.startsWith(std::string("TEST")), true);
EXPECT_EQ(mappedName.startsWith("WASD"), false);
}
TEST(MappedName, hash)
{
// Arrange
Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST");
// Act & Assert
EXPECT_EQ(mappedName.hash(), qHash(QByteArray("TEST"), qHash(QByteArray("POSTFIXTEST"))));
}
// NOLINTEND(readability-magic-numbers)