pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/easing/ease_test.go (about) 1 package easing 2 3 // ////////////////////////////////////////////////////////////////////////////////// // 4 // // 5 // Copyright (c) 2022 ESSENTIAL KAOS // 6 // Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0> // 7 // // 8 // ////////////////////////////////////////////////////////////////////////////////// // 9 10 import ( 11 "testing" 12 13 . "pkg.re/essentialkaos/check.v1" 14 ) 15 16 // ////////////////////////////////////////////////////////////////////////////////// // 17 18 func Test(t *testing.T) { TestingT(t) } 19 20 type EaseSuite struct{} 21 22 // ////////////////////////////////////////////////////////////////////////////////// // 23 24 var _ = Suite(&EaseSuite{}) 25 26 func (s *EaseSuite) TestLinear(c *C) { 27 c.Assert(Linear(0, 0, 10, 10), Equals, 0.0) 28 c.Assert(Linear(10, 0, 10, 10), Equals, 10.0) 29 c.Assert(Linear(20, 0, 10, 10), Equals, 10.0) 30 } 31 32 func (s *EaseSuite) TestQuad(c *C) { 33 c.Assert(QuadIn(5, 0, 10, 10), Equals, 2.5) 34 c.Assert(QuadOut(5, 0, 10, 10), Equals, 7.5) 35 c.Assert(QuadInOut(5, 0, 10, 10), Equals, 5.0) 36 c.Assert(QuadInOut(0.5, 0, 10, 10), Equals, 0.05) 37 c.Assert(QuadIn(20, 0, 10, 10), Equals, 10.0) 38 c.Assert(QuadOut(20, 0, 10, 10), Equals, 10.0) 39 c.Assert(QuadInOut(20, 0, 10, 10), Equals, 10.0) 40 } 41 42 func (s *EaseSuite) TestCubic(c *C) { 43 c.Assert(CubicIn(5, 0, 10, 10), Equals, 1.25) 44 c.Assert(CubicOut(5, 0, 10, 10), Equals, 8.75) 45 c.Assert(CubicInOut(5, 0, 10, 10), Equals, 5.0) 46 c.Assert(CubicInOut(0.5, 0, 10, 10), Equals, 0.005000000000000001) 47 c.Assert(CubicIn(20, 0, 10, 10), Equals, 10.0) 48 c.Assert(CubicOut(20, 0, 10, 10), Equals, 10.0) 49 c.Assert(CubicInOut(20, 0, 10, 10), Equals, 10.0) 50 } 51 52 func (s *EaseSuite) TestQuint(c *C) { 53 c.Assert(QuintIn(5, 0, 10, 10), Equals, 0.3125) 54 c.Assert(QuintOut(5, 0, 10, 10), Equals, 9.6875) 55 c.Assert(QuintInOut(5, 0, 10, 10), Equals, 5.0) 56 c.Assert(QuintInOut(0.99, 0, 10, 10), Equals, 0.0015215840798400002) 57 c.Assert(QuintIn(20, 0, 10, 10), Equals, 10.0) 58 c.Assert(QuintOut(20, 0, 10, 10), Equals, 10.0) 59 c.Assert(QuintInOut(20, 0, 10, 10), Equals, 10.0) 60 } 61 62 func (s *EaseSuite) TestSine(c *C) { 63 c.Assert(SineIn(5, 0, 10, 10), Equals, 3.0978992192751917) 64 c.Assert(SineOut(5, 0, 10, 10), Equals, 7.236090437019012) 65 c.Assert(SineInOut(5, 0, 10, 10), Equals, 4.999999999999999) 66 c.Assert(SineIn(20, 0, 10, 10), Equals, 10.0) 67 c.Assert(SineOut(20, 0, 10, 10), Equals, 10.0) 68 c.Assert(SineInOut(20, 0, 10, 10), Equals, 10.0) 69 } 70 71 func (s *EaseSuite) TestExpo(c *C) { 72 c.Assert(ExpoIn(5, 0, 10, 10), Equals, 0.3125) 73 c.Assert(ExpoOut(5, 0, 10, 10), Equals, 9.6875) 74 c.Assert(ExpoInOut(5, 0, 10, 10), Equals, 5.0) 75 c.Assert(ExpoInOut(0.5, 0, 10, 10), Equals, 0.009765625) 76 c.Assert(ExpoIn(20, 0, 10, 10), Equals, 10.0) 77 c.Assert(ExpoOut(20, 0, 10, 10), Equals, 10.0) 78 c.Assert(ExpoInOut(20, 0, 10, 10), Equals, 10.0) 79 } 80 81 func (s *EaseSuite) TestCirc(c *C) { 82 c.Assert(CircIn(5, 0, 10, 10), Equals, 1.339745962155614) 83 c.Assert(CircOut(5, 0, 10, 10), Equals, 8.660254037844386) 84 c.Assert(CircInOut(5, 0, 10, 10), Equals, 5.0) 85 c.Assert(CircInOut(0.5, 0, 10, 10), Equals, 0.025062814466900174) 86 c.Assert(CircIn(20, 0, 10, 10), Equals, 10.0) 87 c.Assert(CircOut(20, 0, 10, 10), Equals, 10.0) 88 c.Assert(CircInOut(20, 0, 10, 10), Equals, 10.0) 89 } 90 91 func (s *EaseSuite) TestElastic(c *C) { 92 c.Assert(ElasticIn(1, 0, 10, 10), Equals, 0.01953125) 93 c.Assert(ElasticIn(0, 0, 10, 10), Equals, 0.0) 94 c.Assert(ElasticIn(10, 0, 10, 10), Equals, 10.0) 95 c.Assert(ElasticIn(10, 0, -10, 10), Equals, -10.0) 96 c.Assert(ElasticOut(5, 0, 10, 10), Equals, 10.15625) 97 c.Assert(ElasticOut(0, 0, 10, 10), Equals, 0.0) 98 c.Assert(ElasticOut(10, 0, 10, 10), Equals, 10.0) 99 c.Assert(ElasticOut(10, 0, -10, 10), Equals, -10.0) 100 c.Assert(ElasticInOut(5, 0, 10, 10), Equals, 5.0) 101 c.Assert(ElasticInOut(0, 0, 10, 10), Equals, 0.0) 102 c.Assert(ElasticInOut(10, 0, 10, 10), Equals, 10.0) 103 c.Assert(ElasticInOut(10, 0, -10, 10), Equals, -10.0) 104 c.Assert(ElasticInOut(2, 0, 10, 10), Equals, -0.03906249999999994) 105 c.Assert(ElasticInOut(-2, 0, 10, 10), Equals, 0.00023377821140105527) 106 c.Assert(ElasticIn(20, 0, 10, 10), Equals, 10.0) 107 c.Assert(ElasticOut(20, 0, 10, 10), Equals, 10.0) 108 c.Assert(ElasticInOut(20, 0, 10, 10), Equals, 10.0) 109 c.Assert(ElasticIn(5, 0, -10, 10), Equals, 0.15625000000000044) 110 c.Assert(ElasticOut(5, 0, -10, 10), Equals, -10.15625) 111 c.Assert(ElasticInOut(5, 0, -10, 10), Equals, -5.0) 112 } 113 114 func (s *EaseSuite) TestBack(c *C) { 115 c.Assert(BackIn(5, 0, 10, 10), Equals, -0.9655673136318949) 116 c.Assert(BackOut(5, 0, 10, 10), Equals, 10.965567313631894) 117 c.Assert(BackInOut(5, 0, 10, 10), Equals, 5.0) 118 c.Assert(BackIn(20, 0, 10, 10), Equals, 10.0) 119 c.Assert(BackOut(20, 0, 10, 10), Equals, 10.0) 120 c.Assert(BackInOut(20, 0, 10, 10), Equals, 10.0) 121 c.Assert(BackInOut(0.5, 0, 10, 10), Equals, -0.11663464551839108) 122 } 123 124 func (s *EaseSuite) TestBounce(c *C) { 125 c.Assert(BounceIn(5, 0, 10, 10), Equals, 2.34375) 126 c.Assert(BounceOut(5, 0, 10, 10), Equals, 7.65625) 127 c.Assert(BounceInOut(5, 0, 10, 10), Equals, 5.0) 128 c.Assert(BounceOut(0.5, 0, 10, 10), Equals, 0.18906250000000002) 129 c.Assert(BounceInOut(0.5, 0, 10, 10), Equals, 0.05937500000000018) 130 c.Assert(BounceIn(20, 0, 10, 10), Equals, 10.0) 131 c.Assert(BounceOut(20, 0, 10, 10), Equals, 10.0) 132 c.Assert(BounceInOut(20, 0, 10, 10), Equals, 10.0) 133 c.Assert(BounceOut(9.99, 0, 10, 10), Equals, 9.993200625) 134 }