package Ġcom . ray br it ton . json query . unit . parsers Ċ Ċ import Ġcom . ray br it ton . json query . parsing . tokens . Char Parser Ċ import Ġcom . ray br it ton . json query . parsing . tokens . Keyword Ċ import Ġcom . ray br it ton . json query . parsing . tokens . Keyword Parser Ċ import Ġorg . junit . Assert .* Ċ import Ġorg . junit . Test Ċ import Ġjava . util .* Ċ Ċ class ĠKeyword Parser Tests Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġcan Ġparse `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalid Ġ= Ġ" abcdefgh ijkl mnopqrst uvw xyz ABCDEF GH IJ KL MN OP Q RST UV W XYZ " ĊĠĠĠĠĠĠĠ Ġval Ġinvalid Ġ= Ġ" 1 2 3 4 5 6 7 8 9 0 -= ! @ Â £ $ %^ & * () #_ + []{ }; ' \\ :\" |, ./ <> ?` ~ " ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( char Ġin Ġvalid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( char . toString (), ĠKeyword Parser . can Parse ( char )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( char Ġin Ġinvalid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( char . toString (), ĠKeyword Parser . can Parse ( char )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġsimple Ġupper Ġcase Ġkeyword Ġdetection `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkeywords Ġ= ĠKeyword . values () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( word Ġin Ġkeywords ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreader Ġ= ĠChar Parser ( word . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠKeyword Parser . parse ( reader ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( word . name , Ġword , Ġresult . value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġsimple Ġlower Ġcase Ġkeyword Ġdetection `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkeywords Ġ= ĠKeyword . values () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( word Ġin Ġkeywords ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreader Ġ= ĠChar Parser ( word . name . toLowerCase ( Locale . US )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠKeyword Parser . parse ( reader ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( word . name , Ġword , Ġresult . value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġsimple Ġmixed Ġcase Ġkeyword Ġdetection `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmix er : Ġ( String ) Ġ-> ĠString Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . map Indexed Ġ{ Ġi , Ġc Ġ-> Ġif Ġ( i Ġ% Ġ 2 Ġ== Ġ 0 ) Ġc . toUpperCase () Ġelse Ġc Ġ}. join ToString ("") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġkeywords Ġ= ĠKeyword . values () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( word Ġin Ġkeywords ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreader Ġ= ĠChar Parser ( mixer ( word . name )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠKeyword Parser . parse ( reader ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( word . name , Ġword , Ġresult . value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }