package Ġcom . atlassian . performance . tools . lib . table Ċ Ċ import Ġorg . hamcrest . Core Matchers . equalTo Ċ import Ġorg . junit . Assert . assertArrayEquals Ċ import Ġorg . junit . Assert . assertThat Ċ import Ġorg . junit . Test Ċ Ċ class ĠGeneric Plain Text Table Test Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPro ve Ġbasic Ġusage ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ Ġval Ġtable Ġ= ĠGeneric Plain Text Table () ĊĠĠĠĠ Ġ* Ġ Ġtable . add Row ( listOf ( Ġ"", Ġ" Run ", Ġ" Ap dex ", Ġ" Total ĠActions ", Ġ" Error Ġ% ", Ġ" S atis factory Ġ% ", Ġ" T oler able Ġ% ")) ĊĠĠĠĠ Ġ* Ġ Ġtable . add Row ( listOf ( Ġ" best ", Ġ" 5 ", Ġ" 0 . 7 7 1 3 2 0 1 8 2 0 9 4 0 8 1 9 ", Ġ" 2 3 1 5 5 ", Ġ" 0 . 3 8 9 ", Ġ" 5 9 . 4 9 0 ", Ġ" 3 4 . 6 8 4 ")) ĊĠĠĠĠ Ġ* Ġ Ġtable . add Row ( listOf ( Ġ" wor st ", Ġ" 6 ", Ġ" 0 . 7 6 7 7 9 4 4 0 4 6 8 4 4 5 0 3 ", Ġ" 2 3 1 4 3 ", Ġ" 0 . 3 8 0 ", Ġ" 5 8 . 9 2 5 ", Ġ" 3 5 . 1 2 5 ")) ĊĠĠĠĠ Ġ* Ġ Ġprintln ( table . generate ()) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġgiving ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ Ġ* ------ * ---- * ------------------- * -------------- * -------- * --------------- * ------------ * ĊĠĠĠĠ Ġ* Ġ Ġ| ĠĠĠĠĠ Ġ| ĠRun | ĠAp dex ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠTotal ĠActions | ĠError Ġ% | ĠS atis factory Ġ% | ĠT oler able Ġ% | ĊĠĠĠĠ Ġ* Ġ Ġ* ------ * ---- * ------------------- * -------------- * -------- * --------------- * ------------ * ĊĠĠĠĠ Ġ* Ġ Ġ| Ġbest Ġ| Ġ 5 Ġ Ġ| Ġ 0 . 7 7 1 3 2 0 1 8 2 0 9 4 0 8 1 9 | Ġ 2 3 1 5 5 ĠĠĠĠĠĠĠ Ġ| Ġ 0 . 3 8 9 Ġ Ġ| Ġ 5 9 . 4 9 0 ĠĠĠĠĠĠĠ Ġ| Ġ 3 4 . 6 8 4 ĠĠĠĠ Ġ| ĊĠĠĠĠ Ġ* Ġ Ġ| Ġworst | Ġ 6 Ġ Ġ| Ġ 0 . 7 6 7 7 9 4 4 0 4 6 8 4 4 5 0 3 | Ġ 2 3 1 4 3 ĠĠĠĠĠĠĠ Ġ| Ġ 0 . 3 8 0 Ġ Ġ| Ġ 5 8 . 9 2 5 ĠĠĠĠĠĠĠ Ġ| Ġ 3 5 . 1 2 5 ĠĠĠĠ Ġ| ĊĠĠĠĠ Ġ* Ġ Ġ* ------ * ---- * ------------------- * -------------- * -------- * --------------- * ------------ * ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĊĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Generate Table () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= ĠGeneric Plain Text Table () ĊĠĠĠĠĠĠĠ Ġval Ġheader Values Ġ= ĠlistOf ("", Ġ" Run ", Ġ" Ap dex ", Ġ" Total ĠActions ", Ġ" Error Ġ% ", Ġ" S atis factory Ġ% ", Ġ" T oler able Ġ% ") ĊĠĠĠĠĠĠĠ Ġtable . add Row ( header Values ) ĊĠĠĠĠĠĠĠ Ġtable . add Row ( listOf (" best ", Ġ" 5 ", Ġ" 0 . 7 7 1 3 2 0 1 8 2 0 9 4 0 8 1 9 ", Ġ" 2 3 1 5 5 ", Ġ" 0 . 3 8 9 ", Ġ" 5 9 . 4 9 0 ", Ġ" 3 4 . 6 8 4 ")) ĊĠĠĠĠĠĠĠ Ġtable . add Row ( listOf (" wor st ", Ġ" 6 ", Ġ" 0 . 7 6 7 7 9 4 4 0 4 6 8 4 4 5 0 3 ", Ġ" 2 3 1 4 3 ", Ġ" 0 . 3 8 0 ", Ġ" 5 8 . 9 2 5 ", Ġ" 3 5 . 1 2 5 ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġtable Text Ġ= Ġtable . generate () ĊĠĠĠĠĠĠĠ Ġval Ġlines Ġ= Ġtable Text . split ('\ n ') ĊĊĊĠĠĠĠĠĠĠ ĠassertThat ("# Ġof Ġlines Ġshould Ġbe Ġtop Ġ+ Ġbottom Ġ+ Ġheader Ġdivider Ġ+ Ġheader Ġ+ Ġ# Ġof Ġrows Ġ+ Ġfinal Ġline Ġfeed ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlines . size , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠequalTo ( 7 )) ĊĊĠĠĠĠĠĠĠ ĠassertThat (" With Ġa Ġheader Ġthere Ġshould Ġbe Ġ 3 Ġdivider Ġlines ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlines . filter Ġ{ Ġit . startsWith ("* ") Ġ}. count (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠequalTo ( 3 )) ĊĊĠĠĠĠĠĠĠ Ġassert ArrayEquals (" Div iders Ġshould Ġbe Ġthe Ġfirst , Ġlast Ġand Ġthe Ġone Ġafter Ġthe Ġheader ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 0 , Ġ 2 , Ġ 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlines . with Index (). filter Ġ{ Ġit . value . startsWith ("* ") Ġ}. map Ġ{ Ġit . index Ġ}. to IntArray ()) ĊĊĠĠĠĠĠĠĠ Ġassert ArrayEquals ("* Ġindicates Ġthe Ġboundaries Ġof Ġa Ġcolumn Ġin Ġa Ġdivider , Ġthere Ġshould Ġbe Ġ 1 Ġmore Ġthan Ġthe Ġcolumn Ġcount ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 8 , Ġ 8 , Ġ 8 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlines . with Index (). filter Ġ{ Ġit . value . startsWith ("* ") Ġ}. map Ġ{ Ġit . value . count Ġ{ Ġc Ġ-> Ġ"* ". contains ( c ) Ġ} Ġ}. to IntArray ()) ĊĊĠĠĠĠĠĠĠ Ġassert ArrayEquals (" Data Ġshould Ġbe Ġthe Ġheader Ġline Ġand Ġall Ġbetween Ġthe Ġheader Ġdiv ier Ġand Ġthe Ġlast Ġline ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 1 , Ġ 3 , Ġ 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlines . with Index (). filter Ġ{ Ġit . value . startsWith ("| ") Ġ}. map Ġ{ Ġit . index Ġ}. to IntArray ()) ĊĊĠĠĠĠĠĠĠ Ġassert ArrayEquals ("| Ġindicates Ġthe Ġboundaries Ġof Ġa Ġcolumn Ġin Ġa Ġdata Ġline , Ġthere Ġshould Ġbe Ġ 1 Ġmore Ġthan Ġthe Ġcolumn Ġcount ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 8 , Ġ 8 , Ġ 8 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlines . with Index (). filter Ġ{ Ġit . value . startsWith ("| ") Ġ}. map Ġ{ Ġit . value . count Ġ{ Ġc Ġ-> Ġ"| ". contains ( c ) Ġ} Ġ}. to IntArray ()) ĊĊĠĠĠĠĠĠĠ ĠassertThat (" 2 nd Ġline Ġis Ġthe Ġheader ", Ġ"| ĠĠĠĠĠ Ġ| ĠRun | ĠAp dex ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠTotal ĠActions | ĠError Ġ% | ĠS atis factory Ġ% | ĠT oler able Ġ% | ", ĠequalTo ( lines [ 1 ])) ĊĠĠĠĠĠĠĠ ĠassertThat (" 4 th Ġline Ġis Ġdata ", Ġ"| Ġbest Ġ| Ġ 5 Ġ Ġ| Ġ 0 . 7 7 1 3 2 0 1 8 2 0 9 4 0 8 1 9 | Ġ 2 3 1 5 5 ĠĠĠĠĠĠĠ Ġ| Ġ 0 . 3 8 9 Ġ Ġ| Ġ 5 9 . 4 9 0 ĠĠĠĠĠĠĠ Ġ| Ġ 3 4 . 6 8 4 ĠĠĠĠ Ġ| ", ĠequalTo ( lines [ 3 ])) ĊĠĠĠĠĠĠĠ ĠassertThat (" 5 th Ġline Ġis Ġdata ", Ġ"| Ġworst | Ġ 6 Ġ Ġ| Ġ 0 . 7 6 7 7 9 4 4 0 4 6 8 4 4 5 0 3 | Ġ 2 3 1 4 3 ĠĠĠĠĠĠĠ Ġ| Ġ 0 . 3 8 0 Ġ Ġ| Ġ 5 8 . 9 2 5 ĠĠĠĠĠĠĠ Ġ| Ġ 3 5 . 1 2 5 ĠĠĠĠ Ġ| ", ĠequalTo ( lines [ 4 ])) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Generate Table With Deep Header () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= ĠGeneric Plain Text Table ( 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġheader Values 1 Ġ= ĠlistOf ("", Ġ" Run ", Ġ" Ap dex ", Ġ" Total ĠActions ", Ġ" Error Ġ% ", Ġ" S atis factory Ġ% ", Ġ" T oler able Ġ% ") ĊĠĠĠĠĠĠĠ Ġval Ġheader Values 2 Ġ= ĠlistOf (" 2 ", Ġ" 2 ", Ġ" 2 ", Ġ" 2 ", Ġ" 2 ", Ġ" 2 ", Ġ" 2 ") ĊĠĠĠĠĠĠĠ Ġtable . add Row ( header Values 1 ) ĊĠĠĠĠĠĠĠ Ġtable . add Row ( header Values 2 ) ĊĠĠĠĠĠĠĠ Ġtable . add Row ( listOf (" best ", Ġ" 5 ", Ġ" 0 . 7 7 1 3 2 0 1 8 2 0 9 4 0 8 1 9 ", Ġ" 2 3 1 5 5 ", Ġ" 0 . 3 8 9 ", Ġ" 5 9 . 4 9 0 ", Ġ" 3 4 . 6 8 4 ")) ĊĠĠĠĠĠĠĠ Ġtable . add Row ( listOf (" wor st ", Ġ" 6 ", Ġ" 0 . 7 6 7 7 9 4 4 0 4 6 8 4 4 5 0 3 ", Ġ" 2 3 1 4 3 ", Ġ" 0 . 3 8 0 ", Ġ" 5 8 . 9 2 5 ", Ġ" 3 5 . 1 2 5 ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġtable Text Ġ= Ġtable . generate () ĊĠĠĠĠĠĠĠ Ġval Ġlines Ġ= Ġtable Text . split ('\ n ') ĊĊĠĠĠĠĠĠĠ ĠassertThat ("# Ġof Ġlines Ġshould Ġbe Ġtop Ġ+ Ġbottom Ġ+ Ġheader Ġdivider Ġ+ Ġheader Ġ+ Ġ# Ġof Ġrows Ġ+ Ġfinal Ġline Ġfeed ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlines . size , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠequalTo ( 8 )) ĊĊĠĠĠĠĠĠĠ ĠassertThat (" With Ġa Ġheader Ġthere Ġshould Ġbe Ġ 3 Ġdivider Ġlines ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlines . filter Ġ{ Ġit . startsWith ("* ") Ġ}. count (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠequalTo ( 3 )) ĊĊĠĠĠĠĠĠĠ Ġassert ArrayEquals (" Div iders Ġshould Ġbe Ġthe Ġfirst , Ġlast Ġand Ġthe Ġone Ġafter Ġthe Ġheader ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 0 , Ġ 3 , Ġ 6 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlines . with Index (). filter Ġ{ Ġit . value . startsWith ("* ") Ġ}. map Ġ{ Ġit . index Ġ}. to IntArray ()) ĊĠĠĠ Ġ} Ċ } ĊĊ