@@ -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,40 @@ 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 ] , 2 , 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 , precision , cb , msg ) {
114+ precision = - Math . log10 ( 2 * precision ) ;
115+ var a = cb ( A ) . flat ( ) ;
116+ var b = cb ( B ) . flat ( ) ;
117+ expect ( a ) . withContext ( msg + ' equal to ' + JSON . stringify ( A ) ) . toBeCloseToArray ( b , precision ) ;
118+ }
119+
120+ function extractNumbers ( array ) {
121+ return array . map ( function ( d ) {
122+ return d . match ( reNumbers ) . map ( function ( n ) {
123+ return parseFloat ( n ) ;
124+ } ) ;
125+ } ) ;
126+ }
127+
128+ function round ( array ) {
129+ return array . map ( function ( cur ) {
114130 return cur . replace ( reNumbers , function ( match ) {
115131 return Math . round ( match ) ;
116132 } ) ;
0 commit comments