/* Ċ Ġ* Ġ ĠCopyright Ġ( C ) Ġ 2 0 1 8 ĠM oom tain Ġ< dev @ mo om tain . com > Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ* Ċ Ġ* Ġ@ author ĠM oom tain Ġ< dev @ mo om tain . com > Ċ Ġ* Ġ@ version Ġ 2 0 1 8 - 0 4 - 1 9 Ċ Ġ*/ Ċ Ċ package Ġcom . mo om . k son . token Ċ Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Test Ċ Ċ internal Ġclass ĠToken Patterns Test Ġ{ ĊĠĠĠ Ġ@ Test Ġfun Ġtest Token Patterns () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// wh ites p aces ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . WhiteSpace . match ("\ t ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . WhiteSpace . match ("\ r ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . WhiteSpace . match ("\ n ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . WhiteSpace . match (" Ġ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , ĠToken Patterns . WhiteSpace . match ("\ \" )) ĊĊĠĠĠĠĠĠĠ Ġ// struct ural Ġtokens ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Structural Token . match (" [" )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Structural Token . match (" ] ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Structural Token . match ("{ ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Structural Token . match (" } ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Structural Token . match (" :" )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Structural Token . match ("," )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , ĠToken Patterns . Structural Token . match ("; ")) ĊĊĠĠĠĠĠĠĠ Ġ// null Ġtoken ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Null Pattern . match (" null ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , ĠToken Patterns . Null Pattern . match (" Null ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , ĠToken Patterns . Null Pattern . match (" NULL ")) ĊĊĠĠĠĠĠĠĠ Ġ// boolean Ġtokens ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Boolean Pattern . match (" true ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Boolean Pattern . match (" false ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , ĠToken Patterns . Boolean Pattern . match (" True ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , ĠToken Patterns . Boolean Pattern . match (" False ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , ĠToken Patterns . Boolean Pattern . match (" TRUE ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , ĠToken Patterns . Boolean Pattern . match (" FALSE ")) ĊĊĠĠĠĠĠĠĠ Ġ// Number Ġtokens ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Number Pattern . match (" 1 2 3 4 5 6 7 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Number Pattern . match ("- 1 2 3 4 5 6 7 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Number Pattern . match (" 1 2 3 4 . 5 6 7 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Number Pattern . match (" 1 2 3 4 . 5 6 7 E 1 2 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Number Pattern . match (" 1 2 3 4 . 5 6 7 E - 1 2 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Number Pattern . match (" 1 2 3 4 . 5 6 7 E + 1 2 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Number Pattern . match ("- 1 2 3 4 . 5 6 7 E 1 2 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Number Pattern . match ("- 1 2 3 4 . 5 6 7 E + 1 2 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Number Pattern . match ("- 1 2 3 4 . 5 6 7 E - 1 2 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . Number Pattern . match ("- 1 2 3 4 . 5 6 7 e - 1 2 ")) ĊĊĠĠĠĠĠĠĠ Ġ// String Ġtokens ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . String Pattern . match ("\" hello Ġ\"" )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . String Pattern . match ("\" this Ġis Ġa Ġsimple Ġ\\ \" Ġtest \"" )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , ĠToken Patterns . String Pattern . match ("\" this Ġis Ġa Ġsimple Ġ\\ \" Ġtest \\ \"" )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , ĠToken Patterns . String Pattern . match ("\" this Ġis Ġa Ġsimple Ġ\" Ġtest \"" )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , ĠToken Patterns . String Pattern . match (" \"\ "" )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , ĠToken Patterns . String Pattern . match ("\" h \" e \" l Ġ Ġ\" l Ġ\" Ġ\" Ġo \\ \"" )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġtest Structural TokenType () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( Structural TokenType . More Value , Ġget Char Token (',' )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Structural TokenType . Element Pair , Ġget Char Token (': ')) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Structural TokenType . Array Start , Ġget Char Token (' [' )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Structural TokenType . Array End , Ġget Char Token (' ] ')) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Structural TokenType . Object Start , Ġget Char Token ('{ ')) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Structural TokenType . Object End , Ġget Char Token (' } ')) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġget Char Token (' ; ')) ĊĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġget Char Token (' (' )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġget Char Token (' ) ')) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġtest Token Functions () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis WhiteSpace ("\ t \ r \ n Ġ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Structural Token ("," )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Structural Token (" :" )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Structural Token (" [" )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Structural Token (" ] ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Structural Token ("{ ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġis Structural Token ("; ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Null Token (" null ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Boolean Token (" true ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Boolean Token (" false ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Number Token ("- 3 . 1 4 1 5 9 e + 2 4 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Number Token (" 3 0 0 0 0 1 2 3 1 2 4 2 3 4 0 0 9 9 3 9 2 8 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . 0 3 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis String Token ("\" Hello ĠWorld !\ "" )) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġis Token ("\ t ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġis Token ("\ r ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġis Token ("\ n ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġis Token (" Ġ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token ("," )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token (" :" )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token (" [" )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token (" ] ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token ("{ ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token (" } ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token (" null ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token (" true ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token (" false ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token ("- 3 . 1 4 1 5 9 e + 2 4 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token (" 3 0 0 0 0 1 2 3 1 2 4 2 3 4 0 0 9 9 3 9 2 8 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . 0 3 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token ("\" Hello ĠWorld !\ "" )) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Literal Name Token (" null ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Literal Name Token (" true ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Literal Name Token (" false ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Null Token Start (" n ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Boolean Token Start (" t ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Boolean Token Start (" f ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis String Token Start ("\ "" )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Number Token Start ("- ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Number Token Start (" 0 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Number Token Start (" 1 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Number Token Start (" 2 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Number Token Start (" 3 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Number Token Start (" 4 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Number Token Start (" 5 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Number Token Start (" 6 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Number Token Start (" 7 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Number Token Start (" 8 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Number Token Start (" 9 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġis Number Token Start ("+ ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġis Number Token Start (". ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġis Number Token Start (" E ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġis Number Token Start (" e ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Literal Name Token Start (" n ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Literal Name Token Start (" f ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Literal Name Token Start (" t ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Space (' Ġ')) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token Start (" n ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token Start (" f ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token Start (" t ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token Start (" n ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġis Token Start ("\ "" )) ĊĠĠĠ Ġ} Ċ }