package Ġat . spec ure . data Ċ Ċ import Ġat . r mb t . client . control . History Item Response Ċ import Ġat . r mb t . client . control . History Response Ċ import Ġat . r mb t . client . control . Map Filter Object Response Ċ import Ġat . r mb t . client . control . Map Filters Response Ċ import Ġat . r mb t . client . control . Map Type Options Response Ċ import Ġat . r mb t . client . control . Marker Measurement Item Ċ import Ġat . r mb t . client . control . Marker Measure ments Response Ċ import Ġat . r mb t . client . control . Marker Network Item Ċ import Ġat . r mb t . client . control . Markers Response Ċ import Ġat . r mb t . client . control . Ping Graph Item Response Ċ import Ġat . r mb t . client . control . Qo E Classification Ċ import Ġat . r mb t . client . control . Q os TestCategory Description Ċ import Ġat . r mb t . client . control . Q os TestResult Ċ import Ġat . r mb t . client . control . Q os TestResult Detail Response Ċ import Ġat . r mb t . client . control . Server TestResult Item Ċ import Ġat . r mb t . client . control . Server TestResult Response Ċ import Ġat . r mb t . client . control . Signal Graph Item Response Ċ import Ġat . r mb t . client . control . Signal Measurement Request Response Ċ import Ġat . r mb t . client . control . Speed Graph Item Response Ċ import Ġat . r mb t . client . control . TestResult Detail Item Ċ import Ġat . r mb t . client . control . TestResult Detail Response Ċ import Ġat . r mb t . client . control . data . Map Filter Type Ċ import Ġat . spec ure . data . entity . History Ċ import Ġat . spec ure . data . entity . Marker Measurement Record Ċ import Ġat . spec ure . data . entity . Q oe Info Record Ċ import Ġat . spec ure . data . entity . Q os Category Record Ċ import Ġat . spec ure . data . entity . Q os Test Goal Record Ċ import Ġat . spec ure . data . entity . Q os Test Item Record Ċ import Ġat . spec ure . data . entity . Signal Measurement Info Ċ import Ġat . spec ure . data . entity . TestResult Details Record Ċ import Ġat . spec ure . data . entity . TestResult Graph Item Record Ċ import Ġat . spec ure . data . entity . TestResult Record Ċ import Ġat . spec ure . result . Qo E Category Ċ import Ġat . spec ure . result . Qo SC ategory Ċ import Ġjava . util . Enum Map Ċ Ċ fun ĠHistory Response . to Model List (): ĠList < History > Ġ= Ġhistory ?. map Ġ{ Ġit . to Model () Ġ} Ġ?: Ġempty List () Ċ Ċ fun ĠHistory Item Response . to Model () Ġ= ĠHistory ( ĊĠĠĠ Ġtest UUID Ġ= Ġtest UUID , ĊĠĠĠ Ġloop UUID Ġ= Ġloop UUID , ĊĠĠĠ Ġreference UUID Ġ= Ġif Ġ( loop UUID Ġ== Ġnull ) Ġtest UUID Ġelse Ġloop UUID !! , ĊĠĠĠ Ġmodel Ġ= Ġmodel , ĊĠĠĠ Ġnetwork Type Ġ= ĠNetwork Type Compat . fromString ( network Type Ġ?: ĠServer Network Type . TYPE _ UNKNOWN 2 . stringValue ), ĊĠĠĠ Ġping Ġ= Ġping , ĊĠĠĠ Ġping Classification Ġ= ĠClassification . from Value ( ping Classification ), ĊĠĠĠ Ġping Short est Ġ= Ġping Short est , ĊĠĠĠ Ġping Short est Classification Ġ= ĠClassification . from Value ( ping Short est Classification ), ĊĠĠĠ Ġspeed Download Ġ= Ġspeed Download , ĊĠĠĠ Ġspeed Download Classification Ġ= ĠClassification . from Value ( speed Download Classification ), ĊĠĠĠ Ġspeed Upload Ġ= Ġspeed Upload , ĊĠĠĠ Ġspeed Upload Classification Ġ= ĠClassification . from Value ( speed Upload Classification ), ĊĠĠĠ Ġsignal Classification Ġ= Ġsignal Classification ?. let Ġ{ ĠClassification . from Value ( it ) Ġ} Ġ?: ĠClassification . NONE , ĊĠĠĠ Ġtime Ġ= Ġtime , ĊĠĠĠ Ġtime String Ġ= Ġtime String , ĊĠĠĠ Ġtimezone Ġ= Ġtimezone Ċ ) Ċ Ċ fun ĠServer TestResult Response . to Model ( test UUID : ĠString ): ĠTest Result Record Ġ= Ġresult Item . first (). to Model ( test UUID ) Ċ Ċ fun ĠServer TestResult Item . to Model ( test UUID : ĠString ): ĠTest Result Record Ġ{ ĊĊĠĠĠ Ġval Ġsignal : ĠInt ? Ġ= Ġmeasurement Item . lte _ rs rp Ġ?: Ġmeasurement Item . signal Strength ĊĊĠĠĠ Ġreturn ĠTest Result Record ( ĊĠĠĠĠĠĠĠ Ġclient Open UUID Ġ= Ġclient Open UUID , ĊĠĠĠĠĠĠĠ Ġtest Open UUID Ġ= Ġtest Open UUID , ĊĠĠĠĠĠĠĠ Ġuuid Ġ= Ġtest UUID , ĊĠĠĠĠĠĠĠ Ġdownload Class Ġ= ĠClassification . from Value ( measurement Item . download Class ), ĊĠĠĠĠĠĠĠ Ġdownload Speed K bs Ġ= Ġmeasurement Item . download Speed K bs , ĊĠĠĠĠĠĠĠ Ġupload Class Ġ= ĠClassification . from Value ( measurement Item . upload Class ), ĊĠĠĠĠĠĠĠ Ġupload Speed K bs Ġ= Ġmeasurement Item . upload Speed K bs , ĊĠĠĠĠĠĠĠ Ġping Class Ġ= ĠClassification . from Value ( measurement Item . ping Class ), ĊĠĠĠĠĠĠĠ Ġping Millis Ġ= Ġmeasurement Item . ping Millis . toDouble (), ĊĠĠĠĠĠĠĠ Ġsignal Class Ġ= ĠClassification . from Value ( measurement Item . signal Class ), ĊĠĠĠĠĠĠĠ Ġsignal Strength Ġ= Ġsignal , ĊĠĠĠĠĠĠĠ Ġlocation Text Ġ= Ġlocation Text , ĊĠĠĠĠĠĠĠ Ġlatitude Ġ= Ġlatitude , ĊĠĠĠĠĠĠĠ Ġlongitude Ġ= Ġlongitude , ĊĠĠĠĠĠĠĠ Ġnetwork Type Raw Ġ= Ġnetwork Type , ĊĠĠĠĠĠĠĠ Ġshare Text Ġ= Ġshare Text , ĊĠĠĠĠĠĠĠ Ġshare Title Ġ= Ġshare Subject , ĊĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġtimestamp , ĊĠĠĠĠĠĠĠ Ġtime Text Ġ= Ġtime Text , ĊĠĠĠĠĠĠĠ Ġtimezone Ġ= Ġtimezone , ĊĠĠĠĠĠĠĠ Ġnetwork Name Ġ= Ġnetwork Item . wifi Network SSID , ĊĠĠĠĠĠĠĠ Ġnetwork Provider Name Ġ= Ġnetwork Item . provider Name , ĊĠĠĠĠĠĠĠ Ġnetwork Type Text Ġ= Ġnetwork Item . network TypeString , ĊĠĠĠĠĠĠĠ Ġnetwork Type Ġ= ĠNetwork Type Compat . from Result Int Type ( network Type ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun ĠServer TestResult Response . to Q oe Model ( test UUID : ĠString ): ĠList < Q oe Info Record > Ġ= Ġresult Item . first (). to Q oe Model ( test UUID ) Ċ Ċ fun ĠServer TestResult Item . to Q oe Model ( test UUID : ĠString ): ĠList < Q oe Info Record > Ġ{ ĊĠĠĠ Ġreturn Ġq oe Class ifications . map Ġ{ ĊĠĠĠĠĠĠĠ Ġit . to Model ( test UUID ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠQ o E Classification . to Model ( test UUID : ĠString ): ĠQ oe Info Record Ġ{ ĊĠĠĠ Ġreturn ĠQ oe Info Record ( ĊĠĠĠĠĠĠĠ Ġtest UUID Ġ= Ġtest UUID , ĊĠĠĠĠĠĠĠ Ġcategory Ġ= ĠQ o E Category . fromString ( category ), ĊĠĠĠĠĠĠĠ Ġclassification Ġ= ĠClassification . from Value ( classification ), ĊĠĠĠĠĠĠĠ Ġpercentage Ġ= Ġquality , ĊĠĠĠĠĠĠĠ Ġinfo Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġpriority Ġ= Ġ 0 ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun ĠSignal Graph Item Response . to Model ( test UUID : ĠString ): ĠTest Result Graph Item Record Ġ{ ĊĠĠĠ Ġreturn ĠTest Result Graph Item Record ( ĊĠĠĠĠĠĠĠ Ġtest UUID Ġ= Ġtest UUID , ĊĠĠĠĠĠĠĠ Ġtime Ġ= Ġtime Millis , ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġsignal Strength ?. to Long () Ġ?: Ġl te R sr p ?. to Long () Ġ?: Ġ 0 , ĊĠĠĠĠĠĠĠ Ġtype Ġ= ĠTest Result Graph Item Record . Type . SIGNAL ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun ĠPing Graph Item Response . to Model ( test UUID : ĠString ): ĠTest Result Graph Item Record Ġ{ ĊĠĠĠ Ġreturn ĠTest Result Graph Item Record ( ĊĠĠĠĠĠĠĠ Ġtest UUID Ġ= Ġtest UUID , ĊĠĠĠĠĠĠĠ Ġtime Ġ= Ġtime Millis , ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġduration Millis . to Long (), ĊĠĠĠĠĠĠĠ Ġtype Ġ= ĠTest Result Graph Item Record . Type . PING ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun ĠSpeed Graph Item Response . to Model ( test UUID : ĠString , Ġtype : ĠTest Result Graph Item Record . Type ): ĠTest Result Graph Item Record Ġ{ ĊĠĠĠ Ġreturn ĠTest Result Graph Item Record ( ĊĠĠĠĠĠĠĠ Ġtest UUID Ġ= Ġtest UUID , ĊĠĠĠĠĠĠĠ Ġtime Ġ= Ġtime Millis , ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġbytes , ĊĠĠĠĠĠĠĠ Ġtype Ġ= Ġtype ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun ĠTest Result Detail Response . to Model List ( test UUID : ĠString ): ĠList < TestResult Details Record > Ġ= Ġdetails . map Ġ{ Ġit . to Model ( test UUID ) Ġ} Ċ Ċ fun ĠTest Result Detail Item . to Model ( test UUID : ĠString ): ĠTest Result Details Record Ġ= ĊĠĠĠ ĠTest Result Details Record ( test UUID , Ġopen Test UUID , Ġopen Uuid , Ġtime , Ġtimezone , Ġtitle , Ġvalue ) Ċ Ċ fun ĠMark ers Response . to Model List (): ĠList < Marker Measurement Record > Ġ= Ġmeasurements . map Ġ{ Ġit . to Model () Ġ} Ċ Ċ fun ĠMarker Measure ments Response . to Model (): ĠMarker Measurement Record Ġ{ ĊĠĠĠ Ġval Ġupload Ġ= Ġmeasurement . extract From List ( 1 ) Ġas ? ĠMarker Measurement Item ĊĠĠĠ Ġval Ġdownload Ġ= Ġmeasurement . extract From List ( 0 ) Ġas ? ĠMarker Measurement Item ĊĠĠĠ Ġval Ġsignal Ġ= Ġmeasurement . extract From List ( 3 ) Ġas ? ĠMarker Measurement Item ĊĠĠĠ Ġval Ġping Ġ= Ġmeasurement . extract From List ( 2 ) Ġas ? ĠMarker Measurement Item ĊĊĠĠĠ Ġval Ġnetwork Type Ġ= Ġnetwork Items . extract From List ( 0 ) Ġas ? ĠMarker Network Item ĊĠĠĠ Ġval Ġprovider Ġ= Ġnetwork Items . extract From List ( 1 ) Ġas ? ĠMarker Network Item ĊĠĠĠ Ġval Ġwifi Ġ= Ġnetwork Items . extract From List ( 2 ) Ġas ? ĠMarker Network Item ĊĊĠĠĠ Ġreturn ĠMarker Measurement Record ( ĊĠĠĠĠĠĠĠ Ġlongitude , ĊĠĠĠĠĠĠĠ Ġlatitude , ĊĠĠĠĠĠĠĠ ĠClassification . values ()[ upload ?. classification Ġ?: ĠClassification . NONE . intValue ], ĊĠĠĠĠĠĠĠ Ġupload ?. value Ġ?: Ġ"-", ĊĠĠĠĠĠĠĠ ĠClassification . values ()[ download ?. classification Ġ?: ĠClassification . NONE . intValue ], ĊĠĠĠĠĠĠĠ Ġdownload ?. value Ġ?: Ġ"-", ĊĠĠĠĠĠĠĠ ĠClassification . values ()[ signal ?. classification Ġ?: ĠClassification . NONE . intValue ], ĊĠĠĠĠĠĠĠ Ġsignal ?. value Ġ?: Ġ"-", ĊĠĠĠĠĠĠĠ ĠClassification . values ()[ ping ?. classification Ġ?: ĠClassification . NONE . intValue ], ĊĠĠĠĠĠĠĠ Ġping ?. value Ġ?: Ġ"-", ĊĠĠĠĠĠĠĠ Ġnetwork Type ?. value , ĊĠĠĠĠĠĠĠ Ġprovider ?. value , ĊĠĠĠĠĠĠĠ Ġwifi ?. value , ĊĠĠĠĠĠĠĠ Ġopen Test UUID , ĊĠĠĠĠĠĠĠ Ġtime , ĊĠĠĠĠĠĠĠ Ġtime String ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun ĠQ os TestResult Detail Response . to Models ( ĊĠĠĠ Ġtest UUID : ĠString , ĊĠĠĠ Ġlanguage : ĠString Ċ ): ĠTrip le < List < Q os Category Record >, ĠList < Q os Test Item Record >, ĠList < Q os Test Goal Record >> Ġ{ ĊĊĠĠĠ Ġval Ġcategories Ġ= Ġmutable ListOf < Q os Category Record >() ĊĠĠĠ Ġval Ġresults Ġ= Ġmutable ListOf < Q os Test Item Record >() ĊĠĠĠ Ġval Ġgoals Ġ= Ġmutable ListOf < Q os Test Goal Record >() ĊĊĠĠĠ Ġthis . qos Result Details Desc . forEach Ġ{ Ġq os Goal Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġq o SC ategory Ġ= ĠQ o SC ategory . fromString ( qos Goal . test Category ) ĊĠĠĠĠĠĠĠ Ġval Ġsuccess Ġ= Ġq os Goal . result Status . equals (" ok ", Ġtrue ) ĊĠĠĠĠĠĠĠ Ġq os Goal . qos Test U ids . forEach Ġ{ Ġq os TestId Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoals . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠQ os Test Goal Record ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest UUID Ġ= Ġtest UUID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġq os TestId Ġ= Ġq os TestId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Ġ= Ġlanguage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ= Ġq o SC ategory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Ġ= Ġsuccess , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġq os Goal . result Description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġq os Result Desc Map : ĠMap < Qo SC ategory , ĠList < Q os TestResult >> Ġ= ĠEnum Map ( Qo SC ategory :: class . java ) ĊĠĠĠ Ġthis . qos Result Details . forEach Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġq o SC ategory Ġ= ĠQ o SC ategory . fromString ( result . test Type ) ĊĠĠĠĠĠĠĠ Ġvar Ġalready Saved Q os Test : ĠMutable List < Q os TestResult >? Ġ= Ġq os Result Desc Map [ qo SC ategory ]?. to Mutable List () ĊĠĠĠĠĠĠĠ Ġif Ġ( already Saved Q os Test Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalready Saved Q os Test Ġ= Ġmutable ListOf ( result ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalready Saved Q os Test . add ( result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġq os Result Desc Map Ġ= Ġq os Result Desc Map . plus ( Pair ( qo SC ategory , Ġalready Saved Q os Test )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcategory Desc Map : ĠMap < Qo SC ategory , ĠQ os TestCategory Description > Ġ= ĠEnum Map ( Qo SC ategory :: class . java ) ĊĠĠĠ Ġthis . qos Result Details Test Desc . forEach Ġ{ Ġcategory Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġq o SC ategory Ġ= ĠQ o SC ategory . fromString ( category . test Type ) ĊĠĠĠĠĠĠĠ Ġcategory Desc Map Ġ= Ġcategory Desc Map . plus ( Pair ( qo SC ategory , Ġcategory )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġsuccessful Tests : ĠMutable List < Q os TestResult > Ġ= ĠArrayList < Q os TestResult >() ĊĠĠĠ Ġcategory Desc Map . keys . forEach Ġ{ Ġkey Ġ-> ĊĊĠĠĠĠĠĠĠ Ġval Ġq os TestCategory Description Ġ= Ġcategory Desc Map [ key ] ĊĠĠĠĠĠĠĠ Ġval Ġresult List Ġ= Ġq os Result Desc Map [ key ] ĊĊĠĠĠĠĠĠĠ Ġvar Ġsuccess Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġfailure Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġq os Test Order Number Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġresult List ?. forEach Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . failure Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfailure Count ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresults . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠQ os Test Item Record ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest UUID Ġ= Ġtest UUID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġq os TestId Ġ= Ġresult . qos Test Uid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Ġ= Ġlanguage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ= Ġkey , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Summary Ġ= Ġresult . test Summary , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Description Ġ= Ġresult . test Description , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Number Ġ= Ġq os Test Order Number , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration Nan os Ġ= Ġresult . result . get (" duration _ ns "). as Long , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartTime Nan os Ġ= Ġresult . result . get (" start _ time _ ns "). as Long ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġq os Test Order Number ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccessful Tests . add ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Count ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsuccessful Tests . forEach Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠQ os Test Item Record ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest UUID Ġ= Ġtest UUID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġq os TestId Ġ= Ġresult . qos Test Uid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Ġ= Ġlanguage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ= Ġkey , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Summary Ġ= Ġresult . test Summary , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Description Ġ= Ġresult . test Description , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Number Ġ= Ġq os Test Order Number , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration Nan os Ġ= Ġresult . result . get (" duration _ ns "). as Long , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartTime Nan os Ġ= Ġresult . result . get (" start _ time _ ns "). as Long ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq os Test Order Number ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuccessful Tests . clear () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( failure Count Ġ!= Ġsuccess Count Ġ&& Ġq os TestCategory Description Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategories . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠQ os Category Record ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest UUID Ġ= Ġtest UUID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ= Ġkey , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Ġ= Ġlanguage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Description Ġ= Ġq os TestCategory Description . desc Localized , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Name Ġ= Ġq os TestCategory Description . name Localized , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfailed Count Ġ= Ġfailure Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Count Ġ= Ġsuccess Count ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠTrip le ( categories , Ġresults , Ġgoals ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠMap Filters Response . toMap (): ĠMap < Map Filter Type , ĠList < T >> Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġhash Map Of < Map Filter Type , ĠList < T >>() ĊĠĠĠ Ġall . find Ġ{ Ġit . options . all Ġ{ Ġit Ġis ĠT Ġ} Ġ} ?. let Ġ{ Ġresult . put ( Map Filter Type . ALL , Ġit . options Ġas ĠList < T >) Ġ} ĊĠĠĠ Ġmobile . find Ġ{ Ġit . options . all Ġ{ Ġit Ġis ĠT Ġ} Ġ} ?. let Ġ{ Ġresult . put ( Map Filter Type . MOB ILE , Ġit . options Ġas ĠList < T >) Ġ} ĊĠĠĠ Ġwifi . find Ġ{ Ġit . options . all Ġ{ Ġit Ġis ĠT Ġ} Ġ} ?. let Ġ{ Ġresult . put ( Map Filter Type . WLAN , Ġit . options Ġas ĠList < T >) Ġ} ĊĠĠĠ Ġbrowser . find Ġ{ Ġit . options . all Ġ{ Ġit Ġis ĠT Ġ} Ġ} ?. let Ġ{ Ġresult . put ( Map Filter Type . BROWSER , Ġit . options Ġas ĠList < T >) Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠMap Filters Response . getType Title (): ĠString Ġ{ ĊĠĠĠ Ġall . find Ġ{ Ġit . options . all Ġ{ Ġit Ġis ĠT Ġ} Ġ} ?. let Ġ{ Ġreturn Ġit . title Ġ} ĊĠĠĠ Ġmobile . find Ġ{ Ġit . options . all Ġ{ Ġit Ġis ĠT Ġ} Ġ} ?. let Ġ{ Ġreturn Ġit . title Ġ} ĊĠĠĠ Ġwifi . find Ġ{ Ġit . options . all Ġ{ Ġit Ġis ĠT Ġ} Ġ} ?. let Ġ{ Ġreturn Ġit . title Ġ} ĊĠĠĠ Ġbrowser . find Ġ{ Ġit . options . all Ġ{ Ġit Ġis ĠT Ġ} Ġ} ?. let Ġ{ Ġreturn Ġit . title Ġ} ĊĠĠĠ Ġreturn Ġ"" Ċ } Ċ Ċ fun ĠMap Filter Object Response . to Sub types Map ( types : ĠMutable Map < String , ĠMap Filter Type >): ĠMap < Map Filter Type , ĠList < Map Type Options Response >> Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġhash Map Of < Map Filter Type , ĠList < Map Type Options Response >>() ĊĊĠĠĠ Ġmap Types . forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġresult [ types . getValue ( it . title )] Ġ= Ġit . options ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ fun ĠSignal Measurement Request Response . to Model ( measurement Id : ĠString ) Ġ= ĠSignal Measurement Info ( ĊĠĠĠ Ġmeasurement Id Ġ= Ġmeasurement Id , ĊĠĠĠ Ġuuid Ġ= Ġtest UUID , ĊĠĠĠ Ġclient Remote Ip Ġ= Ġclient Remote Ip , ĊĠĠĠ Ġresult Url Ġ= Ġresult Url , ĊĠĠĠ Ġprovider Ġ= Ġprovider Ċ ) Ċ Ċ private Ġfun ĠList < Any ?> . extract From List ( position : ĠInt ): ĠAny ? Ġ= Ġtry Ġ{ ĊĠĠĠ Ġthis [ position ] Ċ } Ġcatch Ġ( ex : Ġjava . lang . Index OutOfBoundsException ) Ġ{ ĊĠĠĠ Ġnull Ċ }