1+ import { Clip } from '../../../../src/common/overlay/levelRenderer/Clip' ;
2+ import { Animation } from '../../../../src/common/overlay/levelRenderer/Animation' ;
3+ import { SmicStar } from '../../../../src/common/overlay/levelRenderer/SmicStar' ;
4+
5+
6+ describe ( 'Animation' , ( ) => {
7+ it ( 'constructor' , ( ) => {
8+ var animation = new Animation ( { } ) ;
9+ expect ( animation ) . not . toBeNull ( ) ;
10+ expect ( animation . _time ) . toEqual ( 0 ) ;
11+ } ) ;
12+
13+ it ( 'add,remove' , ( ) => {
14+ var animation = new Animation ( ) ;
15+ var star = new SmicStar ( {
16+ style : {
17+ x : 200 ,
18+ y : 100 ,
19+ r : 150 ,
20+ n : 5 ,
21+ text : '五角星'
22+ }
23+ } ) ;
24+ var options = {
25+ target : star
26+ } ;
27+ var clip = new Clip ( options ) ;
28+ animation . add ( clip ) ;
29+ expect ( animation . _clips . length ) . toEqual ( 1 ) ;
30+ animation . remove ( clip )
31+ expect ( animation . _clips . length ) . toEqual ( 0 ) ;
32+ } ) ;
33+
34+ it ( 'start,stop' , ( ) => {
35+ var animation = new Animation ( ) ;
36+ var star = new SmicStar ( {
37+ style : {
38+ x : 200 ,
39+ y : 100 ,
40+ r : 150 ,
41+ n : 5 ,
42+ text : '五角星'
43+ }
44+ } ) ;
45+ var options = {
46+ target : star
47+ } ;
48+ var clip = new Clip ( options ) ;
49+ animation . add ( clip ) ;
50+ animation . start ( ) ;
51+ expect ( animation . _running ) . toEqual ( true ) ;
52+ animation . stop ( ) ;
53+ expect ( animation . _running ) . toEqual ( false ) ;
54+ } ) ;
55+
56+ it ( 'animation' , ( ) => {
57+ var animation = new Animation ( ) ;
58+ var obj = {
59+ x : 100 ,
60+ y : 100
61+ } ;
62+ var star = new SmicStar ( {
63+ style : {
64+ x : 200 ,
65+ y : 100 ,
66+ r : 150 ,
67+ n : 5 ,
68+ text : '五角星'
69+ }
70+ } ) ;
71+ var animator = animation . animate ( obj )
72+ . when ( 1000 , {
73+ x : 500 ,
74+ y : 500
75+ } )
76+ . when ( 2000 , {
77+ x : 100 ,
78+ y : 100
79+ } ) ;
80+ animator . start ( 'spline' )
81+
82+ animation . _clips [ 0 ] . onframe ( star , 0.5 ) ;
83+ animation . _clips [ 0 ] . ondestroy ( ) ;
84+ animator . stop ( ) ;
85+ expect ( animation . _running ) . toEqual ( false ) ;
86+ } ) ;
87+
88+ it ( '_update' , ( ) => {
89+ var animation = new Animation ( ) ;
90+ var star = new SmicStar ( {
91+ style : {
92+ x : 200 ,
93+ y : 100 ,
94+ r : 150 ,
95+ n : 5 ,
96+ text : '五角星'
97+ }
98+ } ) ;
99+ var options = {
100+ target : star
101+ } ;
102+ var clip = new Clip ( options ) ;
103+ clip . _needsRemove = true ;
104+ animation . add ( clip ) ;
105+ spyOn ( animation , 'dispatch' ) . and . callThrough ( ) ;
106+ animation . _update ( ) ;
107+ expect ( animation . dispatch ) . toHaveBeenCalled ( ) ;
108+ } ) ;
109+
110+ it ( '_catmullRomInterpolateArray,_interpolateArray,_cloneValue,_catmullRomInterpolate' , ( ) => {
111+ var p0 = new Array ( "1" ) ;
112+ var p1 = new Array ( "2" ) ;
113+ var p2 = new Array ( "3" ) ;
114+ var p3 = new Array ( "4" ) ;
115+ var out = new Array ( ) ;
116+ var t = 1 ;
117+ var t2 = 1 ;
118+ var t3 = 1 ;
119+ var arrDim = 1 ;
120+ var percent = 0.3 ;
121+ Animation . _catmullRomInterpolateArray ( p0 , p1 , p2 , p3 , t , t2 , t3 , out , arrDim ) ;
122+ expect ( out . length ) . toBe ( 1 ) ;
123+ Animation . _interpolateArray ( p0 , p1 , percent , out , arrDim )
124+ expect ( out [ 0 ] ) . toBe ( '0.31' ) ;
125+
126+ p0 = [ ] ;
127+ p0 [ 0 ] = [ 1 , 2 ]
128+ p1 = [ ] ;
129+ p1 [ 0 ] = [ 1 , 2 ]
130+ p2 = [ ] ;
131+ p2 [ 0 ] = [ 1 , 2 ] ;
132+ p3 = [ ] ;
133+ p3 [ 0 ] = [ 1 , 2 ]
134+ arrDim = 2 ;
135+ out [ 0 ] = new Array ( ) ;
136+ Animation . _catmullRomInterpolateArray ( p0 , p1 , p2 , p3 , t , t2 , t3 , out , arrDim ) ;
137+ expect ( out [ 0 ] [ 0 ] ) . toBe ( 1 ) ;
138+ Animation . _interpolateArray ( p0 , p1 , percent , out , arrDim )
139+ expect ( out [ 0 ] [ 0 ] ) . toBe ( 1 ) ;
140+ var result = Animation . _cloneValue ( out ) ;
141+ expect ( result [ 0 ] . length ) . toBe ( 2 ) ;
142+ } ) ;
143+
144+ it ( 'rgba2String' , ( ) => {
145+ var rgba = new Array ( 25 , 255 , 255 ) ;
146+ expect ( Animation . rgba2String ( rgba ) ) . toEqual ( "rgba(25,255,255)" ) ;
147+ } ) ;
148+
149+ } )
0 commit comments