scripts/chg-len.py
author Peter Kovacs <kpeter@inf.elte.hu>
Mon, 12 Jan 2009 07:52:48 +0100
changeset 463 a2fd8b8d0b30
parent 376 4b2382fd80ef
child 733 abf31e4af617
permissions -rwxr-xr-x
Greatly extend and improve the test file for adaptors (#67)

- Add concept checks for the alterable, extendable, erasable
and clearable adaptors.
- Add test cases for modifying the underlying graphs through adaptors
whenever it is possible.
- Check the conversions between Node, Arc and Edge types.
- Add more test cases for the adaptor-specific functions and maps:
enable(), disable(), status(), forward(), backward(), CombinedArcMap,
CombinedNodeMap, ResidualCapacity etc.
- Use checkGraphIncEdgeArcLists() to simplify the test cases for
undirected graphs.
- Add test cases that use static graph structure (GridGraph) with
several adaptors combined.
- Add comments for the test cases.
     1 #! /usr/bin/env python
     2 
     3 import sys
     4 
     5 from mercurial import ui, hg
     6 from mercurial import util
     7 
     8 util.rcpath = lambda : []
     9 
    10 if len(sys.argv)>1 and sys.argv[1] in ["-h","--help"]:
    11     print """
    12 This utility just prints the length of the longest path
    13 in the revision graph from revison 0 to the current one.
    14 """
    15     exit(0)
    16 
    17 u = ui.ui()
    18 r = hg.repository(u, ".")
    19 N = r.changectx(".").rev()
    20 lengths=[0]*(N+1)
    21 for i in range(N+1):
    22     p=r.changectx(i).parents()
    23     if p[0]:
    24         p0=lengths[p[0].rev()]
    25     else:
    26         p0=-1
    27     if len(p)>1 and p[1]:
    28         p1=lengths[p[1].rev()]
    29     else:
    30         p1=-1
    31     lengths[i]=max(p0,p1)+1
    32 print lengths[N]