package Ġhighlighting Ċ Ċ import Ġcom . alg ol ia . instant search . core . highlight ing . Highlight Tokenizer Ċ import ĠshouldBe False Ċ import ĠshouldBe True Ċ import Ġshould Equal Ċ import Ġkotlin . test . Test Ċ Ċ class ĠTest Highlight Tokenizer Ġ{ ĊĊĠĠĠ Ġ/* ĊĠĠĠ Ġ* Ġmatch Start ĊĠĠĠ Ġ* Ġmatch End ĊĠĠĠ Ġ* Ġmatch Middle ĊĠĠĠ Ġ* Ġ*/ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmatch None () Ġ= Ġshould Match ( ĊĠĠĠĠĠĠĠ Ġ" This ĠJohn ĠDoe Ġlooks Ġlike ĠJohn athan .", ĊĠĠĠĠĠĠĠĠ 1 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmatch All () Ġ= Ġshould Match ( ĊĠĠĠĠĠĠĠ Ġ"< em > John </ em >< em > John </ em >", ĊĠĠĠĠĠĠĠĠ 2 , ĠlistOf (" John ", Ġ" John ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmatch Start () Ġ= Ġshould Match ( ĊĠĠĠĠĠĠĠ Ġ"< em > John </ em > Ġis Ġa Ġnice Ġgu y .", ĊĠĠĠĠĠĠĠĠ 2 , ĠlistOf (" John ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmatch End () Ġ= Ġshould Match ( ĊĠĠĠĠĠĠĠ Ġ" I Ġlove Ġ< em > John </ em >", ĊĠĠĠĠĠĠĠĠ 2 , ĠlistOf (" John ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmatch Tw ice Middle () Ġ= Ġshould Match ( ĊĠĠĠĠĠĠĠ Ġ" This Ġ< em > John </ em > ĠDoe Ġlooks Ġlike Ġ< em > John </ em > athan .", ĊĠĠĠĠĠĠĠĠ 5 , ĠlistOf (" John ", Ġ" John ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmatch With Custom Tags () Ġ= ĊĠĠĠĠĠĠĠ Ġshould Match ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" This Ġ^ Game $ Ġis Ġreally Ġ^ fun ny $, Ġdon 't Ġyou Ġ^ think $ ?", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 7 , ĠlistOf (" Game ", Ġ" fun ny ", Ġ" think "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ("^ ", Ġ"$ ") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġshould Match ( ĊĠĠĠĠĠĠĠ Ġinput : ĠString , ĊĠĠĠĠĠĠĠ Ġexpect Nb Parts : ĠInt Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġexpect Highlight ed Parts : ĠList < String > Ġ= ĠlistOf (), ĊĠĠĠĠĠĠĠ Ġtags : ĠPair < String , ĠString >? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtokenizer Ġ= Ġif Ġ( tags Ġ!= Ġnull ) ĠHighlight Tokenizer ( tags . first , Ġtags . second ) Ġelse ĠHighlight Tokenizer () ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġtokenizer ( input ) ĊĊĠĠĠĠĠĠĠ Ġoutput . original Ġshould Equal Ġinput ĊĠĠĠĠĠĠĠ Ġoutput . tokens . size Ġshould Equal Ġexpect Nb Parts ĊĠĠĠĠĠĠĠ Ġoutput . highlighted Tokens Ġshould Equal Ġexpect Highlight ed Parts ĊĊĠĠĠĠĠĠĠ Ġif Ġ( expect Highlight ed Parts . isEmpty ()) Ġ{ Ġ// ĠNo Ġpart Ġshould Ġbe Ġhighlighted ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . tokens . any Ġ{ Ġit . highlighted Ġ}. shouldBe False () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( expect Nb Parts Ġ== Ġexpect Highlight ed Parts . size ) Ġ{ Ġ// ĠAll Ġtokens Ġshould Ġbe Ġhighlighted ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . tokens . all Ġ{ Ġit . highlighted Ġ}. shouldBe True () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ