Mercurial > hg
annotate tests/test-lrucachedict.py @ 23396:6a254a2dd37c
merge: separate out "both created" cases
When 'f' is not in 'ma', 'a' will be 'nullid' and all the if/elif
conditions that check whether some one nodeid is equal to 'a' will
fail, and the else-clause will instead apply. We can make that more
explicit by creating a separate 'm' action for the case where 'a' is
'nullid'. While it does mean copying some code, perhaps it makes it a
little clearer which codepaths are possible, and which cases the
"Note:" in the code refers to. It also lets us make the debug action
messages a little more specific.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 24 Nov 2014 16:16:34 -0800 |
parents | 887ffa22fd0d |
children | 45d996a566d7 |
rev | line source |
---|---|
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 | |
19710
887ffa22fd0d
lrucachedict: implement clear()
Siddharth Agarwal <sid0@fb.com>
parents:
18603
diff
changeset
|
34 d.clear() |
887ffa22fd0d
lrucachedict: implement clear()
Siddharth Agarwal <sid0@fb.com>
parents:
18603
diff
changeset
|
35 printifpresent(d, ['b', 'c', 'd', 'e', 'f']) |
887ffa22fd0d
lrucachedict: implement clear()
Siddharth Agarwal <sid0@fb.com>
parents:
18603
diff
changeset
|
36 |
18603 | 37 if __name__ == '__main__': |
38 test_lrucachedict() |