SkTDynamicHash
  - add validate()
  - make add() and remove() strict
  - fill in maybeShrink()
  - make grow and shrink thresholds configurable.
  - fix issue where we were getting filled with deleted items - we need to count them as occupied when determining if we should grow

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/22571010

git-svn-id: http://skia.googlecode.com/svn/trunk@10677 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tests/DynamicHashTest.cpp b/tests/DynamicHashTest.cpp
index 4a8c3a0..2425ea2 100644
--- a/tests/DynamicHashTest.cpp
+++ b/tests/DynamicHashTest.cpp
@@ -36,23 +36,23 @@
     Entry d = { 4, 5.0 };
     Entry e = { 5, 6.0 };
 
-    Hash hash(0);
-    ASSERT(hash.capacity() == 1);
+    Hash hash(4);
+    ASSERT(hash.capacity() == 4);
 
     hash.add(&a);
-    ASSERT(hash.capacity() == 2);
+    ASSERT(hash.capacity() == 4);
 
     hash.add(&b);
     ASSERT(hash.capacity() == 4);
 
     hash.add(&c);
-    ASSERT(hash.capacity() == 8);
+    ASSERT(hash.capacity() == 4);
 
     hash.add(&d);
     ASSERT(hash.capacity() == 8);
 
     hash.add(&e);
-    ASSERT(hash.capacity() == 16);
+    ASSERT(hash.capacity() == 8);
 
     ASSERT(hash.count() == 5);
 }
@@ -61,20 +61,12 @@
     Hash hash;
     Entry a = { 1, 2.0 };
     Entry b = { 2, 3.0 };
-    Entry c = { 1, 1.0 };
 
     ASSERT(hash.count() == 0);
     hash.add(&a);
     ASSERT(hash.count() == 1);
     hash.add(&b);
     ASSERT(hash.count() == 2);
-    hash.add(&c);  // Overwrites a.
-    ASSERT(hash.count() == 2);
-
-    // Make sure the hash didn't modify the entries we inserted when overwriting.
-    ASSERT(a.value == 2.0);
-    ASSERT(b.value == 3.0);
-    ASSERT(c.value == 1.0);
 }
 
 static void test_lookup(skiatest::Reporter* reporter) {
diff --git a/tests/ImageCacheTest.cpp b/tests/ImageCacheTest.cpp
index 947ece1..877591a 100644
--- a/tests/ImageCacheTest.cpp
+++ b/tests/ImageCacheTest.cpp
@@ -48,14 +48,14 @@
 
     // stress test, should trigger purges
     for (size_t i = 0; i < COUNT * 100; ++i) {
+        scale += 1;
+
         SkBitmap tmp;
 
         make_bm(&tmp, DIM, DIM);
         id = cache.addAndLock(bm[0], scale, scale, tmp);
         REPORTER_ASSERT(reporter, NULL != id);
         cache.unlock(id);
-
-        scale += 1;
     }
 
     cache.setByteLimit(0);