/* Ċ Ġ* ĠCopyright ĠĠ 2 0 2 0 ĠDavid ĠG ĠJ ones Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġinfo . dg j ones . bar nable . parser Ċ Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠText Splitter Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Spl its Ġsentence Ġdown Ġto Ġindividual Ġword Ġhandlers `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlex icon Ġ= ĠLex icon () ĊĠĠĠĠĠĠĠ Ġval Ġhandler 0 Ġ= Ġwith Word Mapping ( lex icon , Ġ" zero ") ĊĠĠĠĠĠĠĠ Ġval Ġhandler 1 Ġ= Ġwith Word Mapping ( lex icon , Ġ" one ") ĊĠĠĠĠĠĠĠ Ġval Ġhandler 2 Ġ= Ġwith Word Mapping ( lex icon , Ġ" two ") ĊĠĠĠĠĠĠĠ Ġval Ġtext Splitter Ġ= ĠText Splitter ( lex icon ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġtest Ġzero ĊĠĠĠĠĠĠĠ Ġval Ġsplits Ġ= Ġtext Splitter . split ( build Text Model (" zero Ġone Ġtwo . "). initial Sentence ()) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġsplits . units . size ) ĊĊĠĠĠĠĠĠĠ Ġval Ġunit 0 Ġ= Ġsplits . units [ 0 ] ĊĠĠĠĠĠĠĠ ĠassertEquals (" zero ", Ġunit 0 . first (). morph o logies . first (). full ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( handler 0 , Ġunit 0 . first (). handler ) ĊĊĠĠĠĠĠĠĠ Ġval Ġunit 1 Ġ= Ġsplits . units [ 1 ] ĊĠĠĠĠĠĠĠ ĠassertEquals (" one ", Ġunit 1 . first (). morph o logies . first (). full ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( handler 1 , Ġunit 1 . first (). handler ) ĊĊĠĠĠĠĠĠĠ Ġval Ġunit 2 Ġ= Ġsplits . units [ 2 ] ĊĠĠĠĠĠĠĠ ĠassertEquals (" two ", Ġunit 2 . first (). morph o logies . first (). full ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( handler 2 , Ġunit 2 . first (). handler ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` F avour Ġlonger Ġexpressions `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlex icon Ġ= ĠLex icon () ĊĠĠĠĠĠĠĠ Ġwith Word Mapping ( lex icon , Ġ" zero ") ĊĠĠĠĠĠĠĠ Ġwith Word Mapping ( lex icon , Ġ" one ") ĊĠĠĠĠĠĠĠ Ġval Ġhandler 2 Ġ= Ġwith Word Mapping ( lex icon , Ġ" two ") ĊĠĠĠĠĠĠĠ Ġval Ġhandler 0 1 Ġ= Ġwith Word Mapping ( lex icon , Ġ" zero ", ĠlistOf (" zero ", Ġ" one ")) ĊĠĠĠĠĠĠĠ Ġval Ġtext Splitter Ġ= ĠText Splitter ( lex icon ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġtest Ġzero ĊĠĠĠĠĠĠĠ Ġval Ġsplits Ġ= Ġtext Splitter . split ( build Text Model (" zero Ġone Ġtwo Ġ. "). initial Sentence ()) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġsplits . units . size ) ĊĊĠĠĠĠĠĠĠ Ġval Ġunit 0 Ġ= Ġsplits . units [ 0 ] ĊĠĠĠĠĠĠĠ ĠassertEquals (" zero ", Ġunit 0 . first (). morph o logies . first (). full ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġunit 0 . first (). morph o logies . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" one ", Ġunit 0 . first (). morph o logies [ 1 ]. full ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġunit 0 . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( handler 0 1 , Ġunit 0 . first (). handler ) ĊĊĠĠĠĠĠĠĠ Ġval Ġunit 1 Ġ= Ġsplits . units [ 1 ] ĊĠĠĠĠĠĠĠ ĠassertEquals (" two ", Ġunit 1 . first (). morph o logies . first (). full ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( handler 2 , Ġunit 1 . first (). handler ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġwith Word Mapping ( lex icon : ĠLex icon , Ġword : ĠString , Ġexpression : ĠList < String > Ġ= ĠlistOf ( word )): ĠWord Handler Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhandler Ġ= ĠWord Handler ( Entry Word ( word , Ġexpression )) ĊĠĠĠĠĠĠĠ Ġlex icon . add Mapping ( handler ) ĊĠĠĠĠĠĠĠ Ġreturn Ġhandler ĊĠĠĠ Ġ} Ċ }