package Ġcom . sdk . growth book . tests Ċ Ċ import Ġcom . sdk . growth book . Utils . GB Features Ċ import Ġcom . sdk . growth book . model . GB Experiment Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġkotlinx . serialization . decode FromString Ċ import Ġkotlinx . serialization . json .* Ċ Ċ class ĠGB TestHelper Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Parser Ġ= ĠJson Ġ{ Ġignore Unknown Keys Ġ= Ġtrue Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠtestData Ġ= Ġjson Parser . decode FromString < Json Element >( gb TestCase s ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Eval Condition Data (): ĠJson Array Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠtestData . jsonObject . get (" eval Condition ") Ġas ĠJson Array ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġarray ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Run Experiment Data (): ĠJson Array Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠtestData . jsonObject . get (" run ") Ġas ĠJson Array ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġarray ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget F NV Hash Data (): ĠJson Array Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠtestData . jsonObject . get (" hash ") Ġas ĠJson Array ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġarray ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Feature Data (): ĠJson Array Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠtestData . jsonObject . get (" feature ") Ġas ĠJson Array ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġarray ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Bucket Range Data (): ĠJson Array Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠtestData . jsonObject . get (" get Bucket Range ") Ġas ĠJson Array ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġarray ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget In NameSpace Data (): ĠJson Array Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠtestData . jsonObject . get (" in Namespace ") Ġas ĠJson Array ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġarray ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Choose Variation Data (): ĠJson Array Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠtestData . jsonObject . get (" choose Variation ") Ġas ĠJson Array ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġarray ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Equal Weights Data (): ĠJson Array Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠtestData . jsonObject . get (" get Equal Weights ") Ġas ĠJson Array ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġarray ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Serializable Ċ class ĠGB Context Test Ġ( ĊĠĠĠ Ġval Ġattributes : ĠJson Element Ġ= ĠJsonObject ( HashMap ()), ĊĠĠĠ Ġval Ġq a Mode : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġval Ġenabled : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġval Ġforced Vari ations : ĠHashMap < String , ĠInt >? Ġ= Ġnull Ċ ) Ċ Ċ @ Serializable Ċ class ĠGB Features Test ( ĊĠĠĠ Ġval Ġfeatures Ġ: ĠGB Features ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġattributes : ĠJson Element Ġ= ĠJsonObject ( HashMap ()) Ċ ) Ċ Ċ @ Serializable Ċ class ĠGB Feature Result Test ( ĊĠĠĠ Ġval Ġvalue Ġ: ĠJson Element , ĊĠĠĠ Ġval Ġon Ġ: ĠBoolean , ĊĠĠĠ Ġval Ġoff : ĠBoolean , ĊĠĠĠ Ġval Ġsource : ĠString , ĊĠĠĠ Ġval Ġexperiment : ĠGB Experiment ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġexperiment Result : ĠGB ExperimentResult Test ? Ġ= Ġnull Ċ ) Ċ Ċ @ Serializable Ċ class ĠGB ExperimentResult Test ( ĊĠĠĠ Ġ/// ĠWhether Ġor Ġnot Ġthe Ġuser Ġis Ġpart Ġof Ġthe Ġexperiment ĊĠĠĠ Ġval Ġin Experiment : ĠBoolean , ĊĠĠĠ Ġ/// ĠThe Ġarray Ġindex Ġof Ġthe Ġassigned Ġvariation ĊĠĠĠ Ġval Ġvariation Id : ĠInt , ĊĠĠĠ Ġ/// ĠThe Ġarray Ġvalue Ġof Ġthe Ġassigned Ġvariation ĊĠĠĠ Ġval Ġvalue : ĠJson Element , ĊĠĠĠ Ġ/// ĠThe Ġuser Ġattribute Ġused Ġto Ġassign Ġa Ġvariation ĊĠĠĠ Ġval Ġhash Attribute : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġ/// Ġ ĠThe Ġvalue Ġof Ġthat Ġattribute ĊĠĠĠ Ġval Ġhash Value : ĠString ? Ġ= Ġnull Ċ Ċ ) Ċ