]> source.dussan.org Git - svg.js.git/commitdiff
Make tests relating to speed easier to understand
authorRémi Tétreault <tetreault.remi@gmail.com>
Mon, 17 Oct 2016 19:17:12 +0000 (15:17 -0400)
committerRémi Tétreault <tetreault.remi@gmail.com>
Mon, 17 Oct 2016 19:17:12 +0000 (15:17 -0400)
spec/spec/fx.js

index f050a2a8328cbf35e1e06eaf6b81ea3a71205a27..e848862d51bed64d25a0378d075c97303391acd9 100644 (file)
@@ -43,10 +43,15 @@ describe('FX', function() {
     })
 
     it('should take speed into consideration', function() {
-      fx.speed(4)
-      expect(fx.timeToPos(fx.situation.start+fx.situation.duration/4/2)).toBe(0.5)
-      fx.speed(0.5)
-      expect(fx.timeToPos(fx.situation.start+fx.situation.duration/0.5/4)).toBe(0.25)
+      var spd
+
+      spd = 4
+      fx.speed(spd)
+      expect(fx.timeToPos(fx.situation.start+(fx.situation.duration/spd)/2)).toBe(0.5)
+
+      spd = 0.5
+      fx.speed(spd)
+      expect(fx.timeToPos(fx.situation.start+(fx.situation.duration/spd)/4)).toBe(0.25)
     })
   })
 
@@ -56,10 +61,15 @@ describe('FX', function() {
     })
 
     it('should take speed into consideration', function() {
-      fx.speed(4)
-      expect(fx.posToTime(0.5)).toBe(fx.situation.start+fx.situation.duration/4/2)
-      fx.speed(0.5)
-      expect(fx.posToTime(0.25)).toBe(fx.situation.start+fx.situation.duration/0.5/4)
+      var spd
+
+      spd = 4
+      fx.speed(spd)
+      expect(fx.posToTime(0.5)).toBe(fx.situation.start+(fx.situation.duration/spd)/2)
+
+      spd = 0.5
+      fx.speed(spd)
+      expect(fx.posToTime(0.25)).toBe(fx.situation.start+(fx.situation.duration/spd)/4)
     })
   })
 
@@ -73,14 +83,25 @@ describe('FX', function() {
     })
 
     it('should take speed into consideration', function() {
-      fx.speed(4).at(0)
-      expect(fx.situation.finish-fx.situation.start).toBe(500/4)
-      fx.speed(5).at(0.75)
-      expect(fx.situation.finish-fx.situation.start).toBe(500/5)
-      fx.speed(0.25).at(0.75)
-      expect(fx.situation.finish-fx.situation.start).toBe(500/0.25)
-      fx.speed(0.5).at(0.83)
-      expect(fx.situation.finish-fx.situation.start).toBe(500/0.5)
+      var dur, spd
+
+      dur = fx.situation.duration
+
+      spd = 4
+      fx.speed(spd).at(0)
+      expect(fx.situation.finish-fx.situation.start).toBe(dur/spd)
+
+      spd = 5
+      fx.speed(spd).at(0.15)
+      expect(fx.situation.finish-fx.situation.start).toBe(dur/spd)
+
+      spd = 0.25
+      fx.speed(spd).at(0.75)
+      expect(fx.situation.finish-fx.situation.start).toBe(dur/spd)
+
+      spd = 0.5
+      fx.speed(spd).at(0.83)
+      expect(fx.situation.finish-fx.situation.start).toBe(dur/spd)
     })
   })
 
@@ -96,8 +117,11 @@ describe('FX', function() {
     })
 
     it('should take speed into consideration', function() {
-      fx.speed(4).start()
-      expect(fx.situation.finish-fx.situation.start).toBe(500/4)
+      var dur = fx.situation.duration
+        , spd = 4
+
+      fx.speed(spd).start()
+      expect(fx.situation.finish-fx.situation.start).toBe(dur/spd)
     })
   })
 
@@ -120,59 +144,83 @@ describe('FX', function() {
 
   describe('speed()', function() {
     it('set the speed of the animation', function(){
-      fx.speed(2)
-      expect(fx.spd).toBe(2)
-      expect(fx.situation.finish-fx.situation.start).toBe(500/2)
+      var dur, spd
+
+      dur = fx.situation.duration
+
+      spd = 2
+      fx.speed(spd)
+      expect(fx.spd).toBe(spd)
+      expect(fx.situation.finish-fx.situation.start).toBe(dur/spd)
 
-      fx.speed(0.5)
-      expect(fx.spd).toBe(0.5)
-      expect(fx.situation.finish-fx.situation.start).toBe(500/0.5)
+      spd = 0.5
+      fx.speed(spd)
+      expect(fx.spd).toBe(spd)
+      expect(fx.situation.finish-fx.situation.start).toBe(dur/spd)
 
-      fx.at(0.2).speed(2)
-      expect(fx.spd).toBe(2)
-      expect(fx.situation.finish-fx.situation.start).toBe(500/2)
+      spd = 2
+      fx.at(0.2).speed(spd)
+      expect(fx.spd).toBe(spd)
+      expect(fx.situation.finish-fx.situation.start).toBe(dur/spd)
 
-      fx.speed(1)
-      expect(fx.spd).toBe(1)
-      expect(fx.situation.finish-fx.situation.start).toBe(500)
+      spd = 1
+      fx.speed(spd)
+      expect(fx.spd).toBe(spd)
+      expect(fx.situation.finish-fx.situation.start).toBe(dur)
     })
 
     it('should not change the position when the animation is run backward', function(){
-      expect(fx.at(0.4).reverse(true).speed(2).pos).toBe(0.4)
+      var pos = 0.4
+
+      expect(fx.at(pos).reverse(true).speed(2).pos).toBe(pos)
     })
 
     it('return the current speed with no argument given', function(){
-      fx.speed(2)
-      expect(fx.speed()).toBe(2)
+      var spd
+
+      spd = 2
+      fx.speed(spd)
+      expect(fx.speed()).toBe(spd)
 
-      fx.speed(0.5)
-      expect(fx.speed()).toBe(0.5)
+      spd = 0.5
+      fx.speed(spd)
+      expect(fx.speed()).toBe(spd)
 
-      fx.speed(1)
-      expect(fx.speed()).toBe(1)
+      spd = 1
+      fx.speed(spd)
+      expect(fx.speed()).toBe(spd)
     })
 
     it('pause the animation when a speed of 0 is passed', function(){
-      var currentSpeed = fx.speed()
+      var spd = fx.speed()
 
       expect(fx.speed(0)).toBe(fx)
-      expect(fx.speed()).toBe(currentSpeed)
+      expect(fx.speed()).toBe(spd)
       expect(fx.paused).toBe(true)
     })
 
     it('should affect all animations in the queue', function(done){
-      fx.speed(2).animate(300).start()
+      fx.speed(2).animate(300)
       expect(fx.situations.length).not.toBe(0)
       expect(fx.pos).not.toBe(1)
 
+      // At this point, there should be 2 animations in the queue to be played:
+      // the one of 500ms that is added before every test and the one of 300ms
+      // we just added. Normally, it would take 800ms before both of these
+      // animations are done, but because we set the speed to 2, it should
+      // only take 400ms to do both animations.
+      fx.start()
+
+      // We expect this timeout to happen while the second animation is running
       setTimeout(function(){
-        expect(fx.active).toBeTruthy()
+        expect(fx.active).toBe(true)
         expect(fx.situations.length).toBe(0)
         expect(fx.pos).not.toBe(1)
       }, 300)
 
+      // Here, we expect that all the animations are done
       setTimeout(function(){
-        expect(fx.active).toBeFalsy()
+        expect(fx.active).toBe(false)
         expect(fx.situations.length).toBe(0)
         expect(fx.pos).toBe(1)
         done()