package Ġcom . github . gr ish berg . profiler . comparator Ċ Ċ import Ġcom . github . gr ish berg . profiler . child Ċ import Ġcom . github . gr ish berg . profiler . comparator . ag gregator . Fl ame Chart Aggregator Ċ import Ġcom . github . gr ish berg . profiler . count Children Ċ import Ġcom . github . gr ish berg . profiler . get Ċ import Ġcom . github . gr ish berg . profiler . profile Data Ċ import Ġcom . github . gr ish berg . profiler . width Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ Ċ private Ġconst Ġval ĠDEL TA Ġ= Ġ 0 . 0 0 1 Ċ Ċ internal Ġclass ĠFl ame Chart Aggregator Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtrace 1 Ġ= Ġprofile Data (" A ", Ġ 0 . 0 , Ġ 1 0 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 0 . 0 , Ġ 2 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 1 0 . 0 , Ġ 2 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" D ", Ġ 2 0 . 0 , Ġ 1 0 0 . 0 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 2 0 . 0 , Ġ 3 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 2 2 . 0 , Ġ 3 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" C ", Ġ 3 0 . 0 , Ġ 4 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 5 0 . 0 , Ġ 6 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 5 2 . 0 , Ġ 6 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 6 0 . 0 , Ġ 8 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtrace 2 Ġ= Ġprofile Data (" A ", Ġ 0 . 0 , Ġ 2 0 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 0 . 0 , Ġ 6 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 1 0 . 0 , Ġ 6 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" D ", Ġ 6 0 . 0 , Ġ 2 0 0 . 0 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 6 0 . 0 , Ġ 8 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 7 0 . 0 , Ġ 8 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 9 0 . 0 , Ġ 1 1 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 1 0 0 . 0 , Ġ 1 1 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 1 1 0 . 0 , Ġ 1 4 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 1 5 0 . 0 , Ġ 1 8 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 1 5 0 . 0 , Ġ 1 8 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" E ", Ġ 1 9 0 . 0 , Ġ 2 0 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtrace 3 Ġ= Ġprofile Data (" A ", Ġ 0 . 0 , Ġ 1 5 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 0 . 0 , Ġ 4 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 1 0 . 0 , Ġ 4 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" D ", Ġ 4 0 . 0 , Ġ 1 5 0 . 0 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 4 0 . 0 , Ġ 7 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 4 0 . 0 , Ġ 6 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 8 0 . 0 , Ġ 1 1 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 1 1 0 . 0 , Ġ 1 3 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 1 1 0 . 0 , Ġ 1 3 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" E ", Ġ 1 4 0 . 0 , Ġ 1 5 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtrace 4 Ġ= Ġprofile Data (" A ", Ġ 0 . 0 , Ġ 1 0 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 0 . 0 , Ġ 2 0 . 0 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" F ", Ġ 0 . 0 , Ġ 1 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" C ", Ġ 1 0 . 0 , Ġ 2 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" D ", Ġ 2 0 . 0 , Ġ 1 0 0 . 0 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 3 0 . 0 , Ġ 4 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 3 0 . 0 , Ġ 4 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 4 0 . 0 , Ġ 6 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 4 0 . 0 , Ġ 5 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 8 0 . 0 , Ġ 9 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 6 0 . 0 , Ġ 8 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 6 0 . 0 , Ġ 8 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" E ", Ġ 9 0 . 0 , Ġ 1 0 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtrace 5 Ġ= Ġprofile Data (" A ", Ġ 0 . 0 , Ġ 8 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 0 . 0 , Ġ 1 5 . 0 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" F ", Ġ 0 . 0 , Ġ 1 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" C ", Ġ 1 0 . 0 , Ġ 1 5 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" D ", Ġ 1 5 . 0 , Ġ 8 0 . 0 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 1 5 . 0 , Ġ 3 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 2 0 . 0 , Ġ 3 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" C ", Ġ 3 0 . 0 , Ġ 4 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 4 0 . 0 , Ġ 5 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 4 5 . 0 , Ġ 5 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 5 0 . 0 , Ġ 6 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" C ", Ġ 5 0 . 0 , Ġ 6 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" B ", Ġ 7 0 . 0 , Ġ 8 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġunder Test Ġ= ĠFl ame Chart Aggregator () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` aggregate Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtraces Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( trace 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( trace 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( trace 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( trace 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( trace 5 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġaggregated Ġ= Ġunder Test . aggregate ( traces , Ġ" test ") ĊĠĠĠĠĠĠĠ Ġval Ġexpected Root Width Ġ= Ġtraces . flatten (). sum Of Ġ{ Ġit . width () Ġ} Ġ/ Ġtraces . size ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" test ", Ġaggregated . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 . 0 , Ġaggregated . mean , ĠDEL TA ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġaggregated . children . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Root Width , Ġaggregated . width , ĠDEL TA ) ĊĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġaggregated . children . first () ĊĠĠĠĠĠĠĠ ĠassertEquals (" A ", Ġa . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 . 0 , Ġa . mean , ĠDEL TA ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġa . children . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Root Width , Ġa . width , ĠDEL TA ) ĊĊĠĠĠĠĠĠĠ Ġval Ġab Ġ= Ġa . children . first () ĊĠĠĠĠĠĠĠ ĠassertEquals (" B ", Ġab . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 . 0 , Ġab . mean , ĠDEL TA ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġab . children . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( ab . left Ġ>= Ġa . left ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( ab . width Ġ<= Ġa . width ) ĊĊĠĠĠĠĠĠĠ Ġval Ġabc Ġ= Ġab . children . first () ĊĠĠĠĠĠĠĠ ĠassertEquals (" C ", Ġabc . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 . 0 , Ġabc . mean , ĠDEL TA ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġabc . children . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( abc . left Ġ>= Ġab . left ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( abc . width Ġ<= Ġab . width ) ĊĊĠĠĠĠĠĠĠ Ġval Ġad Ġ= Ġa . children [ 1 ] ĊĠĠĠĠĠĠĠ ĠassertEquals (" D ", Ġad . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 . 0 , Ġad . mean , ĠDEL TA ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġad . children . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( ad . left Ġ>= Ġa . left ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( ad . width Ġ<= Ġa . width ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( ab . width Ġ< Ġad . width ) ĊĊĠĠĠĠĠĠĠ Ġval Ġa db Ġ= Ġad . children . first () ĊĠĠĠĠĠĠĠ Ġval Ġcount B Ġ= Ġtraces . flatten (). sum Of Ġ{ Ġroot Ġ-> Ġroot . get (" D "). count Children (" B ") Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġexpected Mean B Ġ= Ġcount B . toDouble () Ġ/ Ġtraces . size ĊĠĠĠĠĠĠĠ ĠassertEquals (" B ", Ġa db . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Mean B , Ġa db . mean , ĠDEL TA ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġa db . children . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( adb . left Ġ>= Ġad . left ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( adb . width Ġ<= Ġad . width ) ĊĊĠĠĠĠĠĠĠ Ġval Ġa dbc Ġ= Ġa db . children . first () ĊĠĠĠĠĠĠĠ Ġval Ġcount C Ġ= Ġtraces . flatten (). sum Of Ġ{ Ġroot Ġ-> Ġroot . get (" D "). get (" B "). count Children (" C ") Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġexpected Mean C Ġ= Ġcount C . toDouble () Ġ/ Ġtraces . size ĊĠĠĠĠĠĠĠ ĠassertEquals (" C ", Ġa dbc . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Mean C , Ġa dbc . mean , ĠDEL TA ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġa dbc . children . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( ad bc . left Ġ>= Ġa db . left ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( ad bc . width Ġ<= Ġa db . width ) ĊĊĠĠĠĠĠĠĠ Ġval Ġa de Ġ= Ġad . children [ 1 ] ĊĠĠĠĠĠĠĠ ĠassertEquals (" E ", Ġa de . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 . 0 , Ġa de . mean , ĠDEL TA ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġa de . children . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( ade . left Ġ>= Ġad . left ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( ade . width Ġ<= Ġad . width ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( adb . width Ġ> Ġa de . width ) ĊĠĠĠ Ġ} Ċ } Ċ