Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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))
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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))
Ejemplo n.º 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)
Ejemplo n.º 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
Ejemplo n.º 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
Ejemplo n.º 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))
Ejemplo n.º 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)
Ejemplo n.º 22
0
 def test_removeStub(self):
     n1 = Node(10, 10)
     stub = n1.createStub(5)
     n1.removeStub()
     self.assertIsNone(n1.parent)
     self.assertIsNone(stub.child)
Ejemplo n.º 23
0
 def test_removeStub(self):
     n1 = Node(10, 10)
     stub = n1.createStub(5)
     n1.removeStub()
     self.assertIsNone(n1.parent)
     self.assertIsNone(stub.child)
Ejemplo n.º 24
0
 def test_currentLeft(self):
     n1 = Node(10, 10)
     n1.currentPos = 20
     self.assertEqual(n1.currentLeft(), 15)
Ejemplo n.º 25
0
 def test_idealLeft(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.idealLeft(), 5)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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))
Ejemplo n.º 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])
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 33
0
 def test_no_overlap(self):
     n1 = Node(10, 10)
     n2 = Node(30, 10)
     self.assertEqual(n1.distanceFrom(n2), 10)
Ejemplo n.º 34
0
 def test_currentRight(self):
     n1 = Node(10, 10)
     n1.currentPos = 20
     self.assertEqual(n1.currentRight(), 25)
Ejemplo n.º 35
0
 def test_currentLeft(self):
     n1 = Node(10, 10)
     n1.currentPos = 20
     self.assertEqual(n1.currentLeft(), 15)
Ejemplo n.º 36
0
 def test_idealRight(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.idealRight(), 15)
Ejemplo n.º 37
0
 def test_getLayerIndex(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.getLayerIndex(), 0)
     n1.layerIndex = 10
     self.assertEqual(n1.getLayerIndex(), 10)
Ejemplo n.º 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))
Ejemplo n.º 39
0
 def test_getPathToRootLength(self):
     n4 = Node(854, 50)
     n4.currentPos = 800
     stub4 = n4.createStub()
     stub4.currentPos = 700
     self.assertEqual(n4.getPathToRootLength(), 254)
Ejemplo n.º 40
0
 def test_isStub(self):
     n1 = Node(10, 10)
     stub = n1.createStub(5)
     self.assertFalse(n1.isStub())
     self.assertTrue(stub.isStub())
Ejemplo n.º 41
0
 def test_no_overlap(self):
     n1 = Node(10, 10)
     n2 = Node(30, 10)
     self.assertEqual(n1.distanceFrom(n2), 10)
Ejemplo n.º 42
0
 def test_touching(self):
     n1 = Node(10, 10)
     n2 = Node(20, 10)
     self.assertEqual(n1.distanceFrom(n2), 0)
Ejemplo n.º 43
0
 def test_currentRight(self):
     n1 = Node(10, 10)
     n1.currentPos = 20
     self.assertEqual(n1.currentRight(), 25)
Ejemplo n.º 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])
Ejemplo n.º 45
0
 def test_idealRight(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.idealRight(), 15)
Ejemplo n.º 46
0
 def test_getPathToRootLength(self):
     n4 = Node(854, 50)
     n4.currentPos = 800
     stub4 = n4.createStub()
     stub4.currentPos = 700
     self.assertEqual(n4.getPathToRootLength(), 254)
Ejemplo n.º 47
0
 def test_touching(self):
     n1 = Node(10, 10)
     n2 = Node(20, 10)
     self.assertEqual(n1.distanceFrom(n2), 0)
Ejemplo n.º 48
0
 def test_getLayerIndex(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.getLayerIndex(), 0)
     n1.layerIndex = 10
     self.assertEqual(n1.getLayerIndex(), 10)
Ejemplo n.º 49
0
 def test_isStub(self):
     n1 = Node(10, 10)
     stub = n1.createStub(5)
     self.assertFalse(n1.isStub())
     self.assertTrue(stub.isStub())
Ejemplo n.º 50
0
 def test_idealLeft(self):
     n1 = Node(10, 10)
     self.assertEqual(n1.idealLeft(), 5)