From aaaf404f08b05c2c3a19c55755a2ef673ce01d1c Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauldmccarthy@gmail.com>
Date: Wed, 26 Jul 2017 17:36:52 +0100
Subject: [PATCH] Regression test for skipUnchanged

---
 tests/test_memoize.py | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/tests/test_memoize.py b/tests/test_memoize.py
index 63ce1a267..09003acee 100644
--- a/tests/test_memoize.py
+++ b/tests/test_memoize.py
@@ -5,6 +5,7 @@
 # Author: Paul McCarthy <pauldmccarthy@gmail.com>
 #
 
+import collections
 import six
 
 import numpy as np
@@ -90,11 +91,7 @@ def test_skipUnchanged():
     """
     """
 
-    timesCalled = {
-        'key1' : 0,
-        'key2' : 0,
-        'key3' : 0,
-    }
+    timesCalled = collections.defaultdict(lambda: 0)
 
     def setter(name, value):
         timesCalled[name] = timesCalled[name] + 1
@@ -165,6 +162,22 @@ def test_skipUnchanged():
     assert timesCalled['key2'] == 5
     assert timesCalled['key3'] == 5
 
+    # Regression - zero
+    # sized numpy arrays
+    # could previously be
+    # tested incorrectly
+    # because e.g.
+    #
+    # np.all(np.zeros((0, 3)), np.ones((1, 3))
+    #
+    # evaluates to True
+    wrapped('key4', np.zeros((0, 4)))
+    assert timesCalled['key4'] == 1
+    wrapped('key4', np.zeros((1, 4)))
+    assert timesCalled['key4'] == 2
+
+
+
 
 def test_Instanceify():
 
-- 
GitLab