Пример #1
0
 def test_overlapSpace(self):
     nodes = [Node(0, 50), Node(50, 50), Node(800, 50), Node(801, 50)]
     # should return 0 if the input is empty
     self.assertEqual(metrics.overlapSpace([]), 0)
     # should return space that nodes on the same layer overlaps on average
     self.assertEqual(metrics.overlapSpace(nodes), 49 / 4)
     self.assertEqual(metrics.overlapSpace([nodes, nodes]), 49 * 2 / 8)
Пример #2
0
 def test_createStub(self):
     n1 = Node(10, 10)
     stub = n1.createStub(5)
     self.assertIsNotNone(stub)
     self.assertEqual(stub.width, 5)
     self.assertEqual(n1.idealPos, stub.idealPos)
     self.assertEqual(n1.data, stub.data)
Пример #3
0
 def test_getRoot(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.getRoot(), n1)
     n2 = n1.createStub(5)
     self.assertEqual(n1.getRoot(), n2)
     n3 = n2.createStub(5)
     self.assertEqual(n1.getRoot(), n3)
Пример #4
0
 def test_createStub(self):
     n1 = Node(10, 10)
     stub = n1.createStub(5)
     self.assertIsNotNone(stub)
     self.assertEqual(stub.width, 5)
     self.assertEqual(n1.idealPos, stub.idealPos)
     self.assertEqual(n1.data, stub.data)
Пример #5
0
 def test_overlapWithPoint(self):
     n1 = Node(10, 10)
     self.assertFalse(n1.overlapWithPoint(4))
     self.assertTrue(n1.overlapWithPoint(5))
     self.assertTrue(n1.overlapWithPoint(10))
     self.assertTrue(n1.overlapWithPoint(15))
     self.assertFalse(n1.overlapWithPoint(16))
Пример #6
0
 def test_overflowSpace(self):
     nodes = [Node(1, 50), Node(-30, 50), Node(804, 50), Node(854, 50)]
     # should return 0 if both minPos and maxPos are not set
     self.assertEqual(metrics.overflowSpace(nodes), 0)
     # should return the amount of pixels that exceed boundary
     self.assertEqual(metrics.overflowSpace(nodes, 0), 74)
     self.assertEqual(metrics.overflowSpace(nodes, None, 800), 79)
     self.assertEqual(metrics.overflowSpace(nodes, 0, 800), 74 + 79)
Пример #7
0
 def test_displacement(self):
     nodes = [Node(1, 50), Node(2, 50), Node(804, 50), Node(854, 50)]
     # should return 0 if the input is empty
     self.assertEqual(metrics.displacement([]), 0)
     # should return sum of the displacements
     self.assertEqual(metrics.displacement(nodes), 0)
     nodes[0].currentPos = 10
     nodes[1].currentPos = 10
     self.assertEqual(metrics.displacement([nodes]), 17.0 / 4.0)
Пример #8
0
 def test_clone(self):
     n1 = Node(10, 11, "a")
     n1.currentPos = 20
     n1.layerIndex = 3
     n2 = n1.clone()
     self.assertEqual(n2.idealPos, 10)
     self.assertEqual(n2.width, 11)
     self.assertEqual(n2.data, "a")
     self.assertEqual(n2.currentPos, 20)
     self.assertEqual(n2.layerIndex, 3)
Пример #9
0
 def test_clone(self):
     n1 = Node(10, 11, 'a')
     n1.currentPos = 20
     n1.layerIndex = 3
     n2 = n1.clone()
     self.assertEqual(n2.idealPos, 10)
     self.assertEqual(n2.width, 11)
     self.assertEqual(n2.data, 'a')
     self.assertEqual(n2.currentPos, 20)
     self.assertEqual(n2.layerIndex, 3)
Пример #10
0
 def test_weightedAllocation(self):
     nodes = [Node(0, 50), Node(50, 50), Node(800, 50), Node(801, 50)]
     # should return 0 if the input is empty
     self.assertEqual(metrics.weightedAllocation([]), 0)
     # should return 0 if the output is in one row
     self.assertEqual(metrics.weightedAllocation(nodes), 0)
     # should return number of nodes weighted by layer index
     self.assertEqual(metrics.weightedAllocation([nodes, nodes]), 4)
     self.assertEqual(metrics.weightedAllocation([nodes, nodes, nodes]),
                      4 + 8)
Пример #11
0
 def test_overlapCount(self):
     nodes = [Node(0, 50), Node(50, 50), Node(800, 50), Node(801, 50)]
     # should return 0 if the input is empty
     self.assertEqual(metrics.overlapCount([]), 0)
     # should return number of times nodes on the same layer overlaps
     self.assertEqual(metrics.overlapCount(nodes), 1)
     self.assertEqual(metrics.overlapCount([nodes, nodes]), 2)
     # should take buffer into consideration
     self.assertEqual(metrics.overlapCount(nodes, 2), 2)
     self.assertEqual(metrics.overlapCount([nodes, nodes], 3), 4)
Пример #12
0
 def test_weightedAllocatedSpace(self):
     nodes = [Node(0, 50), Node(50, 50), Node(800, 50), Node(801, 50)]
     # should return 0 if the input is empty
     self.assertEqual(metrics.weightedAllocatedSpace([]), 0)
     # should return 0 if the output is in one row
     self.assertEqual(metrics.weightedAllocatedSpace(nodes), 0)
     # should return width of thed nodes weighted by layer index
     self.assertEqual(metrics.weightedAllocatedSpace([nodes, nodes]), 200)
     self.assertEqual(metrics.weightedAllocatedSpace([nodes, nodes, nodes]),
                      200 + 400)
Пример #13
0
 def test_overDensitySpace(self):
     nodes = [Node(1, 50), Node(2, 50), Node(804, 50), Node(854, 50)]
     # should return 0 if the density or layerWidth is not defined
     self.assertEqual(metrics.overDensitySpace([]), 0)
     self.assertEqual(metrics.overDensitySpace(nodes), 0)
     self.assertEqual(metrics.overDensitySpace(nodes, 0.75), 0)
     self.assertEqual(metrics.overDensitySpace(nodes, None, 1000), 0)
     # should return the amount of pixels exceeding specified density
     self.assertEqual(metrics.overDensitySpace(nodes, 0.75, 1000), 0)
     self.assertEqual(metrics.overDensitySpace(nodes, 0.1, 1000), 100)
     self.assertEqual(metrics.overDensitySpace([nodes, nodes], 0.1, 1000),
                      200)
Пример #14
0
 def test_displacement(self):
     n = Node(10, 10)
     self.assertEqual(n.displacement(), 0)
     n.currentPos = 20
     self.assertEqual(n.displacement(), -10)
     n.currentPos = 0
     self.assertEqual(n.displacement(), 10)
Пример #15
0
 def test_displacement(self):
     n = Node(10, 10)
     self.assertEqual(n.displacement(), 0)
     n.currentPos = 20
     self.assertEqual(n.displacement(), -10)
     n.currentPos = 0
     self.assertEqual(n.displacement(), 10)
Пример #16
0
 def test_overlapWithPoint(self):
     n1 = Node(10, 10)
     self.assertFalse(n1.overlapWithPoint(4))
     self.assertTrue(n1.overlapWithPoint(5))
     self.assertTrue(n1.overlapWithPoint(10))
     self.assertTrue(n1.overlapWithPoint(15))
     self.assertFalse(n1.overlapWithPoint(16))
Пример #17
0
 def test_getRoot(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.getRoot(), n1)
     n2 = n1.createStub(5)
     self.assertEqual(n1.getRoot(), n2)
     n3 = n2.createStub(5)
     self.assertEqual(n1.getRoot(), n3)
Пример #18
0
 def get_nodes(self):
     nodes = []
     for it in self.items:
         n = Node(self.timePos(it.data), it.width, data=it)
         nodes.append(n)
     for node in nodes:
         node.w = (node.data.width + self.options["labelPadding"]["left"] +
                   self.options["labelPadding"]["right"])
         node.h = (node.data.height + self.options["labelPadding"]["top"] +
                   self.options["labelPadding"]["bottom"])
         if self.options["direction"] in ["left", "right"]:
             node.h, node.w = node.w, node.h
             node.width = node.h
         else:
             node.width = node.w
     return nodes
Пример #19
0
 def get_nodes(self):
     nodes = []
     for it in self.items:
         n = Node(self.timePos(it.data), it.width, data=it)
         nodes.append(n)
     for node in nodes:
         node.w = (node.data.width + self.options['labelPadding']['left'] +
                 self.options['labelPadding']['right'])
         node.h = (node.data.height + self.options['labelPadding']['top'] +
                 self.options['labelPadding']['bottom'])
         if self.options['direction'] in ['left', 'right']:
             node.h, node.w = node.w, node.h
             node.width = node.h
         else:
             node.width = node.w
     return nodes
Пример #20
0
    def test_overlapWithNode(self):
        n1 = Node(10, 10)
        n2 = Node(19, 10)
        n3 = Node(20, 10)
        n4 = Node(21, 10)
        n5 = Node(22, 10)
        self.assertTrue(n1.overlapWithNode(n2))
        self.assertFalse(n1.overlapWithNode(n3))
        self.assertFalse(n1.overlapWithNode(n4))

        self.assertTrue(n1.overlapWithNode(n2, 2))
        self.assertTrue(n1.overlapWithNode(n3, 2))
        self.assertTrue(n1.overlapWithNode(n4, 2))
        self.assertFalse(n1.overlapWithNode(n5, 2))
Пример #21
0
 def test_moveToIdealPosition(self):
     n = Node(10, 10)
     n.currentPos = 20
     self.assertNotEqual(n.currentPos, n.idealPos)
     n.moveToIdealPosition()
     self.assertEqual(n.currentPos, n.idealPos)
Пример #22
0
 def test_removeStub(self):
     n1 = Node(10, 10)
     stub = n1.createStub(5)
     n1.removeStub()
     self.assertIsNone(n1.parent)
     self.assertIsNone(stub.child)
Пример #23
0
 def test_removeStub(self):
     n1 = Node(10, 10)
     stub = n1.createStub(5)
     n1.removeStub()
     self.assertIsNone(n1.parent)
     self.assertIsNone(stub.child)
Пример #24
0
 def test_currentLeft(self):
     n1 = Node(10, 10)
     n1.currentPos = 20
     self.assertEqual(n1.currentLeft(), 15)
Пример #25
0
 def test_idealLeft(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.idealLeft(), 5)
Пример #26
0
 def test_positionBefore(self):
     n1 = Node(10, 10)
     n2 = Node(19, 10)
     self.assertEqual(n1.positionBefore(n2), 9)
     self.assertEqual(n1.positionBefore(n2, 2), 7)
Пример #27
0
 def test_positionAfter(self):
     n1 = Node(10, 10)
     n2 = Node(19, 10)
     self.assertEqual(n1.positionAfter(n2), 29)
     self.assertEqual(n1.positionAfter(n2, 2), 31)
Пример #28
0
 def test_moveToIdealPosition(self):
     n = Node(10, 10)
     n.currentPos = 20
     self.assertNotEqual(n.currentPos, n.idealPos)
     n.moveToIdealPosition()
     self.assertEqual(n.currentPos, n.idealPos)
Пример #29
0
    def test_overlapWithNode(self):
        n1 = Node(10, 10)
        n2 = Node(19, 10)
        n3 = Node(20, 10)
        n4 = Node(21, 10)
        n5 = Node(22, 10)
        self.assertTrue(n1.overlapWithNode(n2))
        self.assertFalse(n1.overlapWithNode(n3))
        self.assertFalse(n1.overlapWithNode(n4))

        self.assertTrue(n1.overlapWithNode(n2, 2))
        self.assertTrue(n1.overlapWithNode(n3, 2))
        self.assertTrue(n1.overlapWithNode(n4, 2))
        self.assertFalse(n1.overlapWithNode(n5, 2))
Пример #30
0
 def test_getPathFromRoot(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.getPathFromRoot(), [n1])
     n2 = n1.createStub(5)
     n3 = n2.createStub(5)
     self.assertEqual(n1.getPathFromRoot(), [n3, n2, n1])
Пример #31
0
 def test_positionBefore(self):
     n1 = Node(10, 10)
     n2 = Node(19, 10)
     self.assertEqual(n1.positionBefore(n2), 9)
     self.assertEqual(n1.positionBefore(n2, 2), 7)
Пример #32
0
 def test_positionAfter(self):
     n1 = Node(10, 10)
     n2 = Node(19, 10)
     self.assertEqual(n1.positionAfter(n2), 29)
     self.assertEqual(n1.positionAfter(n2, 2), 31)
Пример #33
0
 def test_no_overlap(self):
     n1 = Node(10, 10)
     n2 = Node(30, 10)
     self.assertEqual(n1.distanceFrom(n2), 10)
Пример #34
0
 def test_currentRight(self):
     n1 = Node(10, 10)
     n1.currentPos = 20
     self.assertEqual(n1.currentRight(), 25)
Пример #35
0
 def test_currentLeft(self):
     n1 = Node(10, 10)
     n1.currentPos = 20
     self.assertEqual(n1.currentLeft(), 15)
Пример #36
0
 def test_idealRight(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.idealRight(), 15)
Пример #37
0
 def test_getLayerIndex(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.getLayerIndex(), 0)
     n1.layerIndex = 10
     self.assertEqual(n1.getLayerIndex(), 10)
Пример #38
0
 def test_estimateRequiredLayers_2(self):
     options = {
         "algorithm": "overlap",
         "layerWidth": 960,
         "density": 0.85,
         "nodeSpacing": 3,
         "stubWidth": 1,
     }
     nodes = [
         Node(1, 100),
         Node(2, 100),
         Node(3, 100),
         Node(3, 100),
         Node(3, 100),
         Node(304, 100),
         Node(454, 100),
         Node(454, 100),
         Node(454, 100),
         Node(804, 100),
         Node(804, 100),
         Node(804, 100),
         Node(804, 100),
         Node(854, 100),
         Node(854, 100),
     ]
     exp_out = 2
     dist = Distributor(options)
     self.assertEqual(exp_out, dist.estimateRequiredLayers(nodes))
Пример #39
0
 def test_getPathToRootLength(self):
     n4 = Node(854, 50)
     n4.currentPos = 800
     stub4 = n4.createStub()
     stub4.currentPos = 700
     self.assertEqual(n4.getPathToRootLength(), 254)
Пример #40
0
 def test_isStub(self):
     n1 = Node(10, 10)
     stub = n1.createStub(5)
     self.assertFalse(n1.isStub())
     self.assertTrue(stub.isStub())
Пример #41
0
 def test_no_overlap(self):
     n1 = Node(10, 10)
     n2 = Node(30, 10)
     self.assertEqual(n1.distanceFrom(n2), 10)
Пример #42
0
 def test_touching(self):
     n1 = Node(10, 10)
     n2 = Node(20, 10)
     self.assertEqual(n1.distanceFrom(n2), 0)
Пример #43
0
 def test_currentRight(self):
     n1 = Node(10, 10)
     n1.currentPos = 20
     self.assertEqual(n1.currentRight(), 25)
Пример #44
0
 def test_getPathFromRoot(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.getPathFromRoot(), [n1])
     n2 = n1.createStub(5)
     n3 = n2.createStub(5)
     self.assertEqual(n1.getPathFromRoot(), [n3, n2, n1])
Пример #45
0
 def test_idealRight(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.idealRight(), 15)
Пример #46
0
 def test_getPathToRootLength(self):
     n4 = Node(854, 50)
     n4.currentPos = 800
     stub4 = n4.createStub()
     stub4.currentPos = 700
     self.assertEqual(n4.getPathToRootLength(), 254)
Пример #47
0
 def test_touching(self):
     n1 = Node(10, 10)
     n2 = Node(20, 10)
     self.assertEqual(n1.distanceFrom(n2), 0)
Пример #48
0
 def test_getLayerIndex(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.getLayerIndex(), 0)
     n1.layerIndex = 10
     self.assertEqual(n1.getLayerIndex(), 10)
Пример #49
0
 def test_isStub(self):
     n1 = Node(10, 10)
     stub = n1.createStub(5)
     self.assertFalse(n1.isStub())
     self.assertTrue(stub.isStub())
Пример #50
0
 def test_idealLeft(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.idealLeft(), 5)