From 3d533ac917eaadf2fb3561f57d7266d8c0e665fd Mon Sep 17 00:00:00 2001 From: robertphillips Date: Sun, 20 Jul 2014 09:40:00 -0700 Subject: 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 --- tests/DynamicHashTest.cpp | 53 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 5 deletions(-) (limited to 'tests/DynamicHashTest.cpp') 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 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(reporter); + TestIter(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); +} -- cgit v1.2.3