gopkg.in/essentialkaos/ek.v3@v3.5.1/easing/ease_test.go (about)

     1  package easing
     2  
     3  // ////////////////////////////////////////////////////////////////////////////////// //
     4  //                                                                                    //
     5  //                     Copyright (c) 2009-2016 Essential Kaos                         //
     6  //      Essential Kaos Open Source License <http://essentialkaos.com/ekol?en>         //
     7  //                                                                                    //
     8  // ////////////////////////////////////////////////////////////////////////////////// //
     9  
    10  import (
    11  	"testing"
    12  
    13  	. "pkg.re/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  }