Moved lru_cache to util, test to util/tests

This commit is contained in:
Luke Campagnola 2014-03-05 09:16:53 -05:00
parent dad001b9d4
commit dcb2c42179
4 changed files with 50 additions and 58 deletions

View File

View File

@ -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()

View File

@ -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()