package Ġcom . github . aj alt . m ord ant . rendering . table Ċ Ċ import Ġcom . github . aj alt . m ord ant . rendering .* Ċ import Ġcom . github . aj alt . m ord ant . rendering . Text Align . CENTER Ċ import Ġcom . github . aj alt . m ord ant . rendering . Text Colors . blue Ċ import Ġcom . github . aj alt . m ord ant . rendering . Text Colors . red Ċ import Ġcom . github . aj alt . m ord ant . rendering . Vertical Align . MIDDLE Ċ import Ġcom . github . aj alt . m ord ant . rendering . Whitespace . PRE Ċ import Ġcom . github . aj alt . m ord ant . table .* Ċ import Ġcom . github . aj alt . m ord ant . table . B orders .* Ċ import Ġcom . github . aj alt . m ord ant . terminal . Terminal Ċ import Ġcom . github . aj alt . m ord ant . test . Rendering Test Ċ import Ġcom . github . aj alt . m ord ant . widgets . Padding Ċ import Ġcom . github . aj alt . m ord ant . widgets . Text Ċ // import Ġkotlin . js . Js Name Ċ import Ġkotlin . test . Test Ċ Ċ class ĠTable Test Ġ: ĠRendering Test () Ġ{ ĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" empty _ cell ") ĊĠĠĠ Ġfun Ġ` empty Ġcell `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| âĶ Į âĶ Ĳ ĊĠĠĠ Ġ| âĶĤ âĶĤ ĊĠĠĠ Ġ| âĶĶ âĶ ĺ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġpadding Ġ= ĠPadding . none () ĊĠĠĠĠĠĠĠ Ġrow ("") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" border _ top ") ĊĠĠĠ Ġfun Ġ` border Ġtop `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| âĶĢâĶĢ âĶĢ ĊĠĠĠ Ġ| Ġ 1 Ġâ ı İ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborders Ġ= ĠTOP ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" border _ right ") ĊĠĠĠ Ġfun Ġ` border Ġright `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| Ġ 1 ĠâĶĤ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborders Ġ= ĠRIGHT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" border _ bottom ") ĊĠĠĠ Ġfun Ġ` border Ġbottom `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| Ġ 1 Ġâ ı İ ĊĠĠĠ Ġ| âĶĢâĶĢ âĶĢ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborders Ġ= ĠBOTTOM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" border _ left ") ĊĠĠĠ Ġfun Ġ` border Ġleft `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| âĶĤ Ġ 1 Ġâ ı İ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborders Ġ= ĠLEFT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" border _ top _ with _ corners ") ĊĠĠĠ Ġfun Ġ` border Ġtop Ġwith Ġcorners `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| âķ ¶ âĶĢâĶĢ âĶĢ âķ ´ ĊĠĠĠ Ġ| ĠĠ 1 Ġ Ġâ ı İ ĊĠĠĠ Ġ| âĶ Į âĶĢâĶĢ âĶĢâĶ Ĳ ĊĠĠĠ Ġ| âĶĤ Ġ 2 ĠâĶĤ ĊĠĠĠ Ġ| âĶĶ âĶĢâĶĢ âĶĢâĶ ĺ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborders Ġ= ĠTOP ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrow ( 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" border _ right _ with _ corners ") ĊĠĠĠ Ġfun Ġ` border Ġright Ġwith Ġcorners `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| âĶ Į âĶĢâĶĢ âĶĢâĶ Ĳ ĠĠ Ġâķ · ĊĠĠĠ Ġ| âĶĤ Ġ 1 ĠâĶĤ Ġ 2 ĠâĶĤ ĊĠĠĠ Ġ| âĶĶ âĶĢâĶĢ âĶĢâĶ ĺ ĠĠ Ġâķ µ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborders Ġ= ĠRIGHT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" border _ bottom _ with _ corners ") ĊĠĠĠ Ġfun Ġ` border Ġbottom Ġwith Ġcorners `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| âĶ Į âĶĢâĶĢ âĶĢâĶ Ĳ ĊĠĠĠ Ġ| âĶĤ Ġ 1 ĠâĶĤ ĊĠĠĠ Ġ| âĶĶ âĶĢâĶĢ âĶĢâĶ ĺ ĊĠĠĠ Ġ| ĠĠ 2 Ġ Ġâ ı İ ĊĠĠĠ Ġ| âķ ¶ âĶĢâĶĢ âĶĢ âķ ´ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrow ( 1 ) ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborders Ġ= ĠBOTTOM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" border _ left _ with _ corners ") ĊĠĠĠ Ġfun Ġ` border Ġleft Ġwith Ġcorners `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| âķ · ĠĠ ĠâĶ Į âĶĢâĶĢ âĶĢâĶ Ĳ ĊĠĠĠ Ġ| âĶĤ Ġ 1 ĠâĶĤ Ġ 2 ĠâĶĤ ĊĠĠĠ Ġ| âķ µ ĠĠ ĠâĶĶâĶĢâĶĢ âĶĢâĶ ĺ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborders Ġ= ĠLEFT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" inside _ b orders ") ĊĠĠĠ Ġfun Ġ` inside Ġborders `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| Ġ 1 ĠâĶĤ Ġ 2 Ġâ ı İ ĊĠĠĠ Ġ| âĶĢâĶĢ âĶĢâĶ ¼ âĶĢâĶĢ âĶĢ â ı İ ĊĠĠĠ Ġ| Ġ 3 ĠâĶĤ Ġ 4 Ġâ ı İ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborders Ġ= ĠRIGHT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborders Ġ= ĠBOTTOM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborders Ġ= ĠTOP ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborders Ġ= ĠLEFT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" empty _ row ") ĊĠĠĠ Ġfun Ġ` empty Ġrow `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| âĶ Į âĶĢâĶĢ âĶĢâĶ Ĳ ĊĠĠĠ Ġ| âĶĤ Ġ 1 ĠâĶĤ ĊĠĠĠ Ġ| âĶĶ âĶĢâĶĢ âĶĢâĶ ĺ ĊĠĠĠ Ġ| ĠĠĠĠ Ġâ ı İ ĊĠĠĠ Ġ| âĶ Į âĶĢâĶĢ âĶĢâĶ Ĳ ĊĠĠĠ Ġ| âĶĤ Ġ 2 ĠâĶĤ ĊĠĠĠ Ġ| âĶĶ âĶĢâĶĢ âĶĢâĶ ĺ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrow ( 1 ) ĊĠĠĠĠĠĠĠ Ġrow () ĊĠĠĠĠĠĠĠ Ġrow ( 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" non _ rect angular _ table ") ĊĠĠĠ Ġfun Ġ` non - rect angular Ġtable `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| âĶ Į âĶĢâĶĢ âĶĢâĶ Ĳ ĠĠĠĠĠĠ Ġâ ı İ ĊĠĠĠ Ġ| âĶĤ Ġ 1 ĠâĶĤ ĠĠĠĠĠĠ Ġâ ı İ ĊĠĠĠ Ġ| âĶľâĶĢâĶĢ âĶĢâĶ ¼ âĶĢâĶĢ âĶĢâĶ Ĳ ĠĠ Ġâ ı İ ĊĠĠĠ Ġ| âĶĤ Ġ 2 ĠâĶĤ Ġ 3 ĠâĶĤ Ġ 4 Ġâ ı İ ĊĠĠĠ Ġ| âĶľâĶĢâĶĢ âĶĢâĶ ¼ âĶĢâĶĢ âĶĢâĶ ĺ ĠĠ Ġâ ı İ ĊĠĠĠ Ġ| âĶĤ Ġ 5 ĠâĶĤ ĠĠĠĠĠĠ Ġâ ı İ ĊĠĠĠ Ġ| âĶĶ âĶĢâĶĢ âĶĢâĶ ĺ ĠĠĠĠĠĠ Ġâ ı İ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrow ( 1 ) ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcells ( 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 4 ) Ġ{ Ġborders Ġ= ĠNONE Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrow ( 5 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" pre formatted _ text _ content ") ĊĠĠĠ Ġfun Ġ` pre formatted Ġtext Ġcontent `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| âĶ Į âĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢ âĶ ¬ âĶĢâĶ Ĳ ĊĠĠĠ Ġ| âĶĤ line Ġ 1 ĠĠĠĠĠĠĠĠĠ ĠâĶĤ 2 âĶĤ ĊĠĠĠ Ġ| âĶĤ 2 nd Ġline Ġno Ġwrap âĶĤ ĠâĶĤ ĊĠĠĠ Ġ| âĶ ľ âĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢ âĶ¼ âĶĢâĶ ¤ ĊĠĠĠ Ġ| âĶĤ 3 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ 4 âĶĤ ĊĠĠĠ Ġ| âĶĶ âĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢ âĶ ´ âĶĢâĶ ĺ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġpadding Ġ= ĠPadding . none () ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 nd Ġline Ġno Ġwrap ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), Ġwhitespace Ġ= ĠPRE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrow ( 3 , Ġ 4 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" wide _ unicode _ characters ") ĊĠĠĠ Ġfun Ġ` wide Ġunicode Ġcharacters `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| âĶ Į âĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢ âĶĢâĶĢ âĶ Ĳ ĊĠĠĠ Ġ| âĶĤ Ġëª¨ ã Ħ ¹ ëĭ¨ ã ħ Į ĠâĶĤ ĊĠĠĠ Ġ| âĶ ľ âĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢ âĶĢâĶĢ âĶ ¤ ĊĠĠĠ Ġ| âĶĤ ĠĠ Ġ åªĴ äºº ĠĠ ĠâĶĤ ĊĠĠĠ Ġ| âĶ ľ âĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢ âĶĢâĶĢ âĶ ¤ ĊĠĠĠ Ġ| âĶĤ Ġ ĠðŁĻ Ĭ ðŁ Ļ ī ðŁ Ļ Ī Ġ ĠâĶĤ ĊĠĠĠ Ġ| âĶ ľ âĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢ âĶĢâĶĢ âĶ ¤ ĊĠĠĠ Ġ| âĶĤ ĠĠĠ 1 2 3 4 ĠĠ ĠâĶĤ ĊĠĠĠ Ġ| âĶĶ âĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢ âĶĢâĶĢ âĶ ĺ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġalign Ġ= ĠC ENTER ĊĠĠĠĠĠĠĠ Ġrow (" ëª¨ ã Ħ ¹ ëĭ¨ ã ħ Į ") ĊĠĠĠĠĠĠĠ Ġrow (" åªĴ äºº ") ĊĠĠĠĠĠĠĠ Ġrow (" ðŁ Ļ Ĭ ðŁ Ļ ī ðŁ Ļ Ī ") ĊĠĠĠĠĠĠĠ Ġrow (" 1 2 3 4 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" striped _ row _ styles ") ĊĠĠĠ Ġfun Ġ` striped Ġrow Ġstyles `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| âĶ Į âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ Ĳ ĊĠĠĠ Ġ| âĶĤ ${ red (" row Ġ 1 ")} âĶĤ ĊĠĠĠ Ġ| âĶ ľ âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ ¤ ĊĠĠĠ Ġ| âĶĤ ${ blue (" row Ġ 2 ")} âĶĤ ĊĠĠĠ Ġ| âĶ ľ âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ ¤ ĊĠĠĠ Ġ| âĶĤ ${ red (" row Ġ 3 ")} âĶĤ ĊĠĠĠ Ġ| âĶ ľ âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ ¤ ĊĠĠĠ Ġ| âĶĤ ${ blue (" row Ġ 4 ")} âĶĤ ĊĠĠĠ Ġ| âĶĶ âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ ĺ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrow Styles ( TextStyle ( red ), ĠTextStyle ( blue )) ĊĠĠĠĠĠĠĠ Ġpadding Ġ= ĠPadding . none () ĊĠĠĠĠĠĠĠ Ġrow (" row Ġ 1 ") ĊĠĠĠĠĠĠĠ Ġrow (" row Ġ 2 ") ĊĠĠĠĠĠĠĠ Ġrow (" row Ġ 3 ") ĊĠĠĠĠĠĠĠ Ġrow (" row Ġ 4 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" row _ and _ column _ span _ no _ b orders ") ĊĠĠĠ Ġfun Ġ` row Ġand Ġcolumn Ġspan Ġno Ġborders `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| span 1 ĊĠĠĠ Ġ| ĠĠĠĠ 2 ĊĠĠĠ Ġ| 3 Ġ 4 Ġ 5 ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġborders Ġ= ĠNONE ĊĠĠĠĠĠĠĠ Ġpadding Ġ= ĠPadding . none () ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell (" span ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Span Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn Span Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrow ( 2 ) ĊĠĠĠĠĠĠĠ Ġrow ( 3 , Ġ 4 , Ġ 5 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" row _ and _ column _ span ") ĊĠĠĠ Ġfun Ġ` row Ġand Ġcolumn Ġspan `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| âĶ Į âĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢ âĶĢâĶĢ âĶĢâĶ ¬ âĶĢâĶĢ âĶĢâĶ Ĳ ĊĠĠĠ Ġ| âĶĤ ĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ Ġ 1 ĠâĶĤ ĊĠĠĠ Ġ| âĶĤ ĠĠĠĠĠĠĠĠĠĠ ĠâĶľâĶĢâĶĢ âĶĢâĶ ¤ ĊĠĠĠ Ġ| âĶĤ ĠĠ Ġspan ĠĠĠ ĠâĶĤ Ġ 2 ĠâĶĤ ĊĠĠĠ Ġ| âĶĤ ĠĠĠĠĠĠĠĠĠĠ ĠâĶľâĶĢâĶĢ âĶĢâĶ ¤ ĊĠĠĠ Ġ| âĶĤ ĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ Ġ 3 ĠâĶĤ ĊĠĠĠ Ġ| âĶľâĶĢâĶĢ âĶĢâĶ ¬ âĶĢâĶĢ âĶĢâĶ ¬ âĶĢâĶĢ âĶĢâĶ ¼ âĶĢâĶĢ âĶĢâĶ ¤ ĊĠĠĠ Ġ| âĶĤ Ġ 4 ĠâĶĤ Ġ 5 ĠâĶĤ Ġ 6 ĠâĶĤ Ġ 7 ĠâĶĤ ĊĠĠĠ Ġ| âĶĶ âĶĢâĶĢ âĶĢâĶ ´ âĶĢâĶĢ âĶĢâĶ ´ âĶĢâĶĢ âĶĢâĶ ´ âĶĢâĶĢ âĶĢâĶ ĺ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell (" span ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalign Ġ= ĠC ENTER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Align Ġ= ĠM ID DLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Span Ġ= Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn Span Ġ= Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrow ( 2 ) ĊĠĠĠĠĠĠĠ Ġrow ( 3 ) ĊĠĠĠĠĠĠĠ Ġrow ( 4 , Ġ 5 , Ġ 6 , Ġ 7 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" nested _ tables ") ĊĠĠĠ Ġfun Ġ` nested Ġtables `() Ġ= Ġdo Body Test (""" ĊĠĠĠ Ġ| âĶ Į âĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢ âĶĢâĶĢ âĶĢâĶ ¬ âĶĢâĶĢ âĶĢâĶ Ĳ ĊĠĠĠ Ġ| âĶĤ ĠâĶ Į âĶĢâĶĢ âĶĢâĶ ¬ âĶĢâĶĢ âĶĢâĶ Ĳ ĠâĶĤ Ġ 5 ĠâĶĤ ĊĠĠĠ Ġ| âĶĤ ĠâĶĤ Ġ 1 ĠâĶĤ Ġ 2 ĠâĶĤ ĠâĶĤ ĠĠ ĠâĶĤ ĊĠĠĠ Ġ| âĶĤ ĠâĶľâĶĢâĶĢ âĶĢâĶ ¼ âĶĢâĶĢ âĶĢâĶ ¤ ĠâĶĤ ĠĠ ĠâĶĤ ĊĠĠĠ Ġ| âĶĤ ĠâĶĤ Ġ 3 ĠâĶĤ Ġ 4 ĠâĶĤ ĠâĶĤ ĠĠ ĠâĶĤ ĊĠĠĠ Ġ| âĶĤ ĠâĶĶâĶĢâĶĢ âĶĢâĶ ´ âĶĢâĶĢ âĶĢâĶ ĺ ĠâĶĤ ĠĠ ĠâĶĤ ĊĠĠĠ Ġ| âĶ ľ âĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢ âĶĢâĶĢ âĶĢâĶ ¼ âĶĢâĶĢ âĶĢâĶ ¤ ĊĠĠĠ Ġ| âĶĤ Ġ 6 ĠĠĠĠĠĠĠĠ ĠâĶĤ Ġ 7 ĠâĶĤ ĊĠĠĠ Ġ| âĶĶ âĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢâĶĢ âĶĢâĶĢ âĶĢâĶ ´ âĶĢâĶĢ âĶĢâĶ ĺ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( table Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 1 , Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 3 , Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcell ( 5 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrow ( 6 , Ġ 7 ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" outer _ border ") ĊĠĠĠ Ġfun Ġ` outer Ġborder `() Ġ= Ġdo Test (""" ĊĠĠĠ Ġ| Ġ 1 Ġ ĠâĶĤ Ġ 2 Ġ ĠâĶĤ Ġ 3 ĠĠĊĠĠĠ Ġ| âĶĢâĶĢâĶĢâĶĢ âĶ¼ âĶĢâĶĢâĶĢâĶĢ âĶ¼ âĶĢâĶĢâĶĢâĶĢ ĊĠĠĠ Ġ| Ġ 4 Ġ ĠâĶĤ Ġ 5 Ġ ĠâĶĤ Ġ 6 ĠĠĊĠĠĠ Ġ| Ġ 7 Ġ ĠâĶĤ Ġ 8 Ġ ĠâĶĤ Ġ 9 ĠĠĊĠĠĠ Ġ| âĶĢâĶĢâĶĢâĶĢ âĶ¼ âĶĢâĶĢâĶĢâĶĢ âĶ¼ âĶĢâĶĢâĶĢâĶĢ ĊĠĠĠ Ġ| Ġ 1 1 ĠâĶĤ Ġ 1 2 ĠâĶĤ Ġ 1 3 ĠĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġouter Border Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġheader Ġ{ Ġrow ( 1 , Ġ 2 , Ġ 3 ) Ġ} ĊĠĠĠĠĠĠĠ Ġbody Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġborders Ġ= ĠLEFT _ RIGHT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 4 , Ġ 5 , Ġ 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 7 , Ġ 8 , Ġ 9 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfooter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 1 1 , Ġ 1 2 , Ġ 1 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" section _ column _ builders ") ĊĠĠĠ Ġfun Ġ` section Ġcolumn Ġbuild ers `() Ġ= Ġdo Test (""" ĊĠĠĠ Ġ| âĶ Į âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ ¬ âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ Ĳ ĊĠĠĠ Ġ| âĶĤ ĠĠĠ 1 ĠâĶĤ ĠĠ 2 Ġ ĠâĶĤ ĊĠĠĠ Ġ| âĶ ľ âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ ¼ âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ ¤ ĊĠĠĠ Ġ| âĶĤ ĠĠĠ 3 ĠâĶĤ ĠĠĠ 4 ĠâĶĤ ĊĠĠĠ Ġ| âĶ ľ âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ ¼ âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ ¤ ĊĠĠĠ Ġ| âĶĤ Ġ 5 ĠĠ ĠâĶĤ ĠĠ 6 Ġ ĠâĶĤ ĊĠĠĠ Ġ| âĶ ľ âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ ¼ âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ ¤ ĊĠĠĠ Ġ| âĶĤ Ġ... ĠâĶĤ Ġ... ĠâĶĤ ĊĠĠĠ Ġ| âĶĶ âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ ´ âĶĢâĶĢâĶĢâĶĢ âĶĢâĶ ĺ ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcolumn ( 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalign Ġ= ĠText Align . RIGHT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġheader Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn ( 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalign Ġ= ĠC ENTER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 1 , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbody Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn ( 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalign Ġ= ĠText Align . RIGHT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 3 , Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfooter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn ( 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalign Ġ= ĠText Align . LEFT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn ( 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalign Ġ= ĠC ENTER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 5 , Ġ 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (" ...", Ġ"... ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcapt ions () Ġ= Ġdo Test (""" ĊĠĠĠ Ġ| ĠĠĠĠ Ġtop ĠĠĠĠ Ġâ ı İ ĊĠĠĠ Ġ| âĶ Į âĶĢâĶĢ âĶĢâĶ ¬ âĶĢâĶĢ âĶĢâĶ ¬ âĶĢâĶĢ âĶĢâĶ Ĳ ĊĠĠĠ Ġ| âĶĤ Ġ 1 ĠâĶĤ Ġ 2 ĠâĶĤ Ġ 3 ĠâĶĤ ĊĠĠĠ Ġ| âĶĶ âĶĢâĶĢ âĶĢâĶ ´ âĶĢâĶĢ âĶĢâĶ ´ âĶĢâĶĢ âĶĢâĶ ĺ ĊĠĠĠ Ġ| ${ blue (" ĠĠĠĠĠĠ Ġbottom ")} ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcaption Top (" top ") ĊĠĠĠĠĠĠĠ Ġcaption Bottom ( blue (" bottom "), Ġalign Ġ= ĠText Align . RIGHT ) ĊĠĠĠĠĠĠĠ Ġbody Ġ{ Ġrow ( 1 , Ġ 2 , Ġ 3 ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġ@ Js Name (" caption _ widgets ") ĊĠĠĠ Ġfun Ġ` caption Ġwidgets `() Ġ= Ġdo Test (""" ĊĠĠĠ Ġ| ! ĊĠĠĠ Ġ| âĶ Į âĶĢâĶĢ âĶĢâĶ ¬ âĶĢâĶĢ âĶĢâĶ ¬ âĶĢâĶĢ âĶĢâĶ Ĳ ĊĠĠĠ Ġ| âĶĤ Ġ 1 ĠâĶĤ Ġ 2 ĠâĶĤ Ġ 3 ĠâĶĤ ĊĠĠĠ Ġ| âĶĶ âĶĢâĶĢ âĶĢâĶ ´ âĶĢâĶĢ âĶĢâĶ ´ âĶĢâĶĢ âĶĢâĶ ĺ ĊĠĠĠ Ġ| ! ĊĠĠĠ Ġ"" ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġobject Ġ: ĠWidget Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmeasure ( t : ĠTerminal , Ġwidth : ĠInt ) Ġ= ĠWidth Range ( 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrender ( t : ĠTerminal , Ġwidth : ĠInt ) Ġ= ĠLines ( listOf ( Line ( listOf ( Span . word (" ! ")) ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcaption Top ( r ) ĊĠĠĠĠĠĠĠ Ġcaption Bottom ( r ) ĊĠĠĠĠĠĠĠ Ġbody Ġ{ Ġrow ( 1 , Ġ 2 , Ġ 3 ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgrid () Ġ= Ġcheck Render ( ĊĠĠĠĠĠĠĠ Ġgrid Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn ( 0 ) Ġ{ Ġwidth Ġ= ĠColumn Width . Fixed ( 3 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 1 , Ġ". 2 .", Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow ( 4 , Ġ 5 , Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġ}, Ġ""" ĊĠĠĠĠ 1 ĠĠ Ġ. 2 . Ġ 3 ĊĠĠĠĠ 4 ĠĠĠ 5 ĠĠĠ 6 ĊĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġdo Test ( expected : ĠString , Ġbuilder : ĠTable Builder . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Render ( table ( builder ), Ġexpected . trim Margin (), Ġtrim Indent Ġ= Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Body Test ( expected : ĠString , Ġbuilder : ĠSection Builder . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Render ( table Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġborder Style Ġ= ĠBorder Style . HE AV Y _ HEAD _ FO OT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody ( builder ) ĊĠĠĠĠĠĠĠ Ġ}, Ġexpected . trim Margin (), Ġtrim Indent Ġ= Ġfalse ) ĊĠĠĠ Ġ} Ċ } Ċ