@@ -276,59 +276,72 @@ describe('Performance test various traces', function() {
276276 } ) ;
277277
278278 tests . forEach ( function ( spec , index ) {
279- samples . forEach ( function ( t ) {
280- it (
281- spec . nTraces + ' ' + spec . traceType +
282- ( spec . mode ? ' | mode: ' + spec . mode : '' ) +
283- ' | size:' + spec . n + ' | turn: ' + t , function ( done ) {
284- if ( t === 0 ) {
285- tests [ index ] . raw = [ ] ;
286- }
287-
288- var timerID ;
289- var requestID1 , requestID2 ;
290-
291- var startTime , endTime ;
292-
293- requestID1 = requestAnimationFrame ( function ( ) {
294- // Wait for actual rendering instead of promise
295- requestID2 = requestAnimationFrame ( function ( ) {
296- endTime = performance . now ( ) ;
279+ var testIt = true ;
280+
281+ var testCase = __karma__ . config . testCase ;
282+
283+ if ( testCase ) {
284+ if ( testCase . tracesType && testCase . tracesType !== spec . traceType ) testIt = false ;
285+ if ( testCase . tracesCount && testCase . tracesCount !== spec . nTraces ) testIt = false ;
286+ if ( testCase . tracesMode && testCase . tracesMode !== spec . mode ) testIt = false ;
287+ if ( testCase . tracesPoints && testCase . tracesPoints !== spec . n ) testIt = false ;
288+ }
289+
290+ if ( testIt ) {
291+ samples . forEach ( function ( t ) {
292+ it (
293+ spec . nTraces + ' ' + spec . traceType +
294+ ( spec . mode ? ' | mode: ' + spec . mode : '' ) +
295+ ' | size:' + spec . n + ' | turn: ' + t , function ( done ) {
296+ if ( t === 0 ) {
297+ tests [ index ] . raw = [ ] ;
298+ }
299+
300+ var timerID ;
301+ var requestID1 , requestID2 ;
302+
303+ var startTime , endTime ;
297304
298- var delta = endTime - startTime ;
305+ requestID1 = requestAnimationFrame ( function ( ) {
306+ // Wait for actual rendering instead of promise
307+ requestID2 = requestAnimationFrame ( function ( ) {
308+ endTime = performance . now ( ) ;
299309
300- if ( tests [ index ] . raw [ t ] === undefined ) {
301- tests [ index ] . raw [ t ] = delta ;
302- }
310+ var delta = endTime - startTime ;
303311
304- if ( spec . selector ) {
305- var nodes = d3SelectAll ( spec . selector ) ;
306- expect ( nodes . size ( ) ) . toEqual ( spec . nTraces ) ;
307- }
312+ if ( tests [ index ] . raw [ t ] === undefined ) {
313+ tests [ index ] . raw [ t ] = delta ;
314+ }
308315
309- clearTimeout ( timerID ) ;
316+ if ( spec . selector ) {
317+ var nodes = d3SelectAll ( spec . selector ) ;
318+ expect ( nodes . size ( ) ) . toEqual ( spec . nTraces ) ;
319+ }
310320
311- done ( ) ;
321+ clearTimeout ( timerID ) ;
322+
323+ done ( ) ;
324+ } ) ;
312325 } ) ;
313- } ) ;
314326
315- var mock = generateMock ( spec ) ;
327+ var mock = generateMock ( spec ) ;
316328
317- timerID = setTimeout ( ( ) => {
318- endTime = performance . now ( ) ;
329+ timerID = setTimeout ( ( ) => {
330+ endTime = performance . now ( ) ;
319331
320- tests [ index ] . raw [ t ] = 'none' ;
332+ tests [ index ] . raw [ t ] = 'none' ;
321333
322- cancelAnimationFrame ( requestID2 ) ;
323- cancelAnimationFrame ( requestID1 ) ;
334+ cancelAnimationFrame ( requestID2 ) ;
335+ cancelAnimationFrame ( requestID1 ) ;
324336
325- done . fail ( 'Takes too much time: ' + ( endTime - startTime ) ) ;
326- } , MAX_RENDERING_TIME ) ;
337+ done . fail ( 'Takes too much time: ' + ( endTime - startTime ) ) ;
338+ } , MAX_RENDERING_TIME ) ;
327339
328- startTime = performance . now ( ) ;
340+ startTime = performance . now ( ) ;
329341
330- Plotly . newPlot ( gd , mock ) ;
342+ Plotly . newPlot ( gd , mock ) ;
343+ } ) ;
331344 } ) ;
332- } ) ;
345+ }
333346 } ) ;
334347} ) ;
0 commit comments