package Ġno . nav . hel se . ut bet aling st ids lin je Ċ Ċ import Ġno . nav . hel se . hen del ser . Per i ode Ċ import Ġno . nav . hel se . hen del ser . til Ċ import Ġno . nav . hel se . person .* Ċ import Ġno . nav . hel se . sy k dom st ids lin je . Sy k dom st ids lin je Ċ import Ġno . nav . hel se . test helpers .* Ċ import Ġno . nav . hel se . Ã¸ k onom i . In n te kt Ċ import Ġno . nav . hel se . Ã¸ k onom i . In n te kt . Companion . dag lig Ċ import Ġno . nav . hel se . Ã¸ k onom i . Ã ĺ k onom i Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . time . LocalDate Ċ import Ġjava . util .* Ċ Ċ internal Ġclass ĠRef us jon sg j Ã¸ ds ler Test Ġ{ ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġf Ã¸ r () Ġ{ ĊĠĠĠĠĠĠĠ Ġreset Seed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Gj Ã¸ ds ler Ġut bet al ings lin je Ġmed Ġfull Ġref us jon Ġi Ġj an uar `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġut bet aling st ids lin je Ġ= Ġ( 1 6 . U Ġ+ Ġ 1 0 . S ). ut bet aling st ids lin je ( inn tek ts op pl ys ning ( 1 . jan uar , Ġ 2 8 6 2 . dag lig )) ĊĠĠĠĠĠĠĠ Ġval Ġref us jon sg j Ã¸ ds ler Ġ= ĠRef us jon sg j Ã¸ ds ler ( t ids lin je Ġ= Ġut bet aling st ids lin je , Ġref us jon sh istor ikk Ġ= Ġref us jon sh istor ikk ( ref us jon ( 1 . jan uar , Ġ 1 4 3 1 . dag lig ))) ĊĠĠĠĠĠĠĠ Ġval Ġaktiv it ets log g Ġ= ĠA ktiv it ets log g () ĊĠĠĠĠĠĠĠ Ġref us jon sg j Ã¸ ds ler . gj Ã¸ ds le ( aktiv it ets log g ) ĊĠĠĠĠĠĠĠ Ġassert Ref us jon Ar be id sg iver ( ut bet aling st ids lin je , Ġ 1 4 3 1 . 0 ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( aktiv it ets log g . has Warnings Or W orse ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Gj Ã¸ ds ler Ġut bet al ings lin je Ġut en Ġref us jon Ġi Ġj an uar `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġut bet aling st ids lin je Ġ= Ġ( 1 6 . U Ġ+ Ġ 1 0 . S ). ut bet aling st ids lin je ( inn tek ts op pl ys ning ( 1 . jan uar , Ġ 1 4 3 1 . dag lig )) ĊĠĠĠĠĠĠĠ Ġval Ġref us jon sg j Ã¸ ds ler Ġ= ĠRef us jon sg j Ã¸ ds ler ( t ids lin je Ġ= Ġut bet aling st ids lin je , Ġref us jon sh istor ikk Ġ= Ġref us jon sh istor ikk ( ref us jon ( 1 . jan uar , Ġnull ))) ĊĠĠĠĠĠĠĠ Ġval Ġaktiv it ets log g Ġ= ĠA ktiv it ets log g () ĊĠĠĠĠĠĠĠ Ġref us jon sg j Ã¸ ds ler . gj Ã¸ ds le ( aktiv it ets log g ) ĊĠĠĠĠĠĠĠ Ġassert Ref us jon Ar be id sg iver ( ut bet aling st ids lin je , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( aktiv it ets log g . has Warnings Or W orse ()) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Gj Ã¸ ds ler Ġut bet al ings lin je Ġmed Ġfull Ġref us jon Ġi Ġfe bru ar `() Ġ{ ĊĠĠĠĠĠĠĠ Ġreset Seed ( 1 . fe bru ar ) ĊĠĠĠĠĠĠĠ Ġval Ġut bet aling st ids lin je Ġ= Ġ( 1 6 . U Ġ+ Ġ 1 0 . S ). ut bet aling st ids lin je ( inn tek ts op pl ys ning ( 1 . fe bru ar , Ġ 2 3 0 8 . dag lig )) ĊĠĠĠĠĠĠĠ Ġval Ġref us jon sg j Ã¸ ds ler Ġ= ĠRef us jon sg j Ã¸ ds ler ( t ids lin je Ġ= Ġut bet aling st ids lin je , Ġref us jon sh istor ikk Ġ= Ġref us jon sh istor ikk ( ref us jon ( 1 . fe bru ar , Ġ 1 1 5 4 . dag lig ))) ĊĠĠĠĠĠĠĠ Ġval Ġaktiv it ets log g Ġ= ĠA ktiv it ets log g () ĊĠĠĠĠĠĠĠ Ġref us jon sg j Ã¸ ds ler . gj Ã¸ ds le ( aktiv it ets log g ) ĊĠĠĠĠĠĠĠ Ġassert Ref us jon Ar be id sg iver ( ut bet aling st ids lin je , Ġ 1 1 5 4 . 0 ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( aktiv it ets log g . has Warnings Or W orse ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Gj Ã¸ ds ler Ġut bet al ings lin je Ġh vor Ġvi Ġik ke Ġf inner Ġno e Ġref us jon Ġ( Info try gd âģ ī ) Ġ- ĠLeg ger ĠpÃ¥ Ġwarning Ġog Ġan tar Ġfull Ġref us jon `() Ġ{ ĊĠĠĠĠĠĠĠ Ġreset Seed ( 1 . fe bru ar ) ĊĠĠĠĠĠĠĠ Ġval Ġut bet aling st ids lin je Ġ= Ġ( 1 6 . U Ġ+ Ġ 1 0 . S ). ut bet aling st ids lin je ( inn tek ts op pl ys ning ( 1 . fe bru ar , Ġ 2 3 0 8 . dag lig )) ĊĠĠĠĠĠĠĠ Ġval Ġref us jon sg j Ã¸ ds ler Ġ= ĠRef us jon sg j Ã¸ ds ler ( t ids lin je Ġ= Ġut bet aling st ids lin je , Ġref us jon sh istor ikk Ġ= Ġref us jon sh istor ikk ()) ĊĠĠĠĠĠĠĠ Ġval Ġaktiv it ets log g Ġ= ĠA ktiv it ets log g () ĊĠĠĠĠĠĠĠ Ġref us jon sg j Ã¸ ds ler . gj Ã¸ ds le ( aktiv it ets log g ) ĊĠĠĠĠĠĠĠ Ġ// ĠHel ger Ġi Ġar be id sg iver period en Ġhar Ġinn te kt ĊĠĠĠĠĠĠĠ Ġassert Ref us jon Ar be id sg iver ( ut bet aling st ids lin je [ 1 . fe bru ar Ġtil Ġ 1 6 . fe bru ar ], Ġ 2 3 0 8 . 0 ) ĊĠĠĠĠĠĠĠ Ġassert Ref us jon Ar be id sg iver ( ut bet aling st ids lin je [ 1 7 . fe bru ar Ġtil Ġ 1 8 . fe bru ar ], Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġassert Ref us jon Ar be id sg iver ( ut bet aling st ids lin je [ 1 9 . fe bru ar Ġtil Ġ 2 3 . fe bru ar ], Ġ 2 3 0 8 . 0 ) ĊĠĠĠĠĠĠĠ Ġassert Ref us jon Ar be id sg iver ( ut bet aling st ids lin je [ 2 4 . fe bru ar Ġtil Ġ 2 5 . fe bru ar ], Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġassert Ref us jon Ar be id sg iver ( ut bet aling st ids lin je [ 2 6 . fe bru ar Ġtil Ġ 2 6 . fe bru ar ], Ġ 2 3 0 8 . 0 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( aktiv it ets log g . has Warnings Or W orse ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` U tb et aling st ids lin je Ġmed Ġfl ere Ġsam men h eng ende Ġsy k dom sper iod er Ġh enter Ġri kt ig Ġref us jon Ġfor Ġperiod en `() Ġ{ ĊĠĠĠĠĠĠĠ Ġreset Seed ( 1 . fe bru ar ) ĊĠĠĠĠĠĠĠ Ġval Ġut bet aling st ids lin je Ġ= Ġ( 1 6 . U Ġ+ Ġ 1 0 . S Ġ+ Ġ 2 . A Ġ+ Ġ 1 0 . S ). ut bet aling st ids lin je ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinn tek ts op pl ys ning ( 1 . fe bru ar , Ġ 2 3 0 8 . dag lig ) Ġ+ Ġinn tek ts op pl ys ning ( 1 . mars , Ġ 2 5 0 0 . dag lig ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġref us jon sg j Ã¸ ds ler Ġ= ĠRef us jon sg j Ã¸ ds ler ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt ids lin je Ġ= Ġut bet aling st ids lin je , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġref us jon sh istor ikk Ġ= Ġref us jon sh istor ikk ( ref us jon ( 1 . fe bru ar , Ġ 2 3 0 8 . dag lig ), Ġref us jon ( 1 . mars , Ġ 2 5 0 0 . dag lig )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġaktiv it ets log g Ġ= ĠA ktiv it ets log g () ĊĠĠĠĠĠĠĠ Ġref us jon sg j Ã¸ ds ler . gj Ã¸ ds le ( aktiv it ets log g ) ĊĠĠĠĠĠĠĠ Ġassert Ref us jon Ar be id sg iver ( ut bet aling st ids lin je [ 1 . fe bru ar Ġtil Ġ 2 6 . fe bru ar ], Ġ 2 3 0 8 . 0 ) ĊĠĠĠĠĠĠĠ Ġassert Ref us jon Ar be id sg iver ( ut bet aling st ids lin je [ 2 7 . fe bru ar Ġtil Ġ 2 8 . fe bru ar ], Ġnull ) ĊĠĠĠĠĠĠĠ Ġassert Ref us jon Ar be id sg iver ( ut bet aling st ids lin je [ 1 . mars Ġtil Ġ 1 0 . mars ], Ġ 2 5 0 0 . 0 ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( aktiv it ets log g . has Warnings Or W orse ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` U tb et aling st ids lin je Ġmed Ġfl ere Ġsam men h eng ende Ġsy k dom sper iod er Ġog Ġopp delt Ġar be id sg iver peri ode Ġh enter Ġri kt ig Ġref us jon Ġfor Ġperiod en `() Ġ{ ĊĠĠĠĠĠĠĠ Ġreset Seed ( 1 . fe bru ar ) ĊĠĠĠĠĠĠĠ Ġval Ġut bet aling st ids lin je Ġ= Ġ( 8 . U Ġ+ Ġ 1 0 . A Ġ+ Ġ 8 . U Ġ+ Ġ 2 . S ). ut bet aling st ids lin je ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinn tek ts op pl ys ning ( 1 9 . fe bru ar , Ġ 2 3 0 8 . dag lig ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġref us jon sg j Ã¸ ds ler Ġ= ĠRef us jon sg j Ã¸ ds ler ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt ids lin je Ġ= Ġut bet aling st ids lin je , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġref us jon sh istor ikk Ġ= Ġref us jon sh istor ikk ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġref us jon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf Ã¸ r ste Fr av Ã¦ r sd ag Ġ= Ġ 1 9 . fe bru ar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbel Ã¸ p Ġ= Ġ 2 3 0 8 . dag lig , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġar be id sg iver period er Ġ= ĠlistOf ( 1 . fe bru ar Ġtil Ġ 8 . fe bru ar , Ġ 1 9 . fe bru ar Ġtil Ġ 2 6 . fe bru ar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġaktiv it ets log g Ġ= ĠA ktiv it ets log g () ĊĠĠĠĠĠĠĠ Ġref us jon sg j Ã¸ ds ler . gj Ã¸ ds le ( aktiv it ets log g ) ĊĠĠĠĠĠĠĠ Ġassert Ref us jon Ar be id sg iver ( ut bet aling st ids lin je [ 1 . fe bru ar Ġtil Ġ 1 8 . fe bru ar ], Ġnull ) ĊĠĠĠĠĠĠĠ Ġassert Ref us jon Ar be id sg iver ( ut bet aling st ids lin je [ 1 9 . fe bru ar Ġtil Ġ 2 8 . fe bru ar ], Ġ 2 3 0 8 . 0 ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( aktiv it ets log g . has Warnings Or W orse ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` U tb et aling st ids lin je Ġh vor Ġd agen Ġf Ã¸ r Ġen Ġar be id sg iver peri ode Ġer Ġen Ġf rid ag `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġut bet aling st ids lin je Ġ= Ġ( 8 . U Ġ+ Ġ 2 6 . op ph old Ġ+ Ġ 1 6 . U Ġ+ Ġ 2 . S ). ut bet aling st ids lin je ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinn tek ts op pl ys ning ( 4 . fe bru ar , Ġ 2 3 0 8 . dag lig ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġref us jon sg j Ã¸ ds ler Ġ= ĠRef us jon sg j Ã¸ ds ler ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt ids lin je Ġ= Ġut bet aling st ids lin je , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġref us jon sh istor ikk Ġ= Ġref us jon sh istor ikk ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġref us jon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf Ã¸ r ste Fr av Ã¦ r sd ag Ġ= Ġ 4 . fe bru ar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbel Ã¸ p Ġ= Ġ 2 3 0 8 . dag lig , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġar be id sg iver period er Ġ= ĠlistOf ( 4 . fe bru ar Ġtil Ġ 1 9 . fe bru ar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġaktiv it ets log g Ġ= ĠA ktiv it ets log g () ĊĠĠĠĠĠĠĠ Ġassert DoesNot Throw Ġ{ Ġref us jon sg j Ã¸ ds ler . gj Ã¸ ds le ( aktiv it ets log g ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Logger Ġi Ġaktiv it ets log gen Ġn Ã¥r Ġvi Ġbru ker Ġ' 1 6 Ġd agers Ġh opp '` () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġut bet aling st ids lin je Ġ= Ġ( 3 1 . op ph old Ġ+ Ġ 1 5 . S ). ut bet aling st ids lin je ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinn tek ts op pl ys ning ( 1 . fe bru ar , Ġ 2 3 0 8 . dag lig ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstr ateg i Ġ= Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġref us jon sg j Ã¸ ds ler Ġ= ĠRef us jon sg j Ã¸ ds ler ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt ids lin je Ġ= Ġut bet aling st ids lin je , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġref us jon sh istor ikk Ġ= Ġref us jon sh istor ikk ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġref us jon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf Ã¸ r ste Fr av Ã¦ r sd ag Ġ= Ġ 1 . jan uar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbel Ã¸ p Ġ= Ġ 2 3 0 8 . dag lig , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġar be id sg iver period er Ġ= ĠlistOf ( 1 . jan uar Ġtil Ġ 1 6 . jan uar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġaktiv it ets log g Ġ= ĠA ktiv it ets log g () ĊĠĠĠĠĠĠĠ Ġassert DoesNot Throw Ġ{ Ġref us jon sg j Ã¸ ds ler . gj Ã¸ ds le ( aktiv it ets log g ) Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf (" F ant Ġref us jon Ġved ĠÃ¥ Ġg Ã¥ Ġ 1 6 Ġd ager Ġtil b ake Ġf ra Ġf Ã¸ r ste Ġut bet al ings dag Ġi Ġsam men h eng ende Ġut bet aling "), Ġaktiv it ets log g . info Mel ding er ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoperator Ġfun ĠIterable < U tb et aling st ids lin je . U tb et al ings dag >. get ( peri ode : ĠPer i ode ) Ġ= Ġfilter Ġ{ Ġit . dat o Ġin Ġper i ode Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġassert Ref us jon Ar be id sg iver ( ut bet aling st ids lin je : ĠIterable < U tb et aling st ids lin je . U tb et al ings dag >, Ġfor vent et Uk ed ag bel Ã¸ p : ĠDouble ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġut bet aling st ids lin je . forEach Ġ{ Ġut bet al ings dag Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( for vent et Uk ed ag bel Ã¸ p , Ġut bet al ings dag . Ã¸ k onom i . ar be id sg iver Ref us j ons bel Ã¸ p ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġref us jon sh istor ikk ( var arg Ġref us jon er : ĠRef us jon sh istor ikk . Ref us jon ): ĠRef us jon sh istor ikk Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġref us jon sh istor ikk Ġ= ĠRef us jon sh istor ikk () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġref us jon er . forEach Ġ{ Ġref us jon sh istor ikk . leg g Til Ref us jon ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġref us jon sh istor ikk ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġref us jon ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf Ã¸ r ste Fr av Ã¦ r sd ag : ĠLocalDate , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbel Ã¸ p : ĠIn n te kt ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġar be id sg iver period er : ĠList < Per i ode > Ġ= ĠlistOf ( f Ã¸ r ste Fr av Ã¦ r sd ag Ġtil Ġf Ã¸ r ste Fr av Ã¦ r sd ag . plus Days ( 1 5 )) ĊĠĠĠĠĠĠĠ Ġ) Ġ= ĠRef us jon sh istor ikk . Ref us jon ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġme ld ings refer an se Id Ġ= ĠUUID . randomUUID (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf Ã¸ r ste Fr av Ã¦ r sd ag Ġ= Ġf Ã¸ r ste Fr av Ã¦ r sd ag , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġar be id sg iver period er Ġ= Ġar be id sg iver period er , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbel Ã¸ p Ġ= Ġbel Ã¸ p , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsist e Ref us j ons dag Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend ring er I Ref us jon Ġ= Ġempty List () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠÃ ĺ k onom i . ar be id sg iver Ref us j ons bel Ã¸ p () Ġ= Ġmed Data Ġ{ Ġ_, Ġar be id sg iver Ref us j ons bel Ã¸ p , Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġar be id sg iver Ref us j ons bel Ã¸ p Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġinn tek ts op pl ys ning ( sk j Ã¦ ring st id sp unkt : ĠLocalDate , Ġinn te kt : ĠIn n te kt ) Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk j Ã¦ ring st id sp unkt Ġto ĠIn n te kt sh istor ikk . In n tek ts meld ing ( UUID . randomUUID (), Ġsk j Ã¦ ring st id sp unkt , ĠUUID . randomUUID (), Ġinn te kt ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠS yk dom st ids lin je . ut bet aling st ids lin je ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinn tek ts op pl ys ning : ĠMap < LocalDate , ĠIn n te kt sh istor ikk . In n tek ts op pl ys ning ? >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstr ateg i : ĠFor len gel se str ateg i Ġ= ĠFor len gel se str ateg i . In gen ĊĠĠĠĠĠĠĠ Ġ): ĠU tb et aling st ids lin je Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt ids lin je Ġ= ĠU tb et aling st ids lin je Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsk j Ã¦ ring st id sp unk ter Ġ= Ġinn tek ts op pl ys ning . keys . toList (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinn te kt Per Sk j Ã¦ ring st id sp unkt Ġ= Ġinn tek ts op pl ys ning ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ Ġfor len gel se str ateg i ( str ateg i ) Ġ}. result ( this , Ġper i ode () !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġver if iser Re k ke f Ã¸ l ge ( t ids lin je ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġt ids lin je ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġver if iser Re k ke f Ã¸ l ge ( t ids lin je : ĠU tb et aling st ids lin je ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt ids lin je . window ed ( 2 ). forEach Ġ{ Ġ( for ri ge , Ġn este ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( nest e . dat o Ġ> Ġfor ri ge . dat o ) Ġ{ Ġ" Re k ke f Ã¸ l gen Ġer Ġik ke Ġri kt ig : Ġ${ nest e . dat o } Ġskal Ġv Ã¦ re Ġny ere Ġen n Ġ${ for ri ge . dat o }" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠA ktiv it ets log g . info Mel ding er (): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġme ld inger Ġ= Ġmutable ListOf < String >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccept ( object Ġ: ĠA ktiv it ets log g Visitor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġvisit Info ( kont ek ster : ĠList < S pes ifi kk Kont ek st >, Ġaktiv itet : ĠA ktiv it ets log g . A ktiv itet . Info , Ġme ld ing : ĠString , Ġt ids st emp el : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġme ld inger . add ( meld ing ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġme ld inger ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ