Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
 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()
Ejemplo n.º 4
0
    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()
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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))
Ejemplo n.º 7
0
    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()
Ejemplo n.º 8
0
    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)
Ejemplo n.º 9
0
    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()
Ejemplo n.º 10
0
 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))