diff --git a/pyqtgraph/util/__init__.py b/pyqtgraph/util/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/pyqtgraph/lru_cache.py b/pyqtgraph/util/lru_cache.py similarity index 100% rename from pyqtgraph/lru_cache.py rename to pyqtgraph/util/lru_cache.py diff --git a/pyqtgraph/util/tests/test_lru_cache.py b/pyqtgraph/util/tests/test_lru_cache.py new file mode 100644 index 0000000000000000000000000000000000000000..c0cf9f8aaaada8a1168ca1be55208457903cd86b --- /dev/null +++ b/pyqtgraph/util/tests/test_lru_cache.py @@ -0,0 +1,50 @@ +from pyqtgraph.util.lru_cache import LRUCache + +def testLRU(): + lru = LRUCache(2, 1) + # check twice + checkLru(lru) + checkLru(lru) + +def checkLru(lru): + lru[1] = 1 + lru[2] = 2 + lru[3] = 3 + + assert len(lru) == 2 + assert set([2, 3]) == set(lru.keys()) + assert set([2, 3]) == set(lru.values()) + + lru[2] = 2 + assert set([2, 3]) == set(lru.values()) + + lru[1] = 1 + set([2, 1]) == set(lru.values()) + + #Iterates from the used in the last access to others based on access time. + assert [(2, 2), (1, 1)] == list(lru.iteritems(accessTime=True)) + lru[2] = 2 + assert [(1, 1), (2, 2)] == list(lru.iteritems(accessTime=True)) + + del lru[2] + assert [(1, 1), ] == list(lru.iteritems(accessTime=True)) + + lru[2] = 2 + assert [(1, 1), (2, 2)] == list(lru.iteritems(accessTime=True)) + + _a = lru[1] + assert [(2, 2), (1, 1)] == list(lru.iteritems(accessTime=True)) + + _a = lru[2] + assert [(1, 1), (2, 2)] == list(lru.iteritems(accessTime=True)) + + assert lru.get(2) == 2 + assert lru.get(3) == None + assert [(1, 1), (2, 2)] == list(lru.iteritems(accessTime=True)) + + lru.clear() + assert [] == list(lru.iteritems()) + + +if __name__ == '__main__': + testLRU() diff --git a/tests/test.py b/tests/test.py deleted file mode 100644 index 9821f8212447f2bd8491122de325610ca495227d..0000000000000000000000000000000000000000 --- a/tests/test.py +++ /dev/null @@ -1,58 +0,0 @@ -import unittest -import os, sys -## make sure this instance of pyqtgraph gets imported first -sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) - -## all tests should be defined with this class so we have the option to tweak it later. -class TestCase(unittest.TestCase): - - def testLRU(self): - from pyqtgraph.lru_cache import LRUCache - lru = LRUCache(2, 1) - - def CheckLru(): - lru[1] = 1 - lru[2] = 2 - lru[3] = 3 - - self.assertEqual(2, len(lru)) - self.assertSetEqual(set([2, 3]), set(lru.keys())) - self.assertSetEqual(set([2, 3]), set(lru.values())) - - lru[2] = 2 - self.assertSetEqual(set([2, 3]), set(lru.values())) - - lru[1] = 1 - self.assertSetEqual(set([2, 1]), set(lru.values())) - - #Iterates from the used in the last access to others based on access time. - self.assertEqual([(2, 2), (1, 1)], list(lru.iteritems(access_time=True))) - lru[2] = 2 - self.assertEqual([(1, 1), (2, 2)], list(lru.iteritems(access_time=True))) - - del lru[2] - self.assertEqual([(1, 1), ], list(lru.iteritems(access_time=True))) - - lru[2] = 2 - self.assertEqual([(1, 1), (2, 2)], list(lru.iteritems(access_time=True))) - - _a = lru[1] - self.assertEqual([(2, 2), (1, 1)], list(lru.iteritems(access_time=True))) - - _a = lru[2] - self.assertEqual([(1, 1), (2, 2)], list(lru.iteritems(access_time=True))) - - self.assertEqual(lru.get(2), 2) - self.assertEqual(lru.get(3), None) - self.assertEqual([(1, 1), (2, 2)], list(lru.iteritems(access_time=True))) - - lru.clear() - self.assertEqual([], list(lru.iteritems())) - - CheckLru() - - # Check it twice... - CheckLru() - -if __name__ == '__main__': - unittest.main() \ No newline at end of file