package Ġno . nav . mel dep li kt . mel dek ort service . mapper Ċ Ċ import Ġno . nav . mel dep li kt . mel dek ort service . model . enum . K ort Type Ċ import Ġno . nav . mel dep li kt . mel dek ort service . model . mel dek ort detal jer . Mel dek ort Dag Ċ import Ġno . nav . mel dep li kt . mel dek ort service . model . mel dek ort detal jer . Mel dek ort detal jer Ċ import Ġno . nav . mel dep li kt . mel dek ort service . model . mel dek ort detal jer . Sp ors mal Ċ import Ġno . nav . mel dep li kt . mel dek ort service . model . mel dek ort detal jer . kont roll . Fr ava er In n Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . format . DateTime Formatter Ċ Ċ class ĠMel dek ort kont roll Mapper Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmel dek ort kont roll Mapper Ġ= ĠMel dek ort kont roll Mapper () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Mel dek ort kont roll Mapper () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmel dek ort D ager Ġ= Ġmutable ListOf < Mel dek ort Dag >() ĊĠĠĠĠĠĠĠ Ġmel dek ort D ager . add ( Mel dek ort Dag ( 1 , Ġ 0 F , Ġtrue , Ġtrue , Ġtrue )) ĊĠĠĠĠĠĠĠ Ġmel dek ort D ager . add ( Mel dek ort Dag ( 2 , Ġ 2 3 . 5 F , Ġfalse , Ġfalse , Ġfalse )) ĊĠĠĠĠĠĠĠ Ġmel dek ort D ager . add ( Mel dek ort Dag ( 3 , Ġ 0 F , Ġtrue , Ġtrue , Ġtrue )) ĊĠĠĠĠĠĠĠ Ġmel dek ort D ager . add ( Mel dek ort Dag ( 4 , Ġ 0 F , Ġtrue , Ġtrue , Ġtrue )) ĊĠĠĠĠĠĠĠ Ġval Ġsp ors mal Ġ= ĠSp ors mal ( true , Ġfalse , Ġfalse , Ġtrue , Ġtrue , Ġfalse , Ġfalse , Ġmel dek ort D ager ) ĊĠĠĠĠĠĠĠ Ġval Ġmel dek ort detal jer Ġ= ĠMel dek ort detal jer ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 2 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 3 5 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 9 9 9 9 9 1 2 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 2 3 4 5 6 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 0 2 0 0 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" DAG P ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" nok kel ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK ort Type . MASK IN EL T _ OP P DAT ERT , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . now (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . now (). plus Days ( 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ors mal , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Be gr un n else " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmel dek ort kont roll Ġ= Ġmel dek ort kont roll Mapper . map Mel dek ort Til Mel dek ort kont roll ( mel dek ort detal jer ) ĊĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . mel dek ort Id . equals ( mel dek ort detal jer . mel dek ort Id )) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . fn r . equals ( mel dek ort detal jer . f od se ls nr )) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . person Id Ġ== Ġmel dek ort detal jer . person Id ) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . peri ode F ra Ġ== ĠLocalDate . parse (" 2 0 2 0 - 0 1 - 2 0 ", ĠDateTime Formatter . ISO _ DATE )) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . peri ode Til Ġ== ĠLocalDate . parse (" 2 0 2 0 - 0 2 - 0 2 ", ĠDateTime Formatter . ISO _ DATE )) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . k ort K an Sen des F ra Ġ== ĠLocalDate . parse (" 2 0 2 0 - 0 2 - 0 1 ", ĠDateTime Formatter . ISO _ DATE )) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . peri ode K ode Ġ== Ġmel dek ort detal jer . mel de peri ode ) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . mel de grup pe . equals ( mel dek ort detal jer . mel de grup pe )) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . person Id . equals ( mel dek ort detal jer . person Id )) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . ann et Fr ava er Ġ== Ġsp ors mal . ann et Fr ava er ) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . ar be ide t Ġ== Ġsp ors mal . ar be ide t ) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . ar be id ss oker Ġ== Ġsp ors mal . ar be id ss oker ) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . for sku dd Ġ== Ġsp ors mal . for sku dd ) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . k urs Ġ== Ġsp ors mal . k urs ) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . sign atur Ġ== Ġsp ors mal . sign atur ) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . sy k Ġ== Ġsp ors mal . sy k ) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . fr ava ers d ager . size Ġ== Ġmel dek ort D ager . size ) ĊĠĠĠĠĠĠĠ Ġsam men l ign Mel dek ort Dag ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmel dek ort kont roll . fr ava ers d ager [ 0 ], ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmel dek ort D ager [ 0 ], ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmel dek ort kont roll . peri ode F ra !! ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . fr ava ers d ager [ 0 ]. har Sy k !! ) ĊĠĠĠĠĠĠĠ Ġsam men l ign Mel dek ort Dag ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmel dek ort kont roll . fr ava ers d ager [ 1 ], ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmel dek ort D ager [ 1 ], ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmel dek ort kont roll . peri ode F ra !! ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . fr ava ers d ager [ 1 ]. ar be id Timer !! Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġassert ( mel dek ort kont roll . be gr un n else Ġ== Ġmel dek ort detal jer . be gr un n else ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsam men l ign Mel dek ort Dag ( f ra : ĠFr ava er In n , Ġtil : ĠMel dek ort Dag , Ġfo er ste Dag : ĠLocalDate ) Ġ{ ĊĠĠĠĠĠĠĠ Ġassert ( f ra . ar be id Timer Ġ== Ġtil . ar be ide t Timer Sum !!. toDouble ()) ĊĠĠĠĠĠĠĠ Ġassert ( f ra . dag Ġ== Ġfo er ste Dag . plus Days ( til . dag . to Long () Ġ- Ġ 1 )) ĊĠĠĠ Ġ} Ċ } Ċ