diff options
author | robertphillips <robertphillips@google.com> | 2014-07-20 09:40:00 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-07-20 09:40:00 -0700 |
commit | 3d533ac917eaadf2fb3561f57d7266d8c0e665fd (patch) | |
tree | e1a710cf8756032da254ec484a4bb6128e61086d /tests/DynamicHashTest.cpp | |
parent | 249171e7d29b5559f3eefe9dbd437030bfad3fda (diff) |
Replace GrTHash with SkTDynamicHash
Mike: SkTDynamicHash changes
Brian: Ganesh changes
This removes three instances of GrTHash leaving the ones in GrTextStrike.h
R=mtklein@google.com, bsalomon@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/402693003
Diffstat (limited to 'tests/DynamicHashTest.cpp')
-rw-r--r-- | tests/DynamicHashTest.cpp | 53 |
1 files changed, 48 insertions, 5 deletions
diff --git a/tests/DynamicHashTest.cpp b/tests/DynamicHashTest.cpp index b2da6f3888..4a5bb850f8 100644 --- a/tests/DynamicHashTest.cpp +++ b/tests/DynamicHashTest.cpp @@ -136,12 +136,12 @@ DEF_TEST(DynamicHash_remove, reporter) { ASSERT(hash.find(5)->value == 3.0); } -DEF_TEST(DynamicHash_iterator, reporter) { +template<typename T> static void TestIter(skiatest::Reporter* reporter) { Hash hash; int count = 0; // this should fall out of loop immediately - for (Hash::Iter iter(&hash); !iter.done(); ++iter) { + for (T iter(&hash); !iter.done(); ++iter) { ++count; } ASSERT(0 == count); @@ -158,7 +158,7 @@ DEF_TEST(DynamicHash_iterator, reporter) { // should see all 3 unique keys when iterating over hash count = 0; int keys[3] = {0, 0, 0}; - for (Hash::Iter iter(&hash); !iter.done(); ++iter) { + for (T iter(&hash); !iter.done(); ++iter) { int key = (*iter).key; keys[count] = key; ASSERT(hash.find(key) != NULL); @@ -172,8 +172,8 @@ DEF_TEST(DynamicHash_iterator, reporter) { // should see 2 unique keys when iterating over hash that aren't 1 hash.remove(1); count = 0; - memset(keys,0,sizeof(keys)); - for (Hash::Iter iter(&hash); !iter.done(); ++iter) { + memset(keys, 0, sizeof(keys)); + for (T iter(&hash); !iter.done(); ++iter) { int key = (*iter).key; keys[count] = key; ASSERT(key != 1); @@ -183,3 +183,46 @@ DEF_TEST(DynamicHash_iterator, reporter) { ASSERT(2 == count); ASSERT(keys[0] != keys[1]); } + +DEF_TEST(DynamicHash_iterator, reporter) { + TestIter<Hash::Iter>(reporter); + TestIter<Hash::ConstIter>(reporter); +} + +static void TestResetOrRewind(skiatest::Reporter* reporter, bool testReset) { + Hash hash; + Entry a = { 1, 2.0 }; + Entry b = { 2, 3.0 }; + + ASSERT(hash.capacity() == 0); + hash.add(&a); + hash.add(&b); + ASSERT(hash.count() == 2); + ASSERT(hash.capacity() == 4); + + if (testReset) { + hash.reset(); + ASSERT(hash.capacity() == 0); + } else { + hash.rewind(); + ASSERT(hash.capacity() == 4); + } + ASSERT(hash.count() == 0); + + // make sure things still work + hash.add(&a); + hash.add(&b); + ASSERT(hash.count() == 2); + ASSERT(hash.capacity() == 4); + + ASSERT(hash.find(1) != NULL); + ASSERT(hash.find(2) != NULL); +} + +DEF_TEST(DynamicHash_reset, reporter) { + TestResetOrRewind(reporter, true); +} + +DEF_TEST(DynamicHash_rewind, reporter) { + TestResetOrRewind(reporter, false); +} |