package Ġm ary k . json Ċ Ċ import Ġm ary k . json . Json Token . End Object Ċ import Ġm ary k . json . Json Token . FieldName Ċ import Ġm ary k . json . Json Token . Stopped Ċ import Ġm ary k . json . Json Token . Sus pended Ċ import Ġm ary k . json . ValueType . Bool Ċ import Ġm ary k . json . ValueType . Null Ċ import Ġm ary k . test . assert Type Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assert Fails With Ċ import Ġkotlin . test . assertTrue Ċ import Ġkotlin . test . expect Ċ Ċ internal Ġclass ĠJson Reader Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Json Parser Structure () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ""" { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" string ": Ġ" hey ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" int ": Ġ 4 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" array ": Ġ[ 3 4 , Ġ 2 3 5 2 , Ġ 3 4 2 3 , Ġtrue , Ġfalse , Ġnull ], ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" empty Array ": Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" map ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 2 ": Ġ" yes ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 0 ": Ġ" ah um " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" empty Map ": Ġ{}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" mixed ": Ġ[ 2 , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" value ": Ġ" sub In Multi !" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}] ĊĠĠĠĠĠĠĠ Ġ} """ ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ ĠJson Reader Ġ{ Ġinput [ index ++] Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Start Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert FieldName (" string ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value (" hey ", ĠValueType . String ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert FieldName (" int ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( 4 L , ĠValueType . Int ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert FieldName (" array ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Start Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( 3 4 L , ĠValueType . Int ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( 2 3 5 2 L , ĠValueType . Int ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( 3 4 2 3 L , ĠValueType . Int ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( true , ĠBool ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( false , ĠBool ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( null , ĠNull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert FieldName (" empty Array ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Start Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert FieldName (" map ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Start Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert FieldName (" 1 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value (" yes ", ĠValueType . String ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert FieldName (" 1 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value (" ah um ", ĠValueType . String ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert FieldName (" empty Map ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Start Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert FieldName (" mixed ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Start Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( 2 , ĠValueType . Int ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Start Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert FieldName (" value ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value (" sub In Multi !", ĠValueType . String ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Document () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Skip Fields Structure () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ""" { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 " Ġ: Ġ 5 6 7 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 " Ġ: Ġ[ true , Ġfalse , Ġtrue ], ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 3 " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" test 1 ": Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" test 2 ": Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" array ": Ġ[] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 4 " Ġ: Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 5 " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" test 1 ": Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" test 2 ": Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" array ": Ġ[] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ ĠJson Reader Ġ{ Ġinput [ index ++] Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Start Object () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert FieldName (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskip Until Next Field () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect (" 2 ") Ġ{ Ġassert Type < FieldName >( current Token ). value Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskip Until Next Field () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect (" 3 ") Ġ{ Ġassert Type < FieldName >( current Token ). value Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskip Until Next Field () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect (" 4 ") Ġ{ Ġassert Type < FieldName >( current Token ). value Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( true , ĠBool ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Token () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect (" 5 ") Ġ{ Ġassert Type < FieldName >( current Token ). value Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskip Until Next Field () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( End Object ) Ġ{ Ġthis . current Token Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Document () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Json Parser Numbers () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ""" [ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 . 7 2 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 0 . 1 2 3 7 2 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 . 7 2 3 E 5 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 . 4 5 3 E - 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 . 4 5 3 E + 5 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 3 4 5 3 . 4 4 2 e 2 3 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 3 . 4 4 2 e - 2 3 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 3 . 4 4 2 e + 2 3 4 ĊĠĠĠĠĠĠĠ Ġ] """ ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ ĠJson Reader Ġ{ Ġinput [ index ++] Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Start Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( 4 L , ĠValueType . Int ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( 4 . 7 2 3 , ĠValueType . Float ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value (- 0 . 1 2 3 7 2 3 , ĠValueType . Float ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( 4 . 7 2 3 E 5 0 , ĠValueType . Float ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( 1 . 4 5 3 E - 4 , ĠValueType . Float ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( 1 . 4 5 3 E + 5 3 , ĠValueType . Float ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( 1 3 4 5 3 . 4 4 2 e 2 3 4 , ĠValueType . Float ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( 5 3 . 4 4 2 e - 2 3 4 , ĠValueType . Float ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value ( 5 3 . 4 4 2 e + 2 3 4 , ĠValueType . Float ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Document () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Invalid Json Fail Message () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ""" { ĊĠĠĠĠĠĠĠ Ġ| " test " Ġ" ĊĠĠĠĠĠĠĠ Ġ| } """. trim Margin () ĊĊĠĠĠĠĠĠĠ Ġval Ġreader Ġ= ĠJson Reader Ġ{ Ġinput [ index ++] Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġassert Fails With < Invalid Json Content >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ""" [ l : Ġ 2 , Ġc : Ġ 8 ] ĠInvalid Ġcharacter Ġ'"' Ġafter ĠField Name ( test ) """ ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreader . nextToken () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( reader . current Token Ġ! is ĠSto pped ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġexpect ( 2 ) Ġ{ Ġe . line Number Ġ} ĊĠĠĠĠĠĠĠ Ġexpect ( 8 ) Ġ{ Ġe . column Number Ġ} ĊĊĠĠĠĠĠĠĠ Ġexpect ( 2 ) Ġ{ Ġreader . line Number Ġ} ĊĠĠĠĠĠĠĠ Ġexpect ( 8 ) Ġ{ Ġreader . column Number Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Invalid Json Fail () Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcheck Fault y JSON ( input : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreader Ġ= ĠJson Reader Ġ{ Ġinput [ index ++] Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With < Invalid Json Content > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreader . nextToken () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( reader . current Token Ġ! is ĠSto pped ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠInvalid Ġstart ĊĠĠĠĠĠĠĠ Ġcheck Fault y JSON (" test ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠFalse , Ġtrue , Ġnull Ġerrors ĊĠĠĠĠĠĠĠ Ġcheck Fault y JSON ("[ fal ze ]") ĊĠĠĠĠĠĠĠ Ġcheck Fault y JSON ("[ tr ui ]") ĊĠĠĠĠĠĠĠ Ġcheck Fault y JSON ("[ n oll ]") ĊĊĠĠĠĠĠĠĠ Ġ// ĠInvalid Ġobject ĊĠĠĠĠĠĠĠ Ġcheck Fault y JSON ("{ test }") ĊĠĠĠĠĠĠĠ Ġcheck Fault y JSON (""" {" test ": 5 , Ġwrong : 1 } """) ĊĠĠĠĠĠĠĠ Ġcheck Fault y JSON (""" {" test ": 5 { """) ĊĠĠĠĠĠĠĠ Ġcheck Fault y JSON (""" {" test "[ """) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInvalid Ġarray ĊĠĠĠĠĠĠĠ Ġcheck Fault y JSON ("[ 2 2 3 3 2 , ]") ĊĊĠĠĠĠĠĠĠ Ġ// ĠInvalid ĠNumbers ĊĠĠĠĠĠĠĠ Ġcheck Fault y JSON ("[ 0 0 7 ]") ĊĠĠĠĠĠĠĠ Ġcheck Fault y JSON (" [- 0 0 7 . 6 5 2 ]") ĊĠĠĠĠĠĠĠ Ġcheck Fault y JSON ("[ 5 . 5 E ]") ĊĠĠĠĠĠĠĠ Ġcheck Fault y JSON ("[ 5 - 3 ]") ĊĠĠĠĠĠĠĠ Ġcheck Fault y JSON ("[ 3 4 2 3 4 . ]") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Sus pended () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġinput Ġ= Ġ"[ 3 4 3 , 2 2 4 5 2 , true " ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ ĠJson Reader Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġinput [ index ]. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠJS Ġplatform Ġreturns Ġa Ġ 0 Ġcontrol Ġchar Ġwhen Ġnothing Ġcan Ġbe Ġread ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ== Ġ'\ u 0 0 0 0 ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠThrowable (" 0 Ġchar Ġencountered ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb ĊĠĠĠĠĠĠĠ Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Token () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( current Token Ġ! is ĠSto pped ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġcurrent Token Ġis ĠS us pended Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Ġ+= Ġ" ]" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Document () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Json Reader ( input : ĠString ): ĠJson Reader Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġreturn ĠJson Reader Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġinput [ index ]. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠJS Ġplatform Ġreturns Ġa Ġ 0 Ġcontrol Ġchar Ġwhen Ġnothing Ġcan Ġbe Ġread ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ== Ġ'\ u 0 0 0 0 ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠThrowable (" 0 Ġchar Ġencountered ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġread Double Quote () Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate Json Reader (""" [" test "] "" "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Start Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value (" test ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Document () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġread Simple Value () Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate Json Reader (" """ test """" ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value (" test ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Document () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġread Double Quote With Special Chars () Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate Json Reader (""" [" te \"\ b \ f \ n \ t \\ \/ \ r '\ x "] "" "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Start Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value (" te \"\ b \ u 0 0 0 C \ n \ t \\ /\ r ' \\ x ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Document () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġread Double Quote With Utf Chars () Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate Json Reader (""" [" \ uD 8 3 D \ u DE 0 D \ u wrong \ u 0 w \ u 0 0 w \ u 0 0 0 w "] "" "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Start Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Value (" ðŁĺ į \\ u wrong \\ u 0 w \\ u 0 0 w \\ u 0 0 0 w ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert End Document () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ