Commit ebf43877 authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 6b9ed5c7
......@@ -52,7 +52,7 @@ The following example illustrates topology encoding represented by string
|| |7|8|9| B-B7,8,9 represents empty Bucket() and Bucket(7,8,9)
Topology encoding specification follows:
Topology encoding specification:
A Tree is encoded by depth-order traversal, delimiting layers with "/".
Inside a layer Tree and Bucket nodes are signalled as
......@@ -71,8 +71,8 @@ represented as
"T-T1,3-B4,5" ; layer with Tree([]), Tree([1,3]) and Bucket([4,5])
XXX layer -> layer
A layer consists of nodes that are followed by node-node links from upper layer
in left-to-right order.
"""
from __future__ import print_function, absolute_import
......@@ -181,6 +181,14 @@ def StructureOf(node):
# See top-level docstring for what topology is.
def TopoEncode(tree):
assert isinstance(tree, Tree)
topo = 'zzz' # XXX
if 1: # debug
t2 = TopoDecode(topo)
if t2 != tree:
panic("BUG: TopoEncode: D(E(·)) != identity\n· = %s\n D(E(·) = %s" % (tree, t2))
return topo
# TopoDecode decodes topology-encoded text into Tree structure.
......
......@@ -75,9 +75,23 @@ def test_structureOf():
def test_topoEncoding():
1/0
T = xbtree.Tree
B = xbtree.Bucket
def X(tree):
topo = xbtree.TopoEncode(tree)
t2 = xbtree.TopoDecode(topo)
assert t2 == tree
return topo
assert X(T([], B())) == 'T/B'
assert X(T([], B(1))) == 'T/B1'
assert X(T([], B(1,3))) == 'T/B1,3'
assert X(T([], T([], B()))) == 'T/T/B'
#assert X(T(
def test_AllStructs():
def test_allStructs():
T = xbtree.Tree
B = xbtree.Bucket
def X(keys, maxdepth, maxsplit):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment