/
lasersquad
/
DynamicArrays
Обзор
Документация
Войти
/
lasersquad
/
DynamicArrays
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
dynamicarrays/tests/THashStringCmpTest.cpp
145 строк
5 KB
lasersquad0
two new files with tests for THash are added
04 авг 2026, 14:53
04 авг 2026, 14:53
ae014e4
Код
Авторство
О чём код?
#include "gtest/gtest.h" #include "DynamicArrays.h" typedef std::wstring TestingType1; typedef std::wstring TestingType2; typedef THashBase<TestingType1, TestingType2, THArraySorted<TestingType1, CompareWStringNCase> > TestHash; TEST(THashStringCmp, EmptyHash1) { TestHash hash; EXPECT_EQ(hash.Count(), 0u); EXPECT_EQ(hash.GetKeys().Count(), 0u); EXPECT_EQ(hash.GetValues().Count(), 0u); EXPECT_EQ(0ul, hash.GetKeys().Count()); EXPECT_EQ(0ul, hash.GetValues().Count()); EXPECT_NO_THROW(hash.Clear()); EXPECT_NO_THROW(hash.ClearMem()); } TEST(THashStringCmp, EmptyHash2) { TestHash hash; EXPECT_THROW(hash.GetKey(0), THArrayException); EXPECT_THROW(hash.GetKey(1), THArrayException); EXPECT_THROW(hash.GetValue(_T("")), THArrayException); EXPECT_THROW(hash.GetValue(_T("1000")), THArrayException); EXPECT_NO_THROW(hash.Delete(_T(""))); EXPECT_NO_THROW(hash.Delete(_T("888"))); EXPECT_EQ(hash.GetValuePointer(_T("")), nullptr); EXPECT_EQ(hash.GetValuePointer(_T("44")), nullptr); } TEST(THashStringCmp, EmptyIndexOf) { TestHash hash; EXPECT_EQ(hash.IfExists(_T("")), false); EXPECT_EQ(hash.IfExists(_T("1")), false); EXPECT_EQ(hash.IfExists(_T("1234")), false); } TEST(THashStringCmp, SetValue) { TestHash hash; hash.SetValue(_T("A"), _T("B")); EXPECT_EQ(hash.IfExists(_T("A")), true); EXPECT_EQ(hash.IfExists(_T("0")), false); EXPECT_EQ(hash.IfExists(_T("B")), false); EXPECT_EQ(hash.GetValue(_T("A")), _T("B")); EXPECT_THROW(hash.GetValue(_T("0")), THArrayException); EXPECT_THROW(hash.GetValue(_T("2")), THArrayException); hash.SetValue(_T("1111111"), _T("2")); EXPECT_EQ(hash.IfExists(_T("A")), true); EXPECT_EQ(hash.IfExists(_T("0")), false); EXPECT_EQ(hash.IfExists(_T("B")), false); EXPECT_EQ(hash.IfExists(_T("111111")), false); EXPECT_EQ(hash.IfExists(_T("1111111")), true); EXPECT_EQ(hash.GetValue(_T("A")), _T("B")); EXPECT_THROW(hash.GetValue(_T("")), THArrayException); EXPECT_THROW(hash.GetValue(_T("B")), THArrayException); EXPECT_EQ(hash.Count(), 2u); hash.SetValue(_T("A"), _T("F")); EXPECT_EQ(hash.Count(), 2u); EXPECT_EQ(hash.IfExists(_T("A")), true); EXPECT_EQ(hash.IfExists(_T("")), false); EXPECT_EQ(hash.IfExists(_T("B")), false); EXPECT_EQ(hash.IfExists(_T("111111")), false); EXPECT_EQ(hash.IfExists(_T("1111111")), true); EXPECT_EQ(hash.GetValue(_T("A")), _T("F")); EXPECT_EQ(hash.GetValue(_T("1111111")), _T("2")); EXPECT_THROW(hash.GetValue(_T("")), THArrayException); EXPECT_THROW(hash.GetValue(_T("B")), THArrayException); } TEST(THashStringCmp, IndexOperatorWrite) { TestHash hash; hash[_T("AA")] = _T("BB"); EXPECT_EQ(hash.IfExists(_T("AA")), true); EXPECT_EQ(hash.IfExists(_T("A")), false); EXPECT_EQ(hash.IfExists(_T("BB")), false); EXPECT_EQ(hash.GetValue(_T("AA")), _T("BB")); EXPECT_EQ(hash[_T("AA")], _T("BB")); hash[_T("AA")] += 'B'; EXPECT_EQ(hash.GetValue(_T("AA")), _T("BBB")); EXPECT_EQ(hash[_T("AA")], _T("BBB")); EXPECT_THROW(hash.GetValue(_T("AAA")), THArrayException); EXPECT_THROW(hash.GetValue(_T("BBB")), THArrayException); hash.SetValue(_T("1111111"), _T("2")); EXPECT_EQ(hash.IfExists(_T("AA")), true); EXPECT_EQ(hash.IfExists(_T("A")), false); EXPECT_EQ(hash.IfExists(_T("BBB")), false); EXPECT_EQ(hash.IfExists(_T("BB")), false); EXPECT_EQ(hash.IfExists(_T("111111")), false); EXPECT_EQ(hash.IfExists(_T("1111111")), true); EXPECT_EQ(hash.GetValue(_T("AA")), _T("BBB")); EXPECT_EQ(hash.GetValue(_T("1111111")), _T("2")); EXPECT_THROW(hash.GetValue(_T("")), THArrayException); EXPECT_THROW(hash.GetValue(_T("2")), THArrayException); EXPECT_EQ(hash.Count(), 2u); hash[_T("AA")] += 'B'; EXPECT_EQ(hash.Count(), 2u); EXPECT_EQ(hash.IfExists(_T("A")), false); EXPECT_EQ(hash.IfExists(_T("AA")), true); EXPECT_EQ(hash.IfExists(_T("")), false); EXPECT_EQ(hash.IfExists(_T("B")), false); EXPECT_EQ(hash.IfExists(_T("BB")), false); EXPECT_EQ(hash.IfExists(_T("BBB")), false); EXPECT_EQ(hash.IfExists(_T("111111")), false); EXPECT_EQ(hash.IfExists(_T("1111111")), true); EXPECT_EQ(hash.GetValue(_T("AA")), _T("BBBB")); EXPECT_EQ(hash.GetValue(_T("1111111")), _T("2")); EXPECT_THROW(hash.GetValue(_T("A")), THArrayException); EXPECT_THROW(hash.GetValue(_T("BBB")), THArrayException); EXPECT_THROW(hash.GetValue(_T("FFFF")), THArrayException); EXPECT_THROW(hash.GetValue(_T("AB")), THArrayException); EXPECT_THROW(hash.GetValue(_T("AAA")), THArrayException); EXPECT_THROW(hash.GetValue(_T("BBBB")), THArrayException); EXPECT_EQ(hash.Count(), 2u); hash[_T("22")] += '2'; // increment of nonexisting value EXPECT_EQ(hash.Count(), 3u); EXPECT_EQ(hash.IfExists(_T("1")), false); EXPECT_EQ(hash.IfExists(_T("22")), true); EXPECT_EQ(hash.IfExists(_T("11")), false); EXPECT_EQ(hash[_T("22")], _T("2")); }