/* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 - 2 0 1 9 ĠJetBrains Ġs . r . o . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 ĠLicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġtests . stress Ċ Ċ import Ġkotlin . random . Random ĊĊ Ċ class ĠWrapper Generator < K : ĠComparable < K >>( private Ġval ĠhashCode Upper Bound : ĠInt ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġelement Map Ġ= Ġhash Map Of < K , ĠObject Wrapper < K >>() ĊĠĠĠ Ġprivate Ġval ĠhashCode Map Ġ= Ġhash Map Of < Int , ĠMutable List < Object Wrapper < K >> >() ĊĊĠĠĠ Ġfun Ġwrapper ( element : ĠK ): ĠObject Wrapper < K > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexisting Ġ= Ġelement Map [ element ] ĊĠĠĠĠĠĠĠ Ġif Ġ( existing Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġexisting ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠhashCode Ġ= ĠRandom . nextInt ( hashCode Upper Bound ) ĊĠĠĠĠĠĠĠ Ġval Ġwrapper Ġ= ĠObject Wrapper ( element , ĠhashCode ) ĊĠĠĠĠĠĠĠ Ġelement Map [ element ] Ġ= Ġwrapper ĊĊĠĠĠĠĠĠĠ Ġval Ġwrappers Ġ= ĠhashCode Map [ hashCode ] Ġ?: Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġwrappers . add ( wrapper ) ĊĠĠĠĠĠĠĠ ĠhashCode Map [ hashCode ] Ġ= Ġwrappers ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwrapper ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwrapper sBy HashCode ( hashCode : ĠInt ): ĠList < Object Wrapper < K >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠhashCode Map [ hashCode ] Ġ?: Ġmutable ListOf () ĊĠĠĠ Ġ} Ċ }