package Ġcom . wil lout west . kal ah ari . render Ċ Ċ import Ġio . kot lint est . properties . Gen Ċ import Ġio . kot lint est . properties . assert All Ċ import Ġio . kot lint est . shouldBe Ċ import Ġio . kot lint est . specs . Should Spec Ċ Ċ class ĠBounds Generator ( val Ġx Min : ĠInt , Ġval Ġx Max : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Min : ĠInt , Ġval Ġy Max : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidth Min : ĠInt , Ġval Ġwidth Max : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheight Min : ĠInt , Ġval Ġheight Max : ĠInt ) Ġ: ĠGen < Bounds > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġconstants (): ĠIterable < Bounds > Ġ= Ġempty List () ĊĊĠĠĠ Ġoverride Ġfun Ġrandom (): ĠSequence < Bounds > Ġ= Ġgenerate Sequence Ġ{ ĊĠĠĠĠĠĠĠ ĠBounds ( Gen . choose ( this . x Min , Ġthis . x Max ). random (). first (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGen . choose ( this . y Min , Ġthis . y Max ). random (). first (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGen . choose ( this . width Min , Ġthis . width Max ). random (). first (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGen . choose ( this . height Min , Ġthis . height Max ). random (). first ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠGen . Companion . bounds ( x Max : ĠInt Ġ= Ġ 1 0 0 0 , Ġy Max : ĠInt Ġ= Ġ 1 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Max : ĠInt Ġ= Ġ 1 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Max : ĠInt Ġ= Ġ 1 0 0 0 ): ĠGen < Bounds > Ġ= ĊĠĠĠ ĠBounds Generator ( 0 , Ġx Max , Ġ 0 , Ġy Max , Ġ 1 , Ġwidth Max , Ġ 1 , Ġheight Max ) Ċ Ċ fun ĠGen . Companion . bounds ( x Min : ĠInt Ġ= Ġ 0 , Ġx Max : ĠInt Ġ= Ġ 1 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Min : ĠInt Ġ= Ġ 0 , Ġy Max : ĠInt Ġ= Ġ 1 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Min : ĠInt Ġ= Ġ 1 , Ġwidth Max : ĠInt Ġ= Ġ 1 0 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Min : ĠInt Ġ= Ġ 1 , Ġheight Max : ĠInt Ġ= Ġ 1 0 0 0 ): ĊĠĠĠ ĠGen < Bounds > Ġ= ĊĠĠĠ ĠBounds Generator ( x Min , Ġx Max , Ġy Min , Ġy Max , Ġwidth Min , Ġwidth Max , Ġheight Min , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Max ) Ċ Ċ /** Ċ Ġ* ĠTest Ġsuite Ġfor Ġ[ Bounds ]. Ċ Ġ*/ Ċ class ĠBounds Test Ġ: ĠShould Spec () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ" Comp uting Ġthe Ġarea Ġof Ġa Ġbounds " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould (" be Ġthe Ġproduct Ġof Ġthe Ġwidth Ġtimes Ġthe Ġheight ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert All ( Gen . bounds ()) Ġ{ Ġbounds : ĠBounds Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds . area ĠshouldBe Ġ( bounds . width Ġ* Ġbounds . height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }