package Ġcom . golden berg . data . structure . tables ĊĊ Ċ import Ġcom . golden berg . data . structure . tables . default Impl . Default Column Ċ import Ġcom . golden berg . data . structure . tables . default Impl . Default Row Ċ import Ġcom . golden berg . data . structure . tables . default Impl . Default Table Ċ import Ġorg . junit . jupiter . api . Before All Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . Test Instance Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġkotlin . test . assertEquals Ċ Ċ @ Test Instance ( Test Instance . Lifecycle . PER _ CLASS ) Ċ abstract Ġclass ĠAbstract Table Factory Test Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġdefault Row Id : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfactory : ĠTable Factory ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdefault Table Id : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdefault ColumnName : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdefault CellValue : ĠAny ĊĊĠĠĠ Ġ@ Before All ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ("> > ĠSetup ") ĊĠĠĠĠĠĠĠ Ġthis . factory Ġ= Ġset Factory () ĊĠĠĠĠĠĠĠ Ġthis . default Table Id Ġ= Ġ" table " ĊĠĠĠĠĠĠĠ Ġthis . default Row Id Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġthis . default ColumnName Ġ= Ġ" name " ĊĠĠĠĠĠĠĠ Ġthis . default CellValue Ġ= Ġ" value " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġset Factory (): ĠTable Factory ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠTable ` Ġ() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( set Tbl ( default Table Id ), Ġfactory . createTable ( default Table Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠRow ` Ġ() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( set Row ( default Row Id , Ġtable ), Ġfactory . create Row ( table , Ġdefault Row Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠRow ĠBy ĠRow ` Ġ() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( set Row ( default Row Id , Ġtable ), Ġfactory . create Row ( table , Ġdefault Row Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠRow ĠBy ĠRow ĠOverride Ġindex ` Ġ() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( set Row ( default Row Id , ĠDefault Table ( default Table Id )), Ġfactory . create Row ( table , ĠDefault Row ( table , Ġ 0 ), Ġdefault Row Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠRow ĠBy ĠRow ĠOverride ĠException ` Ġ() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ Ġval Ġrow Ġ= Ġfactory . create Row ( table , Ġdefault Row Id ) ĊĠĠĠĠĠĠĠ ĠassertThrows < IllegalArgumentException > Ġ{ Ġfactory . create Row ( table , Ġrow ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠRow ĠBy ĠRow ĠOverride ĠRow `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ Ġval Ġrow Ġ= Ġfactory . create Row ( table , Ġdefault Row Id ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( set Row ( default Row Id , Ġtable ), Ġfactory . create Row ( table , Ġrow , Ġis Override Ġ= Ġtrue )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠRow ĠBy ĠRow ĠOverride ĠRow ĠWith ĠNew ĠColumns `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ Ġval Ġcol Ġ= Ġfactory . create Column ( table , Ġdefault ColumnName ) ĊĠĠĠĠĠĠĠ Ġval Ġcol 1 Ġ= Ġfactory . create Column ( table , Ġdefault ColumnName Ġ+ Ġ" 1 ") ĊĠĠĠĠĠĠĠ Ġval Ġrow Ġ= Ġfactory . create Row ( table , Ġdefault Row Id ) ĊĠĠĠĠĠĠĠ Ġfactory . create Cell ( table , Ġrow , Ġcol , Ġ" val ") ĊĠĠĠĠĠĠĠ Ġfactory . create Cell ( table , Ġrow , Ġcol 1 , Ġ" val 1 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġtable 1 Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ Ġfactory . create Column ( table 1 , Ġdefault ColumnName ) ĊĠĠĠĠĠĠĠ Ġfactory . create Row ( table 1 , Ġdefault Row Id ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtable 2 Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ Ġval Ġcol 2 Ġ= Ġfactory . create Column ( table 2 , Ġdefault ColumnName ) ĊĠĠĠĠĠĠĠ Ġval Ġrow 2 Ġ= Ġfactory . create Row ( table 2 , Ġdefault Row Id ) ĊĠĠĠĠĠĠĠ Ġfactory . create Cell ( table 2 , Ġrow 2 , Ġcol 2 , Ġ" val ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( row 2 , Ġfactory . create Row ( table 1 , Ġrow , Ġis Override Ġ= Ġtrue )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠRow ĠBy ĠRow ĠOverride ĠIndex Ġ& ĠAllow ĠOverride `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ Ġval Ġrow Ġ= Ġfactory . create Row ( table , Ġ 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( set Row ( default Row Id , Ġtable ), Ġfactory . create Row ( table , Ġrow , Ġdefault Row Id , Ġtrue )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠColumn `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( set Col ( this . default ColumnName , Ġtable ), Ġfactory . create Column ( table , Ġthis . default ColumnName )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠColumn ĠBy ĠColumn ` Ġ() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ Ġval Ġtbl Ġ= ĠDefault Table ( default Table Id ) ĊĠĠĠĠĠĠĠ Ġval Ġcol Ġ= ĠDefault Column ( tbl , Ġdefault ColumnName ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( set Col ( this . default ColumnName , Ġtable ), Ġfactory . create Column ( table , Ġcol )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠColumn ĠWith ĠNo ĠComparable ĠValue `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( set Col ( this . default ColumnName , Ġtable , Ġfalse ), Ġfactory . create Column ( table , Ġthis . default ColumnName , Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠColumn ĠWith ĠDefault ĠValue `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ Ġval Ġcol Ġ= Ġfactory . create Column ( table , Ġdefault ColumnName , ĠdefaultValue Ġ= Ġdefault CellValue ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( col , Ġset Col ( default ColumnName , Ġtable , ĠdefaultValue Ġ= Ġdefault CellValue )) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠColumn ĠWith ĠNon - Comparable ĠDefault ĠValue `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ Ġval Ġcol Ġ= Ġfactory . create Column ( table , Ġdefault ColumnName , Ġfalse , Ġdefault CellValue ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( set Col ( default ColumnName , Ġtable , Ġfalse , Ġdefault CellValue ), Ġcol ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠCell `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ Ġval Ġrow Ġ= Ġfactory . create Row ( table , Ġdefault Row Id ) ĊĠĠĠĠĠĠĠ Ġval Ġcol Ġ= Ġfactory . create Column ( table , Ġdefault ColumnName ) ĊĠĠĠĠĠĠĠ Ġval Ġcell Ġ= Ġfactory . create Cell ( table , Ġrow , Ġcol , Ġdefault CellValue ) ĊĠĠĠĠĠĠĠ Ġval Ġtbl Ġ= Ġset Tbl ( default Table Id ) ĊĠĠĠĠĠĠĠ Ġval Ġcol 1 Ġ= Ġset Col ( default ColumnName , Ġtbl ) ĊĠĠĠĠĠĠĠ Ġval Ġrow 1 Ġ= Ġset Row ( default Row Id , Ġtbl ) ĊĠĠĠĠĠĠĠ Ġval Ġcell 1 Ġ= Ġset Cell ( default CellValue , Ġtbl , Ġrow 1 , Ġcol 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( cell 1 , Ġcell ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Create ĠCell ĠWith ĠOverride `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġfactory . createTable ( default Table Id ) ĊĠĠĠĠĠĠĠ Ġval Ġrow Ġ= Ġfactory . create Row ( table , Ġdefault Row Id ) ĊĠĠĠĠĠĠĠ Ġval Ġcol Ġ= Ġfactory . create Column ( table , Ġdefault ColumnName ) ĊĠĠĠĠĠĠĠ Ġval Ġcell Ġ= Ġfactory . create Cell ( table , Ġrow , Ġcol , Ġdefault CellValue ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtable 1 Ġ= Ġfactory . createTable ( default Table Id ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( cell , Ġfactory . create Cell ( table 1 , Ġcell )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġset Tbl ( id : ĠString ): ĠWrit able Table ĊĊĠĠĠ Ġabstract Ġfun Ġset Col ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtable : ĠWrit able Table , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Comparable : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue : ĠAny ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠColumn ĊĊĠĠĠ Ġabstract Ġfun Ġset Row ( id : ĠInt , Ġtable : ĠWrit able Table ): ĠRow ĊĊĠĠĠ Ġabstract Ġfun Ġset Cell ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue : ĠAny , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtable : ĠWrit able Table , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow : ĠRow , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn : ĠColumn ĊĠĠĠ Ġ): ĠCell Ċ Ċ } Ċ