def combinable_paths_no_loops(draw):
"""Makes varying-length paths, but no loops."""
path_points = draw(lists(ipoints, min_size=2, max_size=200, unique_by=tuple))
rand = draw(randoms())
paths = [[]]
length = rand.randint(2, 4)
for pt in path_points:
paths[-1].append(pt)
length -= 1
if length == 0:
paths.append([])
length = rand.randint(2, 4)
joinable = (rand.random() > .5)
if joinable:
paths[-1].append(pt)
if len(paths[-1]) < 2:
paths.pop()
rand.shuffle(paths)
return [Path(p) for p in paths]
评论列表
文章目录