File: test_lru_cache.py

package info (click to toggle)
python-pyqtgraph 0.11.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 4,684 kB
  • sloc: python: 45,678; makefile: 115; ansic: 40
file content (50 lines) | stat: -rw-r--r-- 1,191 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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.items(accessTime=True))
    lru[2] = 2
    assert [(1, 1), (2, 2)] == list(lru.items(accessTime=True))

    del lru[2]
    assert [(1, 1), ] == list(lru.items(accessTime=True))

    lru[2] = 2
    assert [(1, 1), (2, 2)] == list(lru.items(accessTime=True))

    _a = lru[1]
    assert [(2, 2), (1, 1)] == list(lru.items(accessTime=True))

    _a = lru[2]
    assert [(1, 1), (2, 2)] == list(lru.items(accessTime=True))

    assert lru.get(2) == 2
    assert lru.get(3) == None
    assert [(1, 1), (2, 2)] == list(lru.items(accessTime=True))

    lru.clear()
    assert [] == list(lru.items())


if __name__ == '__main__':
    testLRU()