18603
|
1 |
from mercurial import util
|
|
2 |
|
|
3 |
def printifpresent(d, xs):
|
|
4 |
for x in xs:
|
|
5 |
present = x in d
|
|
6 |
print "'%s' in d: %s" % (x, present)
|
|
7 |
if present:
|
|
8 |
print "d['%s']: %s" % (x, d[x])
|
|
9 |
|
|
10 |
def test_lrucachedict():
|
|
11 |
d = util.lrucachedict(4)
|
|
12 |
d['a'] = 'va'
|
|
13 |
d['b'] = 'vb'
|
|
14 |
d['c'] = 'vc'
|
|
15 |
d['d'] = 'vd'
|
|
16 |
|
|
17 |
# all of these should be present
|
|
18 |
printifpresent(d, ['a', 'b', 'c', 'd'])
|
|
19 |
|
|
20 |
# 'a' should be dropped because it was least recently used
|
|
21 |
d['e'] = 've'
|
|
22 |
printifpresent(d, ['a', 'b', 'c', 'd', 'e'])
|
|
23 |
|
|
24 |
# touch entries in some order (get or set).
|
|
25 |
d['e']
|
|
26 |
d['c'] = 'vc2'
|
|
27 |
d['d']
|
|
28 |
d['b'] = 'vb2'
|
|
29 |
|
|
30 |
# 'e' should be dropped now
|
|
31 |
d['f'] = 'vf'
|
|
32 |
printifpresent(d, ['b', 'c', 'd', 'e', 'f'])
|
|
33 |
|
|
34 |
if __name__ == '__main__':
|
|
35 |
test_lrucachedict()
|