equal
deleted
inserted
replaced
|
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() |