@@ -106,14 +106,20 @@ export function main() {
106106 var description =
107107 createMetric ( [ [ ] ] , null , new PerfLogFeatures ( { frameCapture : true } ) , null , true )
108108 . describe ( ) ;
109- expect ( description [ 'meanFrameTime' ] ) . not . toContain ( 'WARNING' ) ;
109+ expect ( description [ 'frameTime.mean' ] ) . not . toContain ( 'WARNING' ) ;
110+ expect ( description [ 'frameTime.best' ] ) . not . toContain ( 'WARNING' ) ;
111+ expect ( description [ 'frameTime.worst' ] ) . not . toContain ( 'WARNING' ) ;
112+ expect ( description [ 'frameTime.smooth' ] ) . not . toContain ( 'WARNING' ) ;
110113 } ) ;
111114
112115 it ( 'should describe itself if frame capture is requested and not available' , ( ) => {
113116 var description =
114117 createMetric ( [ [ ] ] , null , new PerfLogFeatures ( { frameCapture : false } ) , null , true )
115118 . describe ( ) ;
116- expect ( description [ 'meanFrameTime' ] ) . toContain ( 'WARNING' ) ;
119+ expect ( description [ 'frameTime.mean' ] ) . toContain ( 'WARNING' ) ;
120+ expect ( description [ 'frameTime.best' ] ) . toContain ( 'WARNING' ) ;
121+ expect ( description [ 'frameTime.worst' ] ) . toContain ( 'WARNING' ) ;
122+ expect ( description [ 'frameTime.smooth' ] ) . toContain ( 'WARNING' ) ;
117123 } ) ;
118124
119125 describe ( 'beginMeasure' , ( ) => {
@@ -336,7 +342,7 @@ export function main() {
336342 ] ,
337343 null , true )
338344 . then ( ( data ) => {
339- expect ( data [ 'meanFrameTime ' ] ) . toBe ( ( ( 3 - 1 ) + ( 4 - 3 ) ) / 2 ) ;
345+ expect ( data [ 'frameTime.mean ' ] ) . toBe ( ( ( 3 - 1 ) + ( 4 - 3 ) ) / 2 ) ;
340346 async . done ( ) ;
341347 } ) ;
342348 } ) ) ;
@@ -398,6 +404,58 @@ export function main() {
398404 } ) ;
399405 } ) ) ;
400406
407+ it ( 'should calculate best and worst frame time' , inject ( [ AsyncTestCompleter ] , ( async ) => {
408+ aggregate ( [
409+ eventFactory . markStart ( 'frameCapture' , 0 ) ,
410+ eventFactory . instant ( 'frame' , 1 ) ,
411+ eventFactory . instant ( 'frame' , 9 ) ,
412+ eventFactory . instant ( 'frame' , 15 ) ,
413+ eventFactory . instant ( 'frame' , 18 ) ,
414+ eventFactory . instant ( 'frame' , 28 ) ,
415+ eventFactory . instant ( 'frame' , 32 ) ,
416+ eventFactory . markEnd ( 'frameCapture' , 10 )
417+ ] ,
418+ null , true )
419+ . then ( ( data ) => {
420+ expect ( data [ 'frameTime.worst' ] ) . toBe ( 10 ) ;
421+ expect ( data [ 'frameTime.best' ] ) . toBe ( 3 ) ;
422+ async . done ( ) ;
423+ } ) ;
424+ } ) ) ;
425+
426+ it ( 'should calculate percentage of smoothness to be good' ,
427+ inject ( [ AsyncTestCompleter ] , ( async ) => {
428+ aggregate ( [
429+ eventFactory . markStart ( 'frameCapture' , 0 ) ,
430+ eventFactory . instant ( 'frame' , 1 ) ,
431+ eventFactory . instant ( 'frame' , 2 ) ,
432+ eventFactory . instant ( 'frame' , 3 ) ,
433+ eventFactory . markEnd ( 'frameCapture' , 4 )
434+ ] ,
435+ null , true )
436+ . then ( ( data ) => {
437+ expect ( data [ 'frameTime.smooth' ] ) . toBe ( 1.0 ) ;
438+ async . done ( ) ;
439+ } ) ;
440+ } ) ) ;
441+
442+ it ( 'should calculate percentage of smoothness to be bad' ,
443+ inject ( [ AsyncTestCompleter ] , ( async ) => {
444+ aggregate ( [
445+ eventFactory . markStart ( 'frameCapture' , 0 ) ,
446+ eventFactory . instant ( 'frame' , 1 ) ,
447+ eventFactory . instant ( 'frame' , 2 ) ,
448+ eventFactory . instant ( 'frame' , 22 ) ,
449+ eventFactory . instant ( 'frame' , 23 ) ,
450+ eventFactory . instant ( 'frame' , 24 ) ,
451+ eventFactory . markEnd ( 'frameCapture' , 4 )
452+ ] ,
453+ null , true )
454+ . then ( ( data ) => {
455+ expect ( data [ 'frameTime.smooth' ] ) . toBe ( 0.75 ) ;
456+ async . done ( ) ;
457+ } ) ;
458+ } ) ) ;
401459
402460 } ) ;
403461
0 commit comments