/**************************************************************************** Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 6 - 2 0 2 0 ĠY ev gen y ĠK ras ik ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); ĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . ĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware ĠĠĠĠĠ Ġ* Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , ĠĠĠĠĠĠĠ Ġ* Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ġ* Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand ĠĠĠĠĠ Ġ* Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ************************************************************************* ***/ Ċ Ċ package Ġcom . gitlab . y kr as ik . game dex . test Ċ Ċ import Ġcom . gitlab . y kr as ik . game dex . Score Ċ import Ġcom . gitlab . y kr as ik . game dex . Timestamp Ċ import Ġcom . gitlab . y kr as ik . game dex . util . file Ċ import Ġcom . gitlab . y kr as ik . game dex . util . now Ċ import Ġkotlinx . coroutines . re package d . net . byte buddy . utility . Random String Ċ import Ġorg . joda . time . DateTime Ċ import Ġorg . joda . time . LocalDate Ċ import Ġorg . reflection s . Reflection s Ċ import Ġorg . reflection s . sc anners . Resources Scanner Ċ import Ġjava . text . Decimal Format Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠUser : Ġy kr as ik Ċ Ġ* ĠDate : Ġ 1 9 / 0 3 / 2 0 1 7 Ċ Ġ* ĠTime : Ġ 1 3 : 4 5 Ċ Ġ*/ Ċ private Ġobject ĠTest Resources Ġ{ ĊĠĠĠ Ġval Ġwords Ġ= Ġjava Class . getResource (" words . txt "). read Text (). lines () ĊĠĠĠ Ġval Ġgen res Ġ= Ġjava Class . getResource (" genres . txt "). read Text (). lines () ĊĊĠĠĠ Ġ/* ĠThese Ġimages Ġwere Ġall Ġtaken Ġfrom Ġ[[ ig db . com ]] Ġ*/ ĊĠĠĠ Ġval Ġimages Ġ= ĠReflection s (" com . gitlab . y kr as ik . game dex . test . images ", ĠResources Scanner ()) ĊĠĠĠĠĠĠĠ Ġ. getResources Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġthis :: class . java . getResource ("/ $ it ") Ġ} Ċ } Ċ Ċ val Ġrnd Ġ= ĠRandom () Ċ Ċ fun Ġrandom String ( length : ĠInt Ġ= Ġ 8 ): ĠString Ġ= ĠRandom String . make ( length ) Ċ Ċ /** Ċ Ġ* Ġ[ max ] Ġis Ġinclusive . Ċ Ġ*/ Ċ fun Ġrandom Int ( max : ĠInt Ġ= ĠInt . MAX _ VALUE Ġ- Ġ 1 , Ġmin : ĠInt Ġ= Ġ 0 ): ĠInt Ġ= Ġif Ġ( min Ġ!= Ġmax ) Ġrnd . nextInt ( max Ġ+ Ġ 1 Ġ- Ġmin ) Ġ+ Ġmin Ġelse Ġmin Ċ Ċ inline Ġfun Ġ< T > Ġrandom List ( max : ĠInt Ġ= ĠInt . MAX _ VALUE Ġ- Ġ 1 , Ġmin : ĠInt Ġ= Ġ 1 , Ġf : Ġ( Int ) Ġ-> ĠT ): ĠList < T > Ġ= ĊĠĠĠ ĠList ( random Int ( min Ġ= Ġmin , Ġmax Ġ= Ġmax ), Ġf ) Ċ Ċ fun Ġrandom Word () Ġ= ĠTest Resources . words . random Element () Ċ fun Ġrandom Words ( max Words : ĠInt Ġ= ĠInt . MAX _ VALUE Ġ- Ġ 1 , Ġmin Words : ĠInt Ġ= Ġ 1 ): ĠList < String > Ġ= ĊĠĠĠ Ġrandom List ( min Ġ= Ġmin Words , Ġmax Ġ= Ġmax Words ) Ġ{ Ġrandom Word () Ġ} Ċ Ċ fun Ġrandom Name ( max Words : ĠInt Ġ= Ġ 6 ): ĠString Ġ= Ġrandom Words ( max Words ). join ToString (" Ġ") Ġ{ Ġit . capitalize () Ġ} Ċ Ċ fun Ġrandom Paragraph ( min Words : ĠInt Ġ= Ġ 2 0 , Ġmax Words : ĠInt Ġ= Ġ 1 0 0 ): ĠString Ġ= ĊĠĠĠ Ġrandom Words ( min Words Ġ= Ġmin Words , Ġmax Words Ġ= Ġmax Words ). join ToString (" Ġ"). capitalize () Ċ Ċ fun Ġrandom Path ( max Elements : ĠInt Ġ= Ġ 4 , Ġmin Elements : ĠInt Ġ= Ġ 1 ): ĠString Ġ= Ġrandom Words ( min Words Ġ= Ġmin Elements , Ġmax Words Ġ= Ġmax Elements ). join ToString ("/") Ċ fun Ġrandom File () Ġ= Ġrandom Path (). file Ċ fun Ġrandom Url () Ġ= Ġ" http ://${ random Words ( min Words Ġ= Ġ 3 , Ġmax Words Ġ= Ġ 3 ). join ToString (".") }/${ random Path ()} ". toLowerCase () Ċ Ċ fun Ġrandom Timestamp (): ĠTimestamp Ġ= ĠTimestamp ( create Date Ġ= Ġrandom DateTime (), Ġupdate Date Ġ= Ġrandom DateTime ()) Ċ fun Ġrandom DateTime (): ĠDateTime Ġ= Ġnow . minus Seconds ( random Int ( 9 9 9 9 9 9 9 9 9 )) Ċ fun Ġrandom LocalDate (): ĠLocalDate Ġ= Ġrandom DateTime (). to LocalDate () Ċ fun Ġrandom LocalDate String (): ĠString Ġ= Ġrandom LocalDate (). toString () Ċ Ċ fun Ġrandom Score () Ġ= ĠScore ( ĊĠĠĠ Ġscore Ġ= ĠDecimal Format (" ### . ## "). format ( rnd . next Double () Ġ* Ġ 1 0 0 ). toDouble (), ĊĠĠĠ Ġnum Reviews Ġ= Ġrandom Int ( max Ġ= Ġ 3 0 0 0 , Ġmin Ġ= Ġ 1 ) Ċ ) Ċ Ċ fun Ġrandom Genre () Ġ= ĠTest Resources . genres . random Element () Ċ Ċ fun Ġrandom Image (): ĠByteArray Ġ= ĠTest Resources . images . random Element (). read Bytes () Ċ Ċ inline Ġfun Ġ< re ified ĠE Ġ: ĠEnum < E >> Ġrandom Enum (): ĠE Ġ= ĠE :: class . java . enum Constants . random Element () Ċ Ċ fun Ġ< T > ĠList < T >. random Element (): ĠT Ġ= Ġthis [ random Int ( size Ġ- Ġ 1 )] Ċ fun Ġ< T > ĠArray < T >. random Element (): ĠT Ġ= Ġthis [ random Int ( size Ġ- Ġ 1 )] Ċ Ċ // Ġchance Ġof Ġhappening Ġis Ġ 1 / chance Ċ fun Ġ< T > ĠT . some times Null ( chance : ĠInt Ġ= Ġ 2 0 ) Ġ= Ġthis . take If Ġ{ Ġrandom Int ( chance ) Ġ< Ġchance Ġ}