@@ -72,8 +72,9 @@ module.exports = function checkTransition(gd, mock, animateOpts, transitionOpts,
7272
7373 // Run all tasks
7474 return promiseSerial ( p . concat ( checkTests ) )
75- . catch ( function ( ) {
75+ . catch ( function ( err ) {
7676 Date . now = now ;
77+ return Promise . reject ( err ) ;
7778 } )
7879 . then ( function ( ) {
7980 Date . now = now ;
@@ -92,25 +93,39 @@ function assert(test) {
9293 } ) ;
9394 switch ( test [ 3 ] ) {
9495 case 'd' :
95- assertAttr ( cur , test [ 4 ] , round , msg ) ;
96+ assertEqual ( cur , test [ 4 ] , round , msg ) ;
9697 break ;
9798 case 'transform' :
98- assertAttr ( cur , test [ 4 ] , round , msg ) ;
99+ assertCloseTo ( cur , test [ 4 ] , 3 , extractNumbers , msg ) ;
99100 break ;
100101 default :
101- assertAttr ( cur , test [ 4 ] , Lib . identity , msg ) ;
102+ assertEqual ( cur , test [ 4 ] , Lib . identity , msg ) ;
102103 }
103104 return Promise . resolve ( true ) ;
104105}
105106
106- function assertAttr ( A , B , cb , msg ) {
107+ function assertEqual ( A , B , cb , msg ) {
107108 var a = cb ( A ) ;
108109 var b = cb ( B ) ;
109110 expect ( a ) . withContext ( msg + ' equal to ' + JSON . stringify ( a ) ) . toEqual ( b ) ;
110111}
111112
112- function round ( str ) {
113- return str . map ( function ( cur ) {
113+ function assertCloseTo ( A , B , tolerance , cb , msg ) {
114+ var a = cb ( A ) . flat ( ) ;
115+ var b = cb ( B ) . flat ( ) ;
116+ expect ( a ) . withContext ( msg + ' equal to ' + JSON . stringify ( A ) ) . toBeWithinArray ( b , tolerance ) ;
117+ }
118+
119+ function extractNumbers ( array ) {
120+ return array . map ( function ( d ) {
121+ return d . match ( reNumbers ) . map ( function ( n ) {
122+ return parseFloat ( n ) ;
123+ } ) ;
124+ } ) ;
125+ }
126+
127+ function round ( array ) {
128+ return array . map ( function ( cur ) {
114129 return cur . replace ( reNumbers , function ( match ) {
115130 return Math . round ( match ) ;
116131 } ) ;
0 commit comments