Esempio n. 1
0
    def testNonNodeAttrAnim(self):
        class GenericClass(object):
            def __init__(self):
                self.numberValue = 0
                self.pointValue = avg.Point2D(0.0, 0.0)

        def on1Stop():
            self.__onStopCalled = True

        def on2Start():
            self.__onStopBeforeOnStart = self.__onStopCalled

        self.loadEmptyScene()
        player.setFakeFPS(10)
        genericObject1 = GenericClass()
        genericObject2 = genericObject1
        genericObject3 = GenericClass()
        anim1 = avg.LinearAnim(genericObject1, "numberValue", 1000, 0, 100,
                False, None, on1Stop)
        anim2 = avg.LinearAnim(genericObject2, "numberValue", 1200, 0, 200,
                False, on2Start)
        anim3 = avg.LinearAnim(genericObject1, "pointValue", 800, (0, 0), (100, 200))
        anim4 = avg.LinearAnim(genericObject3, "numberValue", 400, 0, 42)
        self.__onStopCalled = False
        self.__onStopBeforeOnStart = False
        self.start(False,
                (lambda: anim1.start(),
                 lambda: self.assert_(anim1.isRunning()),
                 lambda: self.assert_(not(self.__onStopCalled)),
                 lambda: anim2.start(),
                 lambda: self.assert_(self.__onStopBeforeOnStart),
                 lambda: self.assert_(not(anim1.isRunning())),
                 lambda: self.assert_(anim2.isRunning()),
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 1),
                 lambda: anim3.start(),
                 lambda: self.assert_(anim2.isRunning()),
                 lambda: self.assert_(anim3.isRunning()),
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 2),
                 lambda: anim4.start(),
                 lambda: self.assert_(anim4.isRunning()),
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 3),
                 lambda: self.delay(200),
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 0),
                 lambda: self.assert_(genericObject1.numberValue == 200),
                 lambda: self.assert_(genericObject2.pointValue == (100, 200)),
                 lambda: self.assert_(genericObject3.numberValue == 42)
                ))
        anim1 = None
        anim2 = None
        anim3 = None
        anim4 = None
        genericObject1 = None
        genericObject2 = None
        genericObject3 = None
Esempio n. 2
0
    def testNonNodeAttrAnim(self):
        class GenericClass(object):
            def __init__(self):
                self.numberValue = 0
                self.pointValue = avg.Point2D(0.0, 0.0)

        def on1Stop():
            self.__onStopCalled = True

        def on2Start():
            self.__onStopBeforeOnStart = self.__onStopCalled

        self.loadEmptyScene()
        player.setFakeFPS(10)
        genericObject1 = GenericClass()
        genericObject2 = genericObject1
        genericObject3 = GenericClass()
        anim1 = avg.LinearAnim(genericObject1, "numberValue", 1000, 0, 100,
                               False, None, on1Stop)
        anim2 = avg.LinearAnim(genericObject2, "numberValue", 1200, 0, 200,
                               False, on2Start)
        anim3 = avg.LinearAnim(genericObject1, "pointValue", 800, (0, 0),
                               (100, 200))
        anim4 = avg.LinearAnim(genericObject3, "numberValue", 400, 0, 42)
        self.__onStopCalled = False
        self.__onStopBeforeOnStart = False
        self.start(
            False,
            (lambda: anim1.start(), lambda: self.assert_(anim1.isRunning()),
             lambda: self.assert_(not (self.__onStopCalled)),
             lambda: anim2.start(),
             lambda: self.assert_(self.__onStopBeforeOnStart),
             lambda: self.assert_(not (anim1.isRunning())),
             lambda: self.assert_(anim2.isRunning()),
             lambda: self.assertEqual(avg.getNumRunningAnims(), 1),
             lambda: anim3.start(), lambda: self.assert_(anim2.isRunning()),
             lambda: self.assert_(anim3.isRunning()),
             lambda: self.assertEqual(avg.getNumRunningAnims(), 2),
             lambda: anim4.start(), lambda: self.assert_(anim4.isRunning()),
             lambda: self.assertEqual(avg.getNumRunningAnims(), 3),
             lambda: self.delay(200),
             lambda: self.assertEqual(avg.getNumRunningAnims(), 0),
             lambda: self.assert_(genericObject1.numberValue == 200),
             lambda: self.assert_(genericObject2.pointValue == (100, 200)),
             lambda: self.assert_(genericObject3.numberValue == 42)))
        anim1 = None
        anim2 = None
        anim3 = None
        anim4 = None
        genericObject1 = None
        genericObject2 = None
        genericObject3 = None
Esempio n. 3
0
    def testStateAnim(self):
        def state1StopCallback():
            self.__state1StopCallbackCalled = True

        def state2StartCallback():
            if self.__state1StopCallbackCalled:
                self.__stop1Start2CallbackOrder = True
            self.__state2StartCallbackCalled = True

        def makeAnim():
            self.anim = avg.StateAnim(
                    [avg.AnimState("STATE1", avg.LinearAnim(self.__node, "x", 200, 
                            0, 100, False, None, state1StopCallback), "STATE2"),
                     avg.AnimState("STATE2", avg.LinearAnim(self.__node, "x", 200, 
                            100, 50, False, state2StartCallback), "STATE3"),
                     avg.AnimState("STATE3", avg.WaitAnim())
                    ])
#            self.anim.setDebug(True)

        def killAnim():
            self.anim.setState("")
            self.anim = None

        def startFireForgetAnim():
            stateAnim = avg.StateAnim(
                    [avg.AnimState("STATE1", avg.LinearAnim(self.__node, "x", 200,
                            0, 100, False), "STATE2"),
                     avg.AnimState("STATE2", avg.WaitAnim(200))
                    ])
#            stateAnim.setDebug(True)
            stateAnim.setState("STATE1")

        self.initScene()
        self.__state1StopCallbackCalled = False
        self.__state2StartCallbackCalled = False
        self.__stop1Start2CallbackOrder = False
        self.start(False,
                (makeAnim,
                 lambda: self.compareImage("testStateAnimC1"),
                 lambda: self.anim.setState("STATE1"),
                 None,
                 lambda: self.compareImage("testStateAnimC2"),
                 lambda: self.assertEqual(self.anim.getState(), "STATE2"),
                 lambda: self.compareImage("testStateAnimC3"),
                 lambda: self.assert_(self.__state1StopCallbackCalled),
                 lambda: self.assert_(self.__state2StartCallbackCalled),
                 lambda: self.assert_(self.__stop1Start2CallbackOrder),
                 lambda: self.assertEqual(self.anim.getState(), "STATE3"),
                 lambda: self.compareImage("testStateAnimC4"),
                 lambda: self.anim.setState("STATE1"),
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 1),
                 lambda: self.compareImage("testStateAnimC5"),
                 killAnim,
                 startFireForgetAnim,
                 lambda: self.delay(200),
                 lambda: self.compareImage("testStateAnimC6"),
                 lambda: self.delay(200),
#                 lambda: player.getTestHelper().dumpObjects()
                ))
Esempio n. 4
0
    def testAnimType(self, curAnim, imgBaseName):
        def onStop():
            self.__onStopCalled = True

        def startAnim():
            self.__onStopCalled = False
            self.__anim.start()

        def startKeepAttr():
            self.__node.x = 32 
            self.__anim.start(True)

        def abortAnim():
            self.__anim.abort()

        self.__anim = curAnim
        self.__anim.setStopCallback(onStop)
        self.__onStopCalled = False
        self.assertRaises(RuntimeError, lambda: self.__anim.start())
        self.start(False,
                (startAnim,
                 lambda: self.compareImage(imgBaseName+"1"),
                 lambda: self.compareImage(imgBaseName+"2"),
                 lambda: self.compareImage(imgBaseName+"3"),
                 lambda: self.assert_(self.__onStopCalled),
                 lambda: self.assert_(not(self.__anim.isRunning())),
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 0),
                 lambda: self.compareImage(imgBaseName+"4"),
                 lambda: self.assertEqual(self.__node.x, 100),
                 startAnim,
                 lambda: self.compareImage(imgBaseName+"1"),
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 1),
                 abortAnim,
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 0),
                 lambda: self.compareImage(imgBaseName+"5"),
                 lambda: self.assert_(not(self.__anim.isRunning())),
                 None,
                 lambda: self.assert_(self.__onStopCalled),
                 startKeepAttr,
                 lambda: self.compareImage(imgBaseName+"6"),
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 1)
                ))
        self.__anim = None
Esempio n. 5
0
    def testStateAnim(self):
        def state1StopCallback():
            self.__state1StopCallbackCalled = True

        def state2StartCallback():
            if self.__state1StopCallbackCalled:
                self.__stop1Start2CallbackOrder = True
            self.__state2StartCallbackCalled = True

        def makeAnim():
            self.anim = avg.StateAnim([
                avg.AnimState(
                    "STATE1",
                    avg.LinearAnim(self.__node, "x", 200, 0, 100, False, None,
                                   state1StopCallback), "STATE2"),
                avg.AnimState(
                    "STATE2",
                    avg.LinearAnim(self.__node, "x", 200, 100, 50, False,
                                   state2StartCallback), "STATE3"),
                avg.AnimState("STATE3", avg.WaitAnim())
            ])


#            self.anim.setDebug(True)

        def killAnim():
            self.anim = None

        self.initScene()
        self.__state1StopCallbackCalled = False
        self.__state2StartCallbackCalled = False
        self.__stop1Start2CallbackOrder = False
        self.start(
            False,
            (
                makeAnim,
                lambda: self.compareImage("testStateAnimC1"),
                lambda: self.anim.setState("STATE1"),
                None,
                lambda: self.compareImage("testStateAnimC2"),
                lambda: self.assertEqual(self.anim.getState(), "STATE2"),
                lambda: self.compareImage("testStateAnimC3"),
                lambda: self.assert_(self.__state1StopCallbackCalled),
                lambda: self.assert_(self.__state2StartCallbackCalled),
                lambda: self.assert_(self.__stop1Start2CallbackOrder),
                lambda: self.assertEqual(self.anim.getState(), "STATE3"),
                lambda: self.compareImage("testStateAnimC4"),
                lambda: self.anim.setState("STATE1"),
                lambda: self.assertEqual(avg.getNumRunningAnims(), 1),
                lambda: self.compareImage("testStateAnimC5"),
                killAnim,
                #                 lambda: player.getTestHelper().dumpObjects()
            ))
Esempio n. 6
0
    def testAnimType(self, curAnim, imgBaseName):
        def onStop():
            self.__onStopCalled = True

        def startAnim():
            self.__onStopCalled = False
            self.__anim.start()

        def startKeepAttr():
            self.__node.x = 32
            self.__anim.start(True)

        def abortAnim():
            self.__anim.abort()

        self.__anim = curAnim
        self.__anim.setStopCallback(onStop)
        self.__onStopCalled = False
        self.assertException(lambda: self.__anim.start())
        self.start(
            False,
            (startAnim, lambda: self.compareImage(imgBaseName + "1"),
             lambda: self.compareImage(imgBaseName + "2"),
             lambda: self.compareImage(imgBaseName + "3"),
             lambda: self.assert_(self.__onStopCalled),
             lambda: self.assert_(not (self.__anim.isRunning())),
             lambda: self.assertEqual(avg.getNumRunningAnims(), 0),
             lambda: self.compareImage(imgBaseName + "4"),
             lambda: self.assertEqual(self.__node.x, 100), startAnim,
             lambda: self.compareImage(imgBaseName + "1"),
             lambda: self.assertEqual(avg.getNumRunningAnims(), 1), abortAnim,
             lambda: self.assertEqual(avg.getNumRunningAnims(), 0),
             lambda: self.compareImage(imgBaseName + "5"),
             lambda: self.assert_(not (self.__anim.isRunning())), None,
             lambda: self.assert_(self.__onStopCalled), startKeepAttr,
             lambda: self.compareImage(imgBaseName + "6"),
             lambda: self.assertEqual(avg.getNumRunningAnims(), 1)))
        self.__anim = None
Esempio n. 7
0
    def testFadeOut(self):
        def onStop():
            self.__onStopCalled = True

        self.initScene()
        self.__node.opacity = 0.5
        self.__onStopCalled = False
        self.start(False,
                   (lambda: avg.fadeOut(self.__node, 200, onStop),
                    lambda: self.compareImage("testFadeOut1"),
                    lambda: self.compareImage("testFadeOut2"),
                    lambda: self.compareImage("testFadeOut3"),
                    lambda: self.assert_(self.__onStopCalled),
                    lambda: self.assertEqual(avg.getNumRunningAnims(), 0)))
        self.__anim = None
Esempio n. 8
0
    def testFadeOut(self):
        def onStop():
            self.__onStopCalled = True

        self.initScene()
        self.__node.opacity=0.5
        self.__onStopCalled = False
        self.start(False,
                (lambda: avg.fadeOut(self.__node, 200, onStop),
                 lambda: self.compareImage("testFadeOut1"),
                 lambda: self.compareImage("testFadeOut2"),
                 lambda: self.compareImage("testFadeOut3"),
                 lambda: self.assert_(self.__onStopCalled),
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 0)
                ))
        self.__anim = None
Esempio n. 9
0
    def testLinearAnimZeroDuration(self):
        def onStop():
            self.__onStopCalled = True

        def startAnim():
            self.__onStopCalled = False
            self.__anim.start()

        self.initScene()
        self.__anim = avg.LinearAnim(self.__node, "x", 0, 0, 100, False, None,
                                     onStop)
        self.__onStopCalled = False
        self.start(False,
                   (startAnim,
                    lambda: self.compareImage("testLinearAnimZeroDurationC1"),
                    lambda: self.assertEqual(avg.getNumRunningAnims(), 0),
                    lambda: self.assert_(self.__onStopCalled),
                    lambda: self.assert_(not (self.__anim.isRunning()))))
        self.__anim = None
Esempio n. 10
0
    def testLinearAnimZeroDuration(self):
        def onStop():
            self.__onStopCalled = True

        def startAnim():
            self.__onStopCalled = False
            self.__anim.start()

        self.initScene()
        self.__anim = avg.LinearAnim(self.__node, "x", 0, 0, 100, False, None, onStop)
        self.__onStopCalled = False
        self.start(False,
                (startAnim,
                 lambda: self.compareImage("testLinearAnimZeroDurationC1"),
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 0),
                 lambda: self.assert_(self.__onStopCalled),
                 lambda: self.assert_(not(self.__anim.isRunning()))
                ))
        self.__anim = None
Esempio n. 11
0
    def testAnimRegistry(self):
        def on1Stop():
            self.__onStopCalled = True

        def on2Start():
            self.__onStopBeforeOnStart = self.__onStopCalled

        self.initScene()
        sameNode = player.getElementByID("test")
        anim1 = avg.LinearAnim(self.__node, "x", 500, 0, 100, False, None,
                               on1Stop)
        anim2 = avg.LinearAnim(sameNode, "x", 300, 0, 100, False, on2Start)
        self.__onStopCalled = False
        self.__onStopBeforeOnStart = False
        self.start(False,
                   (lambda: anim1.start(),
                    lambda: self.assert_(not (self.__onStopCalled)),
                    lambda: anim2.start(),
                    lambda: self.assert_(self.__onStopBeforeOnStart),
                    lambda: self.assertEqual(avg.getNumRunningAnims(), 1)))
        anim1 = None
        anim2 = None
Esempio n. 12
0
 def testAnimRegistry(self):
     def on1Stop():
         self.__onStopCalled = True
     
     def on2Start():
         self.__onStopBeforeOnStart = self.__onStopCalled
     
     self.initScene()
     sameNode = player.getElementByID("test")
     anim1 = avg.LinearAnim(self.__node, "x", 500, 0, 100,
                            False, None, on1Stop)
     anim2 = avg.LinearAnim(sameNode, "x", 300, 0, 100,
                            False, on2Start)
     self.__onStopCalled = False
     self.__onStopBeforeOnStart = False
     self.start(False,
             (lambda: anim1.start(),
              lambda: self.assert_(not(self.__onStopCalled)),
              lambda: anim2.start(),
              lambda: self.assert_(self.__onStopBeforeOnStart),
              lambda: self.assertEqual(avg.getNumRunningAnims(), 1)
             ))
     anim1 = None
     anim2 = None
Esempio n. 13
0
 def __dumpObjects(self):
     gc.collect()
     testHelper = g_Player.getTestHelper()
     testHelper.dumpObjects()
     print 'Num anims: ', avg.getNumRunningAnims()
     print 'Num python objects: ', len(gc.get_objects())
Esempio n. 14
0
    def testParallelAnim(self):
        def animStopped():
            self.__endCalled = True

        def startFireForgetAnim():
            avg.ParallelAnim([
                avg.LinearAnim(self.nodes[0], "x", 200, 0, 60),
                avg.LinearAnim(self.nodes[1], "x", 200, 0, 120)
            ]).start()

        def startAnim():
            self.anim = avg.ParallelAnim([
                avg.LinearAnim(self.nodes[0], "x", 200, 0, 60),
                avg.LinearAnim(self.nodes[1], "x", 400, 0, 120),
                avg.EaseInOutAnim(self.nodes[2], "x", 400, 0, 120, 100, 100)
            ], None, animStopped)
            self.__endCalled = False
            self.anim.start()

        def startTimedAnim():
            self.anim = avg.ParallelAnim([
                avg.LinearAnim(self.nodes[0], "x", 200, 0, 60),
                avg.LinearAnim(self.nodes[1], "x", 400, 0, 120),
            ], None, animStopped, 200)
            self.__endCalled = False
            self.anim.start()

        def abortAnim():
            self.anim.abort()

        def deleteAnim():
            self.anim = None

        root = self.loadEmptyScene()
        self.nodes = []
        for i in range(3):
            node = avg.ImageNode(id=str(i),
                                 pos=(64, i * 20),
                                 href="rgb24-64x64.png")
            root.appendChild(node)
            self.nodes.append(node)
        player.setFakeFPS(10)
        self.__endCalled = False
        self.start(
            False,
            (startFireForgetAnim,
             lambda: self.assertEqual(avg.getNumRunningAnims(), 2), None,
             startAnim, lambda: self.assertEqual(avg.getNumRunningAnims(), 3),
             lambda: self.compareImage("testParallelAnimC1"),
             lambda: self.assert_(self.anim.isRunning()),
             lambda: self.delay(200),
             lambda: self.assert_(not (self.anim.isRunning())),
             lambda: self.compareImage("testParallelAnimC2"),
             lambda: self.assert_(self.__endCalled),
             lambda: self.assertEqual(avg.getNumRunningAnims(), 0), startAnim,
             abortAnim, lambda: self.compareImage("testParallelAnimC3"),
             lambda: self.assert_(self.__endCalled),
             lambda: self.assertEqual(avg.getNumRunningAnims(), 0),
             startTimedAnim, lambda: self.delay(200),
             lambda: self.assert_(self.__endCalled),
             lambda: self.assertEqual(avg.getNumRunningAnims(), 0), startAnim))
        self.nodes = []
Esempio n. 15
0
    def testParallelAnim(self):
        def animStopped():
            self.__endCalled = True

        def startFireForgetAnim():
            avg.ParallelAnim(
                    [ avg.LinearAnim(self.nodes[0], "x", 200, 0, 60),
                      avg.LinearAnim(self.nodes[1], "x", 200, 0, 120)
                    ]).start()

        def startAnim():
            self.anim = avg.ParallelAnim(
                    [ avg.LinearAnim(self.nodes[0], "x", 200, 0, 60),
                      avg.LinearAnim(self.nodes[1], "x", 400, 0, 120),
                      avg.EaseInOutAnim(self.nodes[2], "x", 400, 0, 120, 100, 100)
                    ], None, animStopped)
            self.__endCalled = False
            self.anim.start()

        def startTimedAnim():
            self.anim = avg.ParallelAnim(
                    [ avg.LinearAnim(self.nodes[0], "x", 200, 0, 60),
                      avg.LinearAnim(self.nodes[1], "x", 400, 0, 120),
                    ], None, animStopped, 200)
            self.__endCalled = False
            self.anim.start()
            
        def abortAnim():
            self.anim.abort()

        def deleteAnim():
            self.anim = None

        root = self.loadEmptyScene()
        self.nodes = []
        for i in range(3):
            node = avg.ImageNode(id=str(i), pos=(64, i*20), href="rgb24-64x64.png")
            root.appendChild(node)
            self.nodes.append(node)
        player.setFakeFPS(10)
        self.__endCalled = False
        self.start(False,
                (startFireForgetAnim,
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 2),
                 None,
                 startAnim,
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 3),
                 lambda: self.compareImage("testParallelAnimC1"),
                 lambda: self.assert_(self.anim.isRunning()),
                 lambda: self.delay(200),
                 lambda: self.assert_(not(self.anim.isRunning())),
                 lambda: self.compareImage("testParallelAnimC2"),
                 lambda: self.assert_(self.__endCalled),
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 0),
                 startAnim,
                 abortAnim,
                 lambda: self.compareImage("testParallelAnimC3"),
                 lambda: self.assert_(self.__endCalled),
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 0),
                 startTimedAnim,
                 lambda: self.delay(200),
                 lambda: self.assert_(self.__endCalled),
                 lambda: self.assertEqual(avg.getNumRunningAnims(), 0),
                 startAnim
                ))
        self.nodes = []
Esempio n. 16
0
 def __dumpObjects(self):
     gc.collect()
     testHelper = player.getTestHelper()
     testHelper.dumpObjects()
     print 'Num anims: ', avg.getNumRunningAnims()
     print 'Num python objects: ', len(gc.get_objects())