package Ġch . u zh . ifi . se al . sm r . so a . analysis . is default value Ċ Ċ import Ġch . u zh . ifi . se al . bench er . execution . Execution Configuration Ċ import Ġch . u zh . ifi . se al . bench er . execution . default Exec Config Ċ import Ġch . u zh . ifi . se al . sm r . so a . analysis . j mh 1 2 0 Ċ import Ġch . u zh . ifi . se al . sm r . so a . analysis . percentage Ċ import Ġch . u zh . ifi . se al . sm r . so a . utils . Csv Result Parser Ċ import Ġch . u zh . ifi . se al . sm r . so a . utils . Custom Mapping Strategy Ċ import Ġch . u zh . ifi . se al . sm r . so a . utils . Open CSV Writer Ċ import Ġch . u zh . ifi . se al . sm r . so a . utils . Result Ċ import Ġjava . io . File Ċ import Ġkotlin . reflect . K Mutable Property 1 Ċ import Ġkotlin . reflect . K Property 1 Ċ Ċ private Ġval Ġoutput Ġ= Ġmutable ListOf < Res Is Default >() Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġfile Ġ= ĠFile (" C :\\ Users \\ st ew ue \\ One Drive Ġ- ĠW uer sten \\ Uni \\ 1 9 _ HS \\ Master ar beit \\ Repo \\ Evaluation \\ RQ 1 _ Results \\ current - commit \\ merged - is Main . csv ") ĊĠĠĠ Ġval ĠoutputFile Ġ= ĠFile (" C :\\ Users \\ st ew ue \\ One Drive Ġ- ĠW uer sten \\ Uni \\ 1 9 _ HS \\ Master ar beit \\ Repo \\ Evaluation \\ RQ 1 _ Results \\ ag gregated \\ is default value . csv "). to Path () ĊĊĠĠĠ Ġval Ġall Ġ= ĠCsv Result Parser ( file ). getList (). filter Ġ{ Ġit . j mh Version Ġ!= Ġnull Ġ}. toSet () ĊĊĠĠĠ Ġoutput . add ( Res Is Default ("${ all . size } Ġbenchmarks Ġhas Ġa Ġj mh Ġversion ")) ĊĊĠĠĠ Ġval Ġpre 1 2 0 Ġ= Ġall . filter Ġ{ Ġit . j mh Version !!. compareTo ( j mh 1 2 0 ) Ġ< Ġ 0 Ġ} ĊĠĠĠ Ġoutput . add ( Res Is Default ("${ pre 1 2 0 . size } Ġbenchmarks Ġhas Ġj mh Ġversion Ġ 1 . 2 0 Ġor Ġe al ier ")) ĊĊĠĠĠ Ġval Ġpost 1 2 0 Ġ= Ġall . filter Ġ{ Ġit . j mh Version !!. compareTo ( j mh 1 2 0 ) Ġ== Ġ 1 Ġ} ĊĠĠĠ Ġoutput . add ( Res Is Default ("${ post 1 2 0 . size } Ġbenchmarks Ġhas Ġj mh Ġversion Ġ 1 . 2 1 ")) ĊĊĠĠĠ Ġanalyze ( all , Ġ" warm up Iterations ", ĠResult :: warm up Iterations , ĠExecution Configuration :: warm up Iterations ) ĊĠĠĠ Ġanalyze ( all , Ġ" warm up Time ", ĠResult :: warm up Time , ĠExecution Configuration :: warm up Time ) ĊĠĠĠ Ġanalyze ( all , Ġ" measurement Iterations ", ĠResult :: measurement Iterations , ĠExecution Configuration :: measurement Iterations ) ĊĠĠĠ Ġanalyze ( all , Ġ" measurement Time ", ĠResult :: measurement Time , ĠExecution Configuration :: measurement Time ) ĊĠĠĠ Ġanalyze ( all , Ġ" fork s ", ĠResult :: fork s , ĠExecution Configuration :: fork s ) ĊĠĠĠ Ġanalyze ( all , Ġ" warm up Fork s ", ĠResult :: warm up Fork s , ĠExecution Configuration :: warm up Fork s ) ĊĠĠĠ Ġanalyze Mode ( all ) ĊĊĠĠĠ ĠOpen CSV Writer . write ( outputFile , Ġoutput , ĠCustom Mapping Strategy ( Res Is Default :: class . java )) Ċ } Ċ Ċ private Ġfun Ġanalyze ( all : ĠSet < Result >, Ġtitle : ĠString , Ġproperty : ĠK Mutable Property 1 < Result , Ġ* >, Ġproperty Default : ĠK Property 1 < Execution Configuration , Ġ* >) Ġ{ ĊĠĠĠ Ġval Ġhas Value Ġ= Ġall . filter Ġ{ Ġproperty . get ( it ) Ġ!= Ġnull Ġ} ĊĠĠĠ Ġval Ġis Default Ġ= Ġhas Value . filter Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( property Ġ== ĠResult :: warm up Time Ġ|| Ġproperty Ġ== ĠResult :: measurement Time ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . j mh Version !!. compareTo ( j mh 1 2 0 ) Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty . get ( it ) Ġ== Ġ 1 0 0 0 0 0 0 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty . get ( it ) Ġ== Ġ 1 0 0 0 0 0 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty . get ( it ) Ġ== Ġproperty Default . get ( default Exec Config ( it . j mh Version !! )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġpost 1 2 0 Ġ= Ġis Default . filter Ġ{ Ġit . j mh Version !!. compareTo ( j mh 1 2 0 ) Ġ== Ġ 1 Ġ} ĊĠĠĠ Ġval Ġpre 1 2 0 Ġ= Ġis Default . filter Ġ{ Ġit . j mh Version !!. compareTo ( j mh 1 2 0 ) Ġ< Ġ 1 Ġ} ĊĊĠĠĠ Ġval Ġall Post 1 2 0 Ġ= Ġhas Value . filter Ġ{ Ġit . j mh Version !!. compareTo ( j mh 1 2 0 ) Ġ== Ġ 1 Ġ} ĊĠĠĠ Ġval Ġall Pre 1 2 0 Ġ= Ġhas Value . filter Ġ{ Ġit . j mh Version !!. compareTo ( j mh 1 2 0 ) Ġ< Ġ 1 Ġ} ĊĊĠĠĠ Ġoutput . add ( Res Is Default ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Present Ġ= Ġhas Value . size , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Present Ġ= Ġis Default . size , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Present Percentage Ġ= Ġpercentage ( is Default . size , Ġhas Value . size ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Present Pre 1 2 1 Ġ= Ġall Pre 1 2 0 . size , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Present Pre 1 2 1 Ġ= Ġpre 1 2 0 . size , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Present Pre 1 2 1 Percentage Ġ= Ġpercentage ( pre 1 2 0 . size , Ġall Pre 1 2 0 . size ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Present Post 1 2 1 Ġ= Ġall Post 1 2 0 . size , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Present Post 1 2 1 Ġ= Ġpost 1 2 0 . size , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Present Post 1 2 1 Percentage Ġ= Ġpercentage ( post 1 2 0 . size , Ġall Post 1 2 0 . size ) ĊĠĠĠ Ġ)) Ċ } Ċ Ċ private Ġfun Ġanalyze Mode ( all : ĠSet < Result >) Ġ{ ĊĠĠĠ Ġval Ġsome Mode Set Ġ= Ġall . filter Ġ{ ĊĠĠĠĠĠĠĠ Ġit . mode Is Through put Ġ== Ġtrue Ġ|| Ġit . mode Is Average Time Ġ== Ġtrue Ġ|| Ġit . mode Is Sample Time Ġ== Ġtrue Ġ|| Ġit . mode Is Single Shot Time Ġ== Ġtrue ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġonly Th rpt Used Ġ= Ġall . filter Ġ{ ĊĠĠĠĠĠĠĠ Ġit . mode Is Through put Ġ== Ġtrue Ġ&& Ġit . mode Is Average Time Ġ!= Ġtrue Ġ&& Ġit . mode Is Sample Time Ġ!= Ġtrue Ġ&& Ġit . mode Is Single Shot Time Ġ!= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġpost 1 2 0 Ġ= Ġonly Th rpt Used . filter Ġ{ Ġit . j mh Version !!. compareTo ( j mh 1 2 0 ) Ġ== Ġ 1 Ġ} ĊĠĠĠ Ġval Ġpre 1 2 0 Ġ= Ġonly Th rpt Used . filter Ġ{ Ġit . j mh Version !!. compareTo ( j mh 1 2 0 ) Ġ< Ġ 1 Ġ} ĊĊĠĠĠ Ġval Ġall Post 1 2 0 Ġ= Ġsome Mode Set . filter Ġ{ Ġit . j mh Version !!. compareTo ( j mh 1 2 0 ) Ġ== Ġ 1 Ġ} ĊĠĠĠ Ġval Ġall Pre 1 2 0 Ġ= Ġsome Mode Set . filter Ġ{ Ġit . j mh Version !!. compareTo ( j mh 1 2 0 ) Ġ< Ġ 1 Ġ} ĊĊĠĠĠ Ġoutput . add ( Res Is Default ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" mode ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Present Ġ= Ġsome Mode Set . size , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Present Ġ= Ġonly Th rpt Used . size , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Present Percentage Ġ= Ġpercentage ( only Th rpt Used . size , Ġsome Mode Set . size ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Present Pre 1 2 1 Ġ= Ġall Pre 1 2 0 . size , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Present Pre 1 2 1 Ġ= Ġpre 1 2 0 . size , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Present Pre 1 2 1 Percentage Ġ= Ġpercentage ( pre 1 2 0 . size , Ġall Pre 1 2 0 . size ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Present Post 1 2 1 Ġ= Ġall Post 1 2 0 . size , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Present Post 1 2 1 Ġ= Ġpost 1 2 0 . size , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Present Post 1 2 1 Percentage Ġ= Ġpercentage ( post 1 2 0 . size , Ġall Post 1 2 0 . size ) ĊĠĠĠ Ġ)) Ċ }