def test_print(self): m1 = Module('a', ModuleType.HARD, Dimensions(1, 1), Vector2(0, 0)) m2 = Module('b', ModuleType.HARD, Dimensions(1, 1), Vector2(0, 0)) n2 = Node(m2) n1 = Node(m1, right=n2) t = Tree(n1, [n1, n2]) t.print()
def test_insert3(self): modules = [Module(str(i), ModuleType.HARD, Dimensions(100, 100), Vector2(0, 0)) for i in range(20)] t = TreeBuilder.random_tree(modules, seed=1) random.seed(1) n = Node(Module(str(21), ModuleType.HARD, Dimensions(100, 100), Vector2(0, 0))) p = None insertLeft = False print(f"inserting node {n.id} as root") logging.getLogger("pyfloorplanner").setLevel(logging.DEBUG) t.nodes.append(n) t.insert(n, p, insertLeft)
def test_from_modules(self): modules = [ Module(str(i), ModuleType.HARD, Dimensions(100, 100), Vector2(0, 0)) for i in range(20) ] t = TreeBuilder.random_tree(modules, seed=1) t.print()
def test_move(self): modules = [Module(str(i), ModuleType.HARD, Dimensions(100, 100), Vector2(0, 0)) for i in range(20)] t = TreeBuilder.random_tree(modules, seed=1) random.seed(1) logging.getLogger("pyfloorplanner").setLevel(logging.DEBUG) t.move()
def test_remove_root(self): modules = [Module(str(i), ModuleType.HARD, Dimensions(100, 100), Vector2(0, 0)) for i in range(20)] t = TreeBuilder.random_tree(modules, seed=1) random.seed(2) n = next(x for x in t.nodes if x.id == 19) print(f"removing node {n.id}") logging.getLogger("pyfloorplanner").setLevel(logging.DEBUG) t.remove(n)
def test_swap_descendant_root(self): modules = [Module(str(i), ModuleType.HARD, Dimensions(100, 100), Vector2(0, 0)) for i in range(20)] t = TreeBuilder.random_tree(modules, seed=1) random.seed(1) logging.getLogger("pyfloorplanner").setLevel(logging.DEBUG) u = next(x for x in t.nodes if x.id == 18) v = next(x for x in t.nodes if x.id == 19) t.apply(Swap(t, u, v))
def test_calc_area(self): modules = [Module(str(i), ModuleType.HARD, Dimensions(100, 100), Vector2(0, 0)) for i in range(20)] t = TreeBuilder.random_tree(modules, seed=1) random.seed(1) print('T after construction') t.print() t.calc_area() fp = Floorplan(t) fp.plot()
def test_plot(self, seed=3): modules = [ Module(str(i), ModuleType.HARD, Dimensions(100, 100), Vector2(0, 0)) for i in range(10) ] t = TreeBuilder.random_tree(modules, seed=seed) random.seed(1) t.calc_area() fp = Floorplan(t) fp.plot(draw_tree=True, draw_contour=True, contour_width=5)
def test_clone(self): modules = [Module(str(i), ModuleType.HARD, Dimensions(100, 100), Vector2(0, 0)) for i in range(20)] t = TreeBuilder.random_tree(modules, seed=1) random.seed(2) n = next(x for x in t.nodes if x.id == 18) print(f"removing node {n.id}") t_clone = t.clone() print('T before modification') t.print() t.remove(n) print('T after modification') t.print() print('T clone') t_clone.print()
def module(self, module_elements): # Filter none values module_elements = [i for i in module_elements if i is not None] name = str(module_elements[0]) spec: ModuleSpec = module_elements[1] return Module(name, spec.moduleType, spec.dimensions, Vector2(0, 0))