DarkflameServer/tests/dCommonTests/TestLUWString.cpp
Aaron Kimbrell 08020cd86d
chore: cleanup LU(W)string writing (#1188)
* chore: cleanup LU(W)string writing
and add methods for reading
remove redunent "packet" from packet reading helpers
move write header to bitstreamutils since it's not packet related
add tests for reading/writing LU(W)Strings

* remove un-needed function defintions in header

* make reading and writing more efficient

* p

p

* quotes

* remove unneeded default

---------

Co-authored-by: David Markowitz <39972741+EmosewaMC@users.noreply.github.com>
2023-09-20 20:06:28 -05:00

122 lines
3.3 KiB
C++

#include <gtest/gtest.h>
#include "dCommonVars.h"
TEST(LUWString33Test, SerializeWriteTestOld) {
CBITSTREAM;
std::u16string testString;
for (int i = 0; i < 33; i++) testString += u'ü';
for (const auto& c : testString) bitStream.Write(c);
std::u16string result;
char16_t c;
while (bitStream.Read(c)) result += c;
ASSERT_EQ(result, testString);
}
TEST(LUWString33Test, SerializeWriteTestOldPartial) {
CBITSTREAM;
std::u16string testString;
for (int i = 0; i < 15; i++) testString += u'ü';
for (const auto& c : testString) bitStream.Write(c);
for (int i = 0; i < 18; i++) bitStream.Write<char16_t>(0);
std::u16string result;
char16_t c;
int nulls = 18;
while (bitStream.Read(c)){
if (c == 0) {
nulls--;
continue;
}
result += c;
}
ASSERT_EQ(nulls, 0);
ASSERT_EQ(result, testString);
}
TEST(LUWString33Test, SerializeWriteTestNew) {
CBITSTREAM;
std::u16string testString;
for (int i = 0; i < 33; i++) testString += u'ü';
bitStream.Write(LUWString(testString, 33));
std::u16string result;
char16_t c;
while (bitStream.Read(c)) result += c;
ASSERT_EQ(result, testString);
}
TEST(LUWString33Test, SerializeWriteTestNewPartial) {
CBITSTREAM;
std::u16string testString;
for (int i = 0; i < 15; i++) testString += u'ü';
bitStream.Write(LUWString(testString, 33));
std::u16string result;
char16_t c;
int nulls = 18;
while (bitStream.Read(c)){
if (c == 0) {
nulls--;
continue;
}
result += c;
}
ASSERT_EQ(nulls, 0);
ASSERT_EQ(result, testString);
}
TEST(LUWString33Test, SerializeReadTestOld) {
CBITSTREAM;
std::u16string testString;
for (int i = 0; i < 33; i++) testString += u'ü';
for (const auto& c : testString) bitStream.Write(c);
std::u16string result;
char16_t c;
while (bitStream.Read(c)) result += c;
ASSERT_EQ(bitStream.GetNumberOfUnreadBits(), 0);
ASSERT_EQ(result, testString);
}
TEST(LUWString33Test, SerializeReadTestOldPartial) {
CBITSTREAM;
std::u16string testString;
for (int i = 0; i < 15; i++) testString += u'ü';
for (const auto& c : testString) bitStream.Write(c);
for (int i = 0; i < 18; i++) bitStream.Write<char16_t>(0);
std::u16string result;
char16_t c;
int nulls = 18;
while (bitStream.Read(c)){
if (c == 0) {
nulls--;
continue;
}
result += c;
}
ASSERT_EQ(bitStream.GetNumberOfUnreadBits(), 0);
ASSERT_EQ(nulls, 0);
ASSERT_EQ(result, testString);
}
TEST(LUWString33Test, SerializeReadTestNew) {
CBITSTREAM;
std::u16string testString;
for (int i = 0; i < 33; i++) testString += u'ü';
bitStream.Write(LUWString(testString, 33));
LUWString result(33);
ASSERT_EQ(result.size, 33);
ASSERT_TRUE(bitStream.Read(result));
ASSERT_EQ(bitStream.GetNumberOfUnreadBits(), 0);
ASSERT_EQ(result.string, testString);
}
TEST(LUWString33Test, SerializeReadTestNewPartial) {
CBITSTREAM;
std::u16string testString;
for (int i = 0; i < 15; i++) testString += u'ü';
bitStream.Write(LUWString(testString, 33));
LUWString result(33);
ASSERT_EQ(result.size, 33);
ASSERT_TRUE(bitStream.Read(result));
ASSERT_EQ(bitStream.GetNumberOfUnreadBits(), 0);
ASSERT_EQ(result.string, testString);
}