1*e1fe3e4aSElliott Hughesfrom fontTools.misc.treeTools import build_n_ary_tree 2*e1fe3e4aSElliott Hughesimport pytest 3*e1fe3e4aSElliott Hughes 4*e1fe3e4aSElliott Hughes 5*e1fe3e4aSElliott Hughes@pytest.mark.parametrize( 6*e1fe3e4aSElliott Hughes "lst, n, expected", 7*e1fe3e4aSElliott Hughes [ 8*e1fe3e4aSElliott Hughes ([0], 2, [0]), 9*e1fe3e4aSElliott Hughes ([0, 1], 2, [0, 1]), 10*e1fe3e4aSElliott Hughes ([0, 1, 2], 2, [[0, 1], 2]), 11*e1fe3e4aSElliott Hughes ([0, 1, 2], 3, [0, 1, 2]), 12*e1fe3e4aSElliott Hughes ([0, 1, 2, 3], 2, [[0, 1], [2, 3]]), 13*e1fe3e4aSElliott Hughes ([0, 1, 2, 3], 3, [[0, 1, 2], 3]), 14*e1fe3e4aSElliott Hughes ([0, 1, 2, 3, 4], 3, [[0, 1, 2], 3, 4]), 15*e1fe3e4aSElliott Hughes ([0, 1, 2, 3, 4, 5], 3, [[0, 1, 2], [3, 4, 5]]), 16*e1fe3e4aSElliott Hughes (list(range(7)), 3, [[0, 1, 2], [3, 4, 5], 6]), 17*e1fe3e4aSElliott Hughes (list(range(8)), 3, [[0, 1, 2], [3, 4, 5], [6, 7]]), 18*e1fe3e4aSElliott Hughes (list(range(9)), 3, [[0, 1, 2], [3, 4, 5], [6, 7, 8]]), 19*e1fe3e4aSElliott Hughes (list(range(10)), 3, [[[0, 1, 2], [3, 4, 5], [6, 7, 8]], 9]), 20*e1fe3e4aSElliott Hughes (list(range(11)), 3, [[[0, 1, 2], [3, 4, 5], [6, 7, 8]], 9, 10]), 21*e1fe3e4aSElliott Hughes (list(range(12)), 3, [[[0, 1, 2], [3, 4, 5], [6, 7, 8]], [9, 10, 11]]), 22*e1fe3e4aSElliott Hughes (list(range(13)), 3, [[[0, 1, 2], [3, 4, 5], [6, 7, 8]], [9, 10, 11], 12]), 23*e1fe3e4aSElliott Hughes ( 24*e1fe3e4aSElliott Hughes list(range(14)), 25*e1fe3e4aSElliott Hughes 3, 26*e1fe3e4aSElliott Hughes [[[0, 1, 2], [3, 4, 5], [6, 7, 8]], [[9, 10, 11], 12, 13]], 27*e1fe3e4aSElliott Hughes ), 28*e1fe3e4aSElliott Hughes ( 29*e1fe3e4aSElliott Hughes list(range(15)), 30*e1fe3e4aSElliott Hughes 3, 31*e1fe3e4aSElliott Hughes [[[0, 1, 2], [3, 4, 5], [6, 7, 8]], [9, 10, 11], [12, 13, 14]], 32*e1fe3e4aSElliott Hughes ), 33*e1fe3e4aSElliott Hughes ( 34*e1fe3e4aSElliott Hughes list(range(16)), 35*e1fe3e4aSElliott Hughes 3, 36*e1fe3e4aSElliott Hughes [[[0, 1, 2], [3, 4, 5], [6, 7, 8]], [[9, 10, 11], [12, 13, 14], 15]], 37*e1fe3e4aSElliott Hughes ), 38*e1fe3e4aSElliott Hughes ( 39*e1fe3e4aSElliott Hughes list(range(23)), 40*e1fe3e4aSElliott Hughes 3, 41*e1fe3e4aSElliott Hughes [ 42*e1fe3e4aSElliott Hughes [[0, 1, 2], [3, 4, 5], [6, 7, 8]], 43*e1fe3e4aSElliott Hughes [[9, 10, 11], [12, 13, 14], [15, 16, 17]], 44*e1fe3e4aSElliott Hughes [[18, 19, 20], 21, 22], 45*e1fe3e4aSElliott Hughes ], 46*e1fe3e4aSElliott Hughes ), 47*e1fe3e4aSElliott Hughes ( 48*e1fe3e4aSElliott Hughes list(range(27)), 49*e1fe3e4aSElliott Hughes 3, 50*e1fe3e4aSElliott Hughes [ 51*e1fe3e4aSElliott Hughes [[0, 1, 2], [3, 4, 5], [6, 7, 8]], 52*e1fe3e4aSElliott Hughes [[9, 10, 11], [12, 13, 14], [15, 16, 17]], 53*e1fe3e4aSElliott Hughes [[18, 19, 20], [21, 22, 23], [24, 25, 26]], 54*e1fe3e4aSElliott Hughes ], 55*e1fe3e4aSElliott Hughes ), 56*e1fe3e4aSElliott Hughes ( 57*e1fe3e4aSElliott Hughes list(range(28)), 58*e1fe3e4aSElliott Hughes 3, 59*e1fe3e4aSElliott Hughes [ 60*e1fe3e4aSElliott Hughes [ 61*e1fe3e4aSElliott Hughes [[0, 1, 2], [3, 4, 5], [6, 7, 8]], 62*e1fe3e4aSElliott Hughes [[9, 10, 11], [12, 13, 14], [15, 16, 17]], 63*e1fe3e4aSElliott Hughes [[18, 19, 20], [21, 22, 23], [24, 25, 26]], 64*e1fe3e4aSElliott Hughes ], 65*e1fe3e4aSElliott Hughes 27, 66*e1fe3e4aSElliott Hughes ], 67*e1fe3e4aSElliott Hughes ), 68*e1fe3e4aSElliott Hughes (list(range(257)), 256, [list(range(256)), 256]), 69*e1fe3e4aSElliott Hughes (list(range(258)), 256, [list(range(256)), 256, 257]), 70*e1fe3e4aSElliott Hughes (list(range(512)), 256, [list(range(256)), list(range(256, 512))]), 71*e1fe3e4aSElliott Hughes (list(range(512 + 1)), 256, [list(range(256)), list(range(256, 512)), 512]), 72*e1fe3e4aSElliott Hughes ( 73*e1fe3e4aSElliott Hughes list(range(256**2)), 74*e1fe3e4aSElliott Hughes 256, 75*e1fe3e4aSElliott Hughes [list(range(k * 256, k * 256 + 256)) for k in range(256)], 76*e1fe3e4aSElliott Hughes ), 77*e1fe3e4aSElliott Hughes ], 78*e1fe3e4aSElliott Hughes) 79*e1fe3e4aSElliott Hughesdef test_build_n_ary_tree(lst, n, expected): 80*e1fe3e4aSElliott Hughes assert build_n_ary_tree(lst, n) == expected 81