Пример #1
0
 def testScaleLeafGF(self):
     """test LeafGF scale"""
     leafGFs = [
         Graphics.TextGF(1.0, 12.0, "text", "blue", 1, 0, self.canvas, 1.0,
                         None),
         Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                              self.canvas, 1.0, None),
         Graphics.PolygonGF([-2.0, 3.0, -66.0, 32.3, 2.3, 12], "black",
                            "blue", 0, 1, 0, self.canvas, 1.0, None),
         Graphics.OvalGF(-12.0, 12.23, 65.8, -33.0, "black", "blue", 0, 1,
                         0, self.canvas, 1.0, None),
         Graphics.RectangleGF(1.0, 1.0, 12.0, 12.0, "black", "blue", 0, 1,
                              0, self.canvas, 1.0, None),
         Graphics.PolylineGF([2.0, 6.0, 4.8, 6.4], "black", 0, 1, 0,
                             self.canvas, 1.0, None)
     ]
     scalings = [(leafGFs[0], leafGFs[0].scale, (0, 0, 0, 0), (0, 0)),
                 (leafGFs[1], leafGFs[1].scale, (0, 0, 1.0, 2.0), (10.0,
                                                                   40.0)),
                 (leafGFs[2], leafGFs[2].scale, (0, 0, 2.0, 3.0),
                  (-4.0, 9.0, -132.0, 96.9, 4.6, 36)),
                 (leafGFs[3], leafGFs[3].scale, (0, 0, -1.0, 2.0),
                  (12.0, 24.46, -65.8, -66.0)),
                 (leafGFs[4], leafGFs[4].scale, (0, 0, 3.0, 3.0),
                  (3.0, 3.0, 36.0, 36.0)),
                 (leafGFs[5], leafGFs[5].scale, (0, 0, 0.0, 0.5),
                  (0.0, 3.0, 0.0, 3.2))]
     testOperationsLeafGF(self, scalings)
Пример #2
0
 def testBoundingBoxLeafGF(self):
     """test LeafGF getApproxBoundingBox"""
     #Leaf GFs
     leafGFs = [
         Graphics.TextGF(1.0, 12.0, "text", "blue", 1, 0, self.canvas, 1.0,
                         None),
         Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                              self.canvas, 1.0, None),
         Graphics.PolygonGF([-2.0, 3.0, -66.0, 32.3], "black", "blue", 0, 1,
                            0, self.canvas, 1.0, None),
         Graphics.OvalGF(-12.0, 12.23, 65.8, -33.0, "black", "blue", 0, 1,
                         0, self.canvas, 1.0, None),
         Graphics.RectangleGF(1.0, 1.0, 12.0, 12.0, "black", "blue", 0, 1,
                              0, self.canvas, 1.0, None),
         Graphics.PolylineGF([2.0, 6.0, 4.8, 6.4], "black", 0, 1, 0,
                             self.canvas, 1.0, None)
     ]
     for gf in leafGFs:
         box = gf.getApproxBoundingBox()
         numPoints = len(gf.xy) / 2
         for i in range(numPoints):
             self.failIf(box[0] > round(gf.xy[2 * i]))
             self.failIf(box[2] < round(gf.xy[2 * i]))
             self.failIf(box[1] > round(gf.xy[2 * i + 1]))
             self.failIf(box[3] < round(gf.xy[2 * i + 1]))
Пример #3
0
 def testTranslateCompositeGF(self):
     """test CompositeGF translate"""
     leafGFs = [
         Graphics.TextGF(1.0, 12.0, "text", "blue", 1, 0, self.canvas, 1.0,
                         None),
         Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                              self.canvas, 1.0, None),
         Graphics.PolygonGF([-2.0, 3.0, -66.0, 32.3, 2.3, 12], "black",
                            "blue", 0, 1, 0, self.canvas, 1.0, None),
         Graphics.OvalGF(-12.0, 12.23, 65.8, -33.0, "black", "blue", 0, 1,
                         0, self.canvas, 1.0, None),
         Graphics.RectangleGF(1.0, 1.0, 12.0, 12.0, "black", "blue", 0, 1,
                              0, self.canvas, 1.0, None),
         Graphics.PolylineGF([2.0, 6.0, 4.8, 6.4], "black", 0, 1, 0,
                             self.canvas, 1.0, None)
     ]
     compositeGF = Graphics.CompositeGF(leafGFs, 1, 0, 1.0, None)
     components = compositeGF.getComponents()
     oldCoordLists = []
     for c in components:
         oldCoordLists.append(c.xy[:])
     compositeGF.translate(2, 2)
     newCoordLists = []
     for c in components:
         newCoordLists.append(c.xy[:])
     listPairs = map(None, oldCoordLists, newCoordLists)
     for p in listPairs:
         coordPair = map(None, p[0], p[1])
         for c in coordPair:
             self.assertEqual(c[0] + 2, c[1])
Пример #4
0
 def testLockSanity(self):
     """test lock sanity CompositeGF"""
     leafGFs = [
         Graphics.TextGF(1.0, 12.0, "text", "blue", 1, 0, self.canvas, 1.0,
                         None),
         Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                              self.canvas, 1.0, None),
         Graphics.PolygonGF([-2.0, 3.0, -66.0, 32.3], "black", "blue", 0, 1,
                            0, self.canvas, 1.0, None),
         Graphics.OvalGF(-12.0, 12.23, 65.8, -33.0, "black", "blue", 0, 1,
                         0, self.canvas, 1.0, None),
         Graphics.RectangleGF(1.0, 1.0, 12.0, 12.0, "black", "blue", 0, 1,
                              0, self.canvas, 1.0, None),
         Graphics.PolylineGF([2.0, 6.0, 4.8, 6.4], "black", 0, 1, 0,
                             self.canvas, 1.0, None)
     ]
     compositeGFs = [
         Graphics.CompositeGF([leafGFs[0], leafGFs[1]], 1, 0, 1.0, None),
         Graphics.CompositeGF([leafGFs[1], leafGFs[3]], 1, 0, 1.0, None),
         Graphics.CompositeGF([leafGFs[1], leafGFs[4]], 1, 0, 1.0, None),
         Graphics.CompositeGF([leafGFs[3], leafGFs[5]], 1, 0, 1.0, None)
     ]
     for gf in compositeGFs:
         gf.setLock(1)
         self.assertEqual(gf.getLock(), 1)
         gf.setLock(0)
         self.assertEqual(gf.getLock(), 0)
Пример #5
0
    def testRotateLeafGF(self):
        """test LeafGF rotate"""
        leafGFs = [
            Graphics.TextGF(1.0, 12.0, "text", "blue", 1, 0, self.canvas, 1.0,
                            None),
            Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                                 self.canvas, 1.0, None),
            Graphics.PolygonGF([-2.0, 3.0, -66.0, 32.3, 2.3, 12], "black",
                               "blue", 0, 1, 0, self.canvas, 1.0, None),
            Graphics.OvalGF(-12.0, 12.23, 65.8, -33.0, "black", "blue", 0, 1,
                            0, self.canvas, 1.0, None),
            Graphics.RectangleGF(1.0, 1.0, 12.0, 12.0, "black", "blue", 0, 1,
                                 0, self.canvas, 1.0, None),
            Graphics.PolylineGF([2.0, 6.0, 4.8, 6.4], "black", 0, 1, 0,
                                self.canvas, 1.0, None)
        ]
        rotations = [
            (leafGFs[0], leafGFs[0].rotate, (0, 0, 90), (-12.0, 1.0)),
            (leafGFs[1], leafGFs[1].rotate, (0, 0, 180), (-10.0, -20.0)),
            (leafGFs[2], leafGFs[2].rotate, (0, 0, 0), (-2.0, 3.0, -66.0, 32.3,
                                                        2.3, 12)),
            (leafGFs[3], leafGFs[3].rotate, (0, 0, 270), (12.23, 12.0, -33.0,
                                                          -65.8)),
            (leafGFs[4], leafGFs[4].rotate, (0, 0, -90), (1.0, -1.0, 12.0,
                                                          -12.0)),
            (leafGFs[5], leafGFs[5].rotate, (0, 0, 90), (-6.0, 2.0, -6.4, 4.8))
        ]

        testOperationsLeafGF(self, rotations)
Пример #6
0
 def testTranslateLeafGF(self):
     """test LeafGF translate"""
     leafGFs = [
         Graphics.TextGF(1.0, 12.0, "text", "blue", 1, 0, self.canvas, 1.0,
                         None),
         Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                              self.canvas, 1.0, None),
         Graphics.PolygonGF([-2.0, 3.0, -66.0, 32.3, 2.3, 12], "black",
                            "blue", 0, 1, 0, self.canvas, 1.0, None),
         Graphics.OvalGF(-12.0, 12.23, 65.8, -33.0, "black", "blue", 0, 1,
                         0, self.canvas, 1.0, None),
         Graphics.RectangleGF(1.0, 1.0, 12.0, 12.0, "black", "blue", 0, 1,
                              0, self.canvas, 1.0, None),
         Graphics.PolylineGF([2.0, 6.0, 4.8, 6.4], "black", 0, 1, 0,
                             self.canvas, 1.0, None)
     ]
     translations = [
         (leafGFs[0], leafGFs[0].translate, (3.4, 54.), (4.4, 66.0)),
         (leafGFs[1], leafGFs[1].translate, (2.4, 4.), (12.4, 24.0)),
         (leafGFs[2], leafGFs[2].translate, (-2., 33.), (-4.0, 36.0, -68.0,
                                                         65.3, 0.3, 45.0)),
         (leafGFs[3], leafGFs[3].translate, (-2.1, 0.1), (-14.1, 12.33,
                                                          63.7, -32.9)),
         (leafGFs[4], leafGFs[4].translate, (1., 1.), (2.0, 2.0, 13.0,
                                                       13.0)),
         (leafGFs[5], leafGFs[5].translate, (4., 3.0), (6.0, 9.0, 8.8, 9.4))
     ]
     testOperationsLeafGF(self, translations)
Пример #7
0
 def testAcceptConnectorGF(self):
     """test accept visitor ConnectorGF"""
     visitor = UselessVisitor()
     connectorGF = Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                                        self.canvas, 1.0, None)
     connectorGF.accept(visitor)
     self.assertEqual(visitor.visited, "ConnectorGF")
     self.failIf(not (visitor.ref is connectorGF))
Пример #8
0
 def testCopyConnectorGF(self):
     """test ConnectorGF copy"""
     gf = Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                               self.canvas, 1.0, None)
     gf2 = gf.copy()
     self.assertEqual(gf.xy, gf2.xy)
     self.assertEqual(gf.fill, gf2.fill)
     self.assertEqual(gf.outline, gf2.outline)
     self.assertEqual(gf.width, gf2.width)
     self.assertEqual(gf.isActive, gf2.isActive)
     self.assertEqual(gf.isLocked, gf2.isLocked)
     self.assertEqual(gf.zoom, gf2.zoom)
Пример #9
0
 def testAcceptCompositeGF(self):
     """test accept visitor CompositeGF"""
     leafGFs = [
         Graphics.TextGF(1.0, 12.0, "text", "blue", 1, 0, self.canvas, 1.0,
                         None),
         Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                              self.canvas, 1.0, None)
     ]
     visitor = UselessVisitor()
     compositeGF = Graphics.CompositeGF([leafGFs[0], leafGFs[1]], 1, 0, 1.0,
                                        None)
     compositeGF.accept(visitor)
     self.assertEqual(visitor.visited, "CompositeGF")
     self.failIf(not (visitor.ref is compositeGF))
Пример #10
0
 def testSetOutlineColorSanity(self):
     """test outline color sanity for LeafGFs with outline"""
     leafGFs = [
         Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                              self.canvas, 1.0, None),
         Graphics.PolygonGF([-2.0, 3.0, -66.0, 32.3], "black", "blue", 0, 1,
                            0, self.canvas, 1.0, None),
         Graphics.OvalGF(-12.0, 12.23, 65.8, -33.0, "black", "blue", 0, 1,
                         0, self.canvas, 1.0, None),
         Graphics.RectangleGF(1.0, 1.0, 12.0, 12.0, "black", "blue", 0, 1,
                              0, self.canvas, 1.0, None)
     ]
     for gf in leafGFs:
         gf.setOutlineColor("green")
         self.assertEqual(gf.getOutlineColor(), "green")
Пример #11
0
 def testBoundingBoxCompositeGF(self):
     """test CompositeGF getApproxBoundingBox"""
     #Leaf GFs
     leafGFs = [
         Graphics.TextGF(1.0, 12.0, "text", "blue", 1, 0, self.canvas, 1.0,
                         None),
         Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                              self.canvas, 1.0, None)
     ]
     compositeGF = Graphics.CompositeGF(leafGFs, 1, 0, 1.0, None)
     box = compositeGF.getApproxBoundingBox()
     for gf in leafGFs:
         leafBox = gf.getApproxBoundingBox()
         self.failIf(box[0] > leafBox[0])
         self.failIf(box[2] < leafBox[2])
         self.failIf(box[1] > leafBox[1])
         self.failIf(box[3] < leafBox[3])
Пример #12
0
 def testLock(self):
     """test lock sanity CompositeGF"""
     leafGFs = [
         Graphics.TextGF(1.0, 12.0, "text", "blue", 1, 0, self.canvas, 1.0,
                         None),
         Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                              self.canvas, 1.0, None),
         Graphics.PolygonGF([-2.0, 3.0, -66.0, 32.3], "black", "blue", 0, 1,
                            0, self.canvas, 1.0, None),
         Graphics.OvalGF(-12.0, 12.23, 65.8, -33.0, "black", "blue", 0, 1,
                         0, self.canvas, 1.0, None),
         Graphics.RectangleGF(1.0, 1.0, 12.0, 12.0, "black", "blue", 0, 1,
                              0, self.canvas, 1.0, None),
         Graphics.PolylineGF([2.0, 6.0, 4.8, 6.4], "black", 0, 1, 0,
                             self.canvas, 1.0, None)
     ]
     compositeGFs = [
         Graphics.CompositeGF([leafGFs[0], leafGFs[1]], 1, 0, 1.0, None),
         Graphics.CompositeGF([leafGFs[1], leafGFs[3]], 1, 0, 1.0, None),
         Graphics.CompositeGF([leafGFs[1], leafGFs[4]], 1, 0, 1.0, None),
         Graphics.CompositeGF([leafGFs[3], leafGFs[5]], 1, 0, 1.0, None)
     ]
     for gf in compositeGFs:
         components = gf.getComponents()
         oldCoordList = []
         for c in components:
             oldCoordList.append(c.xy[:])
         #lock
         gf.setLock(1)
         gf.translate(2, 2)
         newCoordList = []
         for c in components:
             newCoordList.append(c.xy[:])
         tuples = map(None, oldCoordList, newCoordList)
         for t in tuples:
             self.assertEqual(t[0], t[1])
         #now unlock
         gf.setLock(0)
         gf.translate(2, 2)
         newCoordList = []
         for c in components:
             newCoordList.append(c.xy[:])
         tuples = map(None, oldCoordList, newCoordList)
         for t in tuples:
             self.assertNotEqual(t[0], t[1])
Пример #13
0
 def testSetFillColorSanity(self):
     """test fill color sanity LeafGF"""
     leafGFs = [
         Graphics.TextGF(1.0, 12.0, "text", "blue", 1, 0, self.canvas, 1.0,
                         None),
         Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                              self.canvas, 1.0, None),
         Graphics.PolygonGF([-2.0, 3.0, -66.0, 32.3], "black", "blue", 0, 1,
                            0, self.canvas, 1.0, None),
         Graphics.OvalGF(-12.0, 12.23, 65.8, -33.0, "black", "blue", 0, 1,
                         0, self.canvas, 1.0, None),
         Graphics.RectangleGF(1.0, 1.0, 12.0, 12.0, "black", "blue", 0, 1,
                              0, self.canvas, 1.0, None),
         Graphics.PolylineGF([2.0, 6.0, 4.8, 6.4], "black", 0, 1, 0,
                             self.canvas, 1.0, None)
     ]
     for gf in leafGFs:
         gf.setFillColor("green")
         self.assertEqual(gf.getFillColor(), "green")
Пример #14
0
 def testSetZoomLeafGF(self):
     """test LeafGF setZoom"""
     #Leaf GFs
     leafGFs = [
         Graphics.TextGF(1.0, 12.0, "text", "blue", 1, 0, self.canvas, 1.0,
                         None),
         Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                              self.canvas, 1.0, None),
         Graphics.PolygonGF([-2.0, 3.0, -66.0, 32.3], "black", "blue", 0, 1,
                            0, self.canvas, 1.0, None),
         Graphics.OvalGF(-12.0, 12.23, 65.8, -33.0, "black", "blue", 0, 1,
                         0, self.canvas, 1.0, None),
         Graphics.RectangleGF(1.0, 1.0, 12.0, 12.0, "black", "blue", 0, 1,
                              0, self.canvas, 1.0, None),
         Graphics.PolylineGF([2.0, 6.0, 4.8, 6.4], "black", 0, 1, 0,
                             self.canvas, 1.0, None)
     ]
     for gf in leafGFs:
         gf.setZoom(7.2)
         self.assertEqual(gf.zoom, 7.2)
Пример #15
0
 def testLock(self):
     """test lock LeafGF"""
     leafGFs = [
         Graphics.TextGF(1.0, 12.0, "text", "blue", 1, 0, self.canvas, 1.0,
                         None),
         Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                              self.canvas, 1.0, None),
         Graphics.PolygonGF([-2.0, 3.0, -66.0, 32.3], "black", "blue", 0, 1,
                            0, self.canvas, 1.0, None),
         Graphics.OvalGF(-12.0, 12.23, 65.8, -33.0, "black", "blue", 0, 1,
                         0, self.canvas, 1.0, None),
         Graphics.RectangleGF(1.0, 1.0, 12.0, 12.0, "black", "blue", 0, 1,
                              0, self.canvas, 1.0, None),
         Graphics.PolylineGF([2.0, 6.0, 4.8, 6.4], "black", 0, 1, 0,
                             self.canvas, 1.0, None)
     ]
     for gf in leafGFs:
         old_xy = gf.xy[:]
         gf.setLock(1)
         gf.translate(2, 3)
         self.assertEqual(old_xy, gf.xy)
         gf.setLock(0)
         gf.translate(2, 3)
         self.assertNotEqual(old_xy, gf.xy)
Пример #16
0
 def testCopyTypeConnectorGF(self):
     """test ConnectorGF copy return type"""
     connectorGF = Graphics.ConnectorGF(10.0, 20.0, "black", "blue", 1, 0,
                                        self.canvas, 1.0, None)
     self.failIf(not isinstance(connectorGF.copy(), Graphics.ConnectorGF))