From d5974bb82419fd8488d2eb7aa0fa70f57d6e4c0a Mon Sep 17 00:00:00 2001 From: Damimani Date: Fri, 6 Nov 2026 21:57:42 +0100 Subject: [PATCH] moar tests --- feladat5/UnitTest1/UnitTest1.cpp | 92 +++++++++++++++++++++++++++++++- feladat5/feladat5/CMyString.cpp | 15 +++++- 2 files changed, 104 insertions(+), 3 deletions(-) diff --git a/feladat5/UnitTest1/UnitTest1.cpp b/feladat5/UnitTest1/UnitTest1.cpp index 55c9c7e..28e7d7d 100644 --- a/feladat5/UnitTest1/UnitTest1.cpp +++ b/feladat5/UnitTest1/UnitTest1.cpp @@ -185,6 +185,38 @@ namespace UnitTest1 } } } + TEST_METHOD(EqualOperatorTests) { + CMyString preps[]{ + CMyString(), + CMyString("testtesttest"), + }; + CMyString strs[]{ + CMyString("test"), + CMyString("test"), + }; + int expected[][2] = { + { 4, 10 }, + { 4, 13 }, + }; + int testcount = sizeof(expected) / (sizeof(int) * 2); + for (size_t i = 0; i < testcount; i++) + { + try + { + CMyString res = preps[i]; + res = strs[i]; + Assert::AreEqual(expected[i][0], (int)res.size()); + Assert::AreEqual(expected[i][1], (int)res.capacity()); + Assert::AreEqual(strs[i].c_str(), res.c_str()); + } + catch (...) + { + Assert::IsTrue(false); + } + } + CMyString str1 = CMyString("test"); + CMyString str2 = str1; + } TEST_METHOD(GetAtTests) { CMyString str[]{ @@ -308,7 +340,65 @@ namespace UnitTest1 } TEST_METHOD(EraseTests) { - //TODO + CMyString str[]{ + CMyString(), + CMyString("test"), + CMyString("test"), + CMyString("test"), + CMyString("test"), + CMyString('a', 10), + }; + int pos[] = { + 0, + 4, + -1, + 3, + 3, + 3, + }; + int cnt[] = { + 1, + 1, + 1, + 0, + 1, + 1, + }; + char* text[] = { + '\0', + '\0', + '\0', + "test", + "tes", + "aaaaaaaaa", + }; + int testcount = sizeof(pos) / sizeof(int); + for (size_t i = 0; i < testcount; i++) + { + try + { + str[i].erase(pos[i], cnt[i]); + Assert::AreEqual(text[i], str[i].c_str()); + } + catch (const CMyStringException& e) + { + if (i < 3) + { + Assert::AreEqual(CMyStringException::ErrOutOfRange, e.what()); + } + else + { + Assert::IsTrue(false); + } + } + catch (...) + { + Assert::IsTrue(false); + } + } + } + TEST_METHOD(ShrinkToFitTests) { + } }; } diff --git a/feladat5/feladat5/CMyString.cpp b/feladat5/feladat5/CMyString.cpp index 83dc428..95d6cb5 100644 --- a/feladat5/feladat5/CMyString.cpp +++ b/feladat5/feladat5/CMyString.cpp @@ -147,9 +147,20 @@ void CMyString::erase(size_t pos, size_t count) { { count = m_nDataLength - pos; } - for (size_t i = 0; i < count; i++) + size_t i; + for (i = 0; i < count; i++) { - m_pchData[pos + i] = '\0'; + m_pchData[pos + i] = ' '; + } + for (size_t j = pos; j < m_nDataLength; j++) + { + if (!m_pchData[j + i]) + { + m_pchData[j] = '\0'; + m_nDataLength = j; + break; + } + m_pchData[j] = m_pchData[j + i]; } } bool CMyString::empty() const {