Mercurial > hg
annotate tests/test-ancestor.py.out @ 40959:d097dd0afc19
rust: translation of missingancestors
This is as direct as possible a translation of the ancestor.missingancestors
Python class in pure Rust. The goal for this changeset is to make it easy
to compare with the Python version.
We also add to Python tests the cases that helped us develop and debug
this implementation.
Some possible optimizations are marked along the way as TODO comments
Differential Revision: https://phab.mercurial-scm.org/D5416
author | Georges Racinet <gracinet@anybox.fr> |
---|---|
date | Fri, 30 Nov 2018 00:46:55 +0100 |
parents | bdb177923291 |
children |
rev | line source |
---|---|
40959
d097dd0afc19
rust: translation of missingancestors
Georges Racinet <gracinet@anybox.fr>
parents:
39536
diff
changeset
|
1 % removeancestorsfrom(), example 1 |
d097dd0afc19
rust: translation of missingancestors
Georges Racinet <gracinet@anybox.fr>
parents:
39536
diff
changeset
|
2 remaining (sorted): [5, 6, 8, 9] |
d097dd0afc19
rust: translation of missingancestors
Georges Racinet <gracinet@anybox.fr>
parents:
39536
diff
changeset
|
3 % removeancestorsfrom(), example 2 |
d097dd0afc19
rust: translation of missingancestors
Georges Racinet <gracinet@anybox.fr>
parents:
39536
diff
changeset
|
4 remaining (sorted): [11, 12, 13, 14] |
d097dd0afc19
rust: translation of missingancestors
Georges Racinet <gracinet@anybox.fr>
parents:
39536
diff
changeset
|
5 % removeancestorsfrom(), example 3 |
d097dd0afc19
rust: translation of missingancestors
Georges Racinet <gracinet@anybox.fr>
parents:
39536
diff
changeset
|
6 remaining (sorted): [3, 5] |
d097dd0afc19
rust: translation of missingancestors
Georges Racinet <gracinet@anybox.fr>
parents:
39536
diff
changeset
|
7 % missingancestors(), example 1 |
d097dd0afc19
rust: translation of missingancestors
Georges Racinet <gracinet@anybox.fr>
parents:
39536
diff
changeset
|
8 return [3, 7, 11] |
d097dd0afc19
rust: translation of missingancestors
Georges Racinet <gracinet@anybox.fr>
parents:
39536
diff
changeset
|
9 % missingancestors(), example 2 |
d097dd0afc19
rust: translation of missingancestors
Georges Racinet <gracinet@anybox.fr>
parents:
39536
diff
changeset
|
10 return [5, 10] |
d097dd0afc19
rust: translation of missingancestors
Georges Racinet <gracinet@anybox.fr>
parents:
39536
diff
changeset
|
11 % missingancestors(), example 3 |
d097dd0afc19
rust: translation of missingancestors
Georges Racinet <gracinet@anybox.fr>
parents:
39536
diff
changeset
|
12 return [3, 6, 9, 11] |
d097dd0afc19
rust: translation of missingancestors
Georges Racinet <gracinet@anybox.fr>
parents:
39536
diff
changeset
|
13 % removeancestorsfrom(), bigger graph |
d097dd0afc19
rust: translation of missingancestors
Georges Racinet <gracinet@anybox.fr>
parents:
39536
diff
changeset
|
14 Ok |
18091
f7f8159caad3
ancestor: add lazy membership testing to lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents:
18079
diff
changeset
|
15 % lazy ancestor set for [], stoprev = 0, inclusive = False |
23329
c6cd4b8b76f8
test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents:
22355
diff
changeset
|
16 membership: [] |
c6cd4b8b76f8
test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents:
22355
diff
changeset
|
17 iteration: [] |
18091
f7f8159caad3
ancestor: add lazy membership testing to lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents:
18079
diff
changeset
|
18 % lazy ancestor set for [11, 13], stoprev = 0, inclusive = False |
23329
c6cd4b8b76f8
test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents:
22355
diff
changeset
|
19 membership: [7, 8, 3, 4, 1, 0] |
39473
b6db2e80a9ce
ancestors: actually iterate over ancestors in topological order (issue5979)
Boris Feld <boris.feld@octobus.net>
parents:
23331
diff
changeset
|
20 iteration: [8, 7, 4, 3, 2, 1, 0] |
22355
731b2a90983b
test-ancestor: add a test for `ancestor` with ancestry within the initset
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18091
diff
changeset
|
21 % lazy ancestor set for [1, 3], stoprev = 0, inclusive = False |
23329
c6cd4b8b76f8
test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents:
22355
diff
changeset
|
22 membership: [1, 0] |
39473
b6db2e80a9ce
ancestors: actually iterate over ancestors in topological order (issue5979)
Boris Feld <boris.feld@octobus.net>
parents:
23331
diff
changeset
|
23 iteration: [1, 0] |
18091
f7f8159caad3
ancestor: add lazy membership testing to lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents:
18079
diff
changeset
|
24 % lazy ancestor set for [11, 13], stoprev = 0, inclusive = True |
23329
c6cd4b8b76f8
test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents:
22355
diff
changeset
|
25 membership: [11, 13, 7, 8, 3, 4, 1, 0] |
39474
a60dae060bc8
ancestors: ensure a consistent order even in the "inclusive" case
Boris Feld <boris.feld@octobus.net>
parents:
39473
diff
changeset
|
26 iteration: [13, 11, 8, 7, 4, 3, 2, 1, 0] |
18091
f7f8159caad3
ancestor: add lazy membership testing to lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents:
18079
diff
changeset
|
27 % lazy ancestor set for [11, 13], stoprev = 6, inclusive = False |
23329
c6cd4b8b76f8
test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents:
22355
diff
changeset
|
28 membership: [7, 8] |
39473
b6db2e80a9ce
ancestors: actually iterate over ancestors in topological order (issue5979)
Boris Feld <boris.feld@octobus.net>
parents:
23331
diff
changeset
|
29 iteration: [8, 7] |
18091
f7f8159caad3
ancestor: add lazy membership testing to lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents:
18079
diff
changeset
|
30 % lazy ancestor set for [11, 13], stoprev = 6, inclusive = True |
23329
c6cd4b8b76f8
test-ancestor: test iteration for lazyancestors
Siddharth Agarwal <sid0@fb.com>
parents:
22355
diff
changeset
|
31 membership: [11, 13, 7, 8] |
39474
a60dae060bc8
ancestors: ensure a consistent order even in the "inclusive" case
Boris Feld <boris.feld@octobus.net>
parents:
39473
diff
changeset
|
32 iteration: [13, 11, 8, 7] |
39475
431068d7e9db
ancestor: add test showing inconsistency between __iter__ and __contains__
Yuya Nishihara <yuya@tcha.org>
parents:
39474
diff
changeset
|
33 % lazy ancestor set for [11, 13], stoprev = 11, inclusive = True |
431068d7e9db
ancestor: add test showing inconsistency between __iter__ and __contains__
Yuya Nishihara <yuya@tcha.org>
parents:
39474
diff
changeset
|
34 membership: [11, 13] |
431068d7e9db
ancestor: add test showing inconsistency between __iter__ and __contains__
Yuya Nishihara <yuya@tcha.org>
parents:
39474
diff
changeset
|
35 iteration: [13, 11] |
431068d7e9db
ancestor: add test showing inconsistency between __iter__ and __contains__
Yuya Nishihara <yuya@tcha.org>
parents:
39474
diff
changeset
|
36 % lazy ancestor set for [11, 13], stoprev = 12, inclusive = True |
39476
7eadc9407867
ancestor: filter out initial revisions lower than stoprev
Yuya Nishihara <yuya@tcha.org>
parents:
39475
diff
changeset
|
37 membership: [13] |
39475
431068d7e9db
ancestor: add test showing inconsistency between __iter__ and __contains__
Yuya Nishihara <yuya@tcha.org>
parents:
39474
diff
changeset
|
38 iteration: [13] |
39536
bdb177923291
ancestor: optimize _lazyancestorsiter() for contiguous chains
Yuya Nishihara <yuya@tcha.org>
parents:
39476
diff
changeset
|
39 % lazy ancestor set for [10, 1], stoprev = 0, inclusive = True |
bdb177923291
ancestor: optimize _lazyancestorsiter() for contiguous chains
Yuya Nishihara <yuya@tcha.org>
parents:
39476
diff
changeset
|
40 membership: [2, 10, 4, 5, 0, 1] |
bdb177923291
ancestor: optimize _lazyancestorsiter() for contiguous chains
Yuya Nishihara <yuya@tcha.org>
parents:
39476
diff
changeset
|
41 iteration: [10, 5, 4, 2, 1, 0] |