diff options
author | Dominick Allen <djallen@librehumanitas.org> | 2025-03-31 00:47:45 -0500 |
---|---|---|
committer | Dominick Allen <djallen@librehumanitas.org> | 2025-03-31 00:47:45 -0500 |
commit | c426110f24516f92ecb8a5374e2a281f2c79787a (patch) | |
tree | 3c77e1f7ec007d5dd7a444f651240b6ac7db8976 /test/test_hash_map.cpp | |
parent | 2e09b3020acb39430bc57a7481984fdfdbac5a12 (diff) |
Fix Vector bug.
Diffstat (limited to 'test/test_hash_map.cpp')
-rw-r--r-- | test/test_hash_map.cpp | 97 |
1 files changed, 40 insertions, 57 deletions
diff --git a/test/test_hash_map.cpp b/test/test_hash_map.cpp index 00c4693..aa0ba49 100644 --- a/test/test_hash_map.cpp +++ b/test/test_hash_map.cpp @@ -24,21 +24,39 @@ namespace fud { +Vector<String> testStrings() +{ + Vector<String> stringList{Vector<String>::withCapacity(9).takeOkay()}; + fudAssert(stringList.pushBack(String::makeFromCString("foo").takeOkay()) == FudStatus::Success); + fudAssert(stringList.pushBack(String::makeFromCString("bar").takeOkay()) == FudStatus::Success); + fudAssert(stringList.pushBack(String::makeFromCString("baz").takeOkay()) == FudStatus::Success); + fudAssert(stringList.pushBack(String::makeFromCString("qux").takeOkay()) == FudStatus::Success); + fudAssert(stringList.pushBack(String::makeFromCString("Tom").takeOkay()) == FudStatus::Success); + fudAssert(stringList.pushBack(String::makeFromCString("Dick").takeOkay()) == FudStatus::Success); + fudAssert(stringList.pushBack(String::makeFromCString("Harry").takeOkay()) == FudStatus::Success); + fudAssert(stringList.pushBack(String::makeFromCString("Alice").takeOkay()) == FudStatus::Success); + fudAssert(stringList.pushBack(String::makeFromCString("Bob").takeOkay()) == FudStatus::Success); + return stringList; +} + +Vector<StringView> testStringViews() +{ + Vector<StringView> stringList{Vector<StringView>::withCapacity(9).takeOkay()}; + fudAssert(stringList.pushBack(StringView::makeFromCString("foo")) == FudStatus::Success); + fudAssert(stringList.pushBack(StringView::makeFromCString("bar")) == FudStatus::Success); + fudAssert(stringList.pushBack(StringView::makeFromCString("baz")) == FudStatus::Success); + fudAssert(stringList.pushBack(StringView::makeFromCString("qux")) == FudStatus::Success); + fudAssert(stringList.pushBack(StringView::makeFromCString("Tom")) == FudStatus::Success); + fudAssert(stringList.pushBack(StringView::makeFromCString("Dick")) == FudStatus::Success); + fudAssert(stringList.pushBack(StringView::makeFromCString("Harry")) == FudStatus::Success); + fudAssert(stringList.pushBack(StringView::makeFromCString("Alice")) == FudStatus::Success); + fudAssert(stringList.pushBack(StringView::makeFromCString("Bob")) == FudStatus::Success); + return stringList; +} + TEST(FudHash, InsertMoveKeyMoveValue) { - auto stringList{ - Vector<String>::from( - NullOpt, - String::makeFromCString("foo").takeOkay(), - String::makeFromCString("bar").takeOkay(), - String::makeFromCString("baz").takeOkay(), - String::makeFromCString("qux").takeOkay(), - String::makeFromCString("Tom").takeOkay(), - String::makeFromCString("Dick").takeOkay(), - String::makeFromCString("Harry").takeOkay(), - String::makeFromCString("Alice").takeOkay(), - String::makeFromCString("Bob").takeOkay()) - .takeOkay()}; + auto stringList{testStrings()}; HashMap<int, String> mapInt2String{}; for (int index = 0; index < static_cast<int>(stringList.size()); ++index) { auto insertStatus = mapInt2String.insert(index * 1, String::from(stringList[index]).takeOkay()); @@ -55,19 +73,7 @@ TEST(FudHash, InsertMoveKeyMoveValue) TEST(FudHash, InsertMoveKeyCopyValue) { - auto stringList{ - Vector<String>::from( - NullOpt, - String::makeFromCString("foo").takeOkay(), - String::makeFromCString("bar").takeOkay(), - String::makeFromCString("baz").takeOkay(), - String::makeFromCString("qux").takeOkay(), - String::makeFromCString("Tom").takeOkay(), - String::makeFromCString("Dick").takeOkay(), - String::makeFromCString("Harry").takeOkay(), - String::makeFromCString("Alice").takeOkay(), - String::makeFromCString("Bob").takeOkay()) - .takeOkay()}; + auto stringList{testStrings()}; HashMap<String, int> mapString2Int{}; for (int index = 0; index < static_cast<int>(stringList.size()); ++index) { auto insertStatus = mapString2Int.insert(String::from(stringList[index]).takeOkay(), index * 1); @@ -85,19 +91,7 @@ TEST(FudHash, InsertMoveKeyCopyValue) TEST(FudHash, InsertCopyKeyMoveValue) { - auto stringList{ - Vector<String>::from( - NullOpt, - String::makeFromCString("foo").takeOkay(), - String::makeFromCString("bar").takeOkay(), - String::makeFromCString("baz").takeOkay(), - String::makeFromCString("qux").takeOkay(), - String::makeFromCString("Tom").takeOkay(), - String::makeFromCString("Dick").takeOkay(), - String::makeFromCString("Harry").takeOkay(), - String::makeFromCString("Alice").takeOkay(), - String::makeFromCString("Bob").takeOkay()) - .takeOkay()}; + auto stringList{testStrings()}; HashMap<int, String> mapInt2String{}; for (int index = 0; index < static_cast<int>(stringList.size()); ++index) { auto insertStatus = mapInt2String.insert(index, String::from(stringList[index]).takeOkay()); @@ -115,31 +109,20 @@ TEST(FudHash, InsertCopyKeyMoveValue) TEST(FudHash, InsertCopyKeyCopyValue) { - auto stringList{ - Vector<StringView>::from( - NullOpt, - StringView::makeFromCString("foo"), - StringView::makeFromCString("bar"), - StringView::makeFromCString("baz"), - StringView::makeFromCString("qux"), - StringView::makeFromCString("Tom"), - StringView::makeFromCString("Dick"), - StringView::makeFromCString("Harry"), - StringView::makeFromCString("Alice"), - StringView::makeFromCString("Bob")) - .takeOkay()}; + auto stringViewList{testStringViews()}; + HashMap<StringView, int> mapView2Int{}; - for (int index = 0; index < static_cast<int>(stringList.size()); ++index) { - auto insertStatus = mapView2Int.insert(stringList[index], index); + for (int index = 0; index < static_cast<int>(stringViewList.size()); ++index) { + auto insertStatus = mapView2Int.insert(stringViewList[index], index); EXPECT_EQ(insertStatus, FudStatus::Success); } - EXPECT_EQ(mapView2Int.size(), stringList.size()); + EXPECT_EQ(mapView2Int.size(), stringViewList.size()); EXPECT_GT(mapView2Int.capacity(), mapView2Int.size()); - for (int index = 0; index < static_cast<int>(stringList.size()); ++index) { + for (int index = 0; index < static_cast<int>(stringViewList.size()); ++index) { const int invalid = -1; - EXPECT_EQ(mapView2Int.getConstRef(stringList[index]).valueOr(invalid), index); + EXPECT_EQ(mapView2Int.getConstRef(stringViewList[index]).valueOr(invalid), index); } } |