/* Ċ Ġ* ĠCopyright Ġ 2 0 1 2 - 2 0 1 8 Ġthe Ġoriginal Ġauthor Ġor Ġauthors . Ċ Ġ* Ċ Ġ* Ġ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 Ġorg . nex ial . core . variable Ċ Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠCount Test Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġcount : ĠCount ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġcount Ġ= ĠCount () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Upper () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. upper ( null ), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. upper (""), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. upper (" ĠT ĠH ĠI ĠS Ġ"), Ġ" 4 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. upper (" ĠT t Hh Ii Ss Ġ"), Ġ" 4 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Lower () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. lower ( null ), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. lower (""), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. lower (" ĠT ĠH ĠI ĠS Ġ"), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. lower (" ĠT t Hh Ii Ss Ġ"), Ġ" 4 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. lower (" Equivalent Ġto Ġjava . lang . Character . is LowerCase () "), Ġ" 3 6 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Number () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. number ( null ), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. number (""), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. number (" ĠT ĠH ĠI ĠS Ġ"), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. number (" A Ġdecimal Ġdigit : Ġ[ 0 - 9 ] "), Ġ" 2 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. number ("- 1 4 3 . 2 5 f "), Ġ" 5 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Al phanumeric () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. al phanumeric ( null ), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. al phanumeric (""), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. al phanumeric (" ĠT ĠH ĠI ĠS Ġ"), Ġ" 4 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. al phanumeric (" A Ġdecimal Ġdigit : Ġ[ 0 - 9 ] "), Ġ" 1 5 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. al phanumeric ("- 1 4 3 . 2 5 f "), Ġ" 6 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Whitespace () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. whitespace ( null ), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. whitespace (""), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. whitespace (" ĠT ĠH ĠI ĠS Ġ"), Ġ" 5 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. whitespace (" Ġ\ t \ n Ġ\ r Ġ"), Ġ" 6 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. whitespace ("\ t "), Ġ" 1 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest P unctuation () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. p unctuation ( null ), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. p unctuation (""), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. p unctuation (" ĠT ĠH ĠI ĠS Ġ"), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. p unctuation (" Ġ\ t \ n Ġ\ r Ġ"), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. p unctuation (" A Ġmatches Ġmethod Ġis Ġdefined Ġby Ġthis Ġclass Ġas Ġa Ġconvenience Ġfor Ġwhen Ġa Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" regular Ġexpression Ġis Ġused Ġjust Ġonce . ĠThis Ġmethod Ġcompiles Ġan Ġexpression Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" and Ġmatches Ġan Ġinput Ġsequence Ġagainst Ġit Ġin Ġa Ġsingle Ġinvocation . Ġ"), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. p unctuation (" Don 't Ġforget Ġto Ġaccept Ġsome Ġof Ġyour Ġown Ġanswers , ĠM ister ĠR 2 , Ġas Ġyou Ġnow Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" have Ġan Ġaccept Ġrate Ġof Ġ 3 3 % Ġ( and ĠI Ġcan Ġclearly Ġsee Ġthat Ġthat Ġis Ġnot Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" deli ber ate Ġin Ġany Ġway ). ĠâĢĵ Ġ Ġow lst ead ĠJul Ġ 2 8 Ġ' 1 2 Ġat Ġ 2 3 : 0 6 \ n Ġ Ġ\ t Ġ Ġ\ t \ n Oh ! Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" G osh ĠI Ġdidn 't Ġeven Ġnotice Ġthat . ĠNo Ġit Ġwasn 't Ġintention al Ġat Ġall Ġ-- ĠThank Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" you Ġfor Ġbringing Ġit Ġup ! "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 6 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Any () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. any ( null , Ġ"' cie ! "), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. any ("", Ġ"' cie ! "), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. any (" ĠT ĠH ĠI ĠS Ġ", Ġ"' c Ie ! "), Ġ" 1 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. any (" Ġ\ t \ n Ġ\ r Ġ", Ġ"' c Ġie ! "), Ġ" 3 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. any (" A Ġmatches Ġmethod Ġis Ġdefined Ġby Ġthis Ġclass Ġas Ġa Ġconvenience Ġfor Ġwhen Ġa Ġregular Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" expression Ġis Ġused Ġjust Ġonce . ĠThis Ġmethod Ġcompiles Ġan Ġexpression Ġand Ġmatches Ġan Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" input Ġsequence Ġagainst Ġit Ġin Ġa Ġsingle Ġinvocation . Ġ", Ġ"' T ie ! "), Ġ" 3 9 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. any (" Don 't Ġforget Ġto Ġaccept Ġsome Ġof Ġyour Ġown Ġanswers , ĠM ister ĠR 2 , Ġas Ġyou Ġnow Ġhave Ġan Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" accept Ġrate Ġof Ġ 3 3 % Ġ( and ĠI Ġcan Ġclearly Ġsee Ġthat Ġthat Ġis Ġnot Ġdeli ber ate Ġin Ġany Ġway ). Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" âĢĵ Ġ Ġow lst ead ĠJul Ġ 2 8 Ġ' 1 2 Ġat Ġ 2 3 : 0 6 \ n Ġ Ġ\ t Ġ Ġ\ t \ n Oh ! ĠG osh ĠI Ġdidn 't Ġeven Ġnotice Ġthat . ĠNo Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" it Ġwasn 't Ġintention al Ġat Ġall Ġ-- ĠThank Ġyou Ġfor Ġbringing Ġit Ġup !", Ġ"' cie ! "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 4 4 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. any (" This Ġis Ġa Ġtest . Ġ ĠDo Ġnot Ġbe Ġal ar med ", Ġ" e . i "), Ġ" 6 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Size () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. size ( null ), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. size (""), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. size (" Ġ"), Ġ" 1 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. size (" ĠT ĠH ĠI ĠS Ġ"), Ġ" 9 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. size (" Ġ\ t \ n Ġ\ r Ġ"), Ġ" 6 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. size (" Add Ġwhatever Ġcharacters Ġyou Ġwish Ġto Ġmatch Ġinside Ġthe Ġ[] s . ĠBe Ġcareful Ġto Ġescape Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" any Ġcharacters Ġthat Ġmight Ġhave Ġa Ġspecial Ġmeaning Ġto Ġthe Ġregex Ġparser ."), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 4 8 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest O mit () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. omit ( null , Ġ" ae iou "), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. omit ("", Ġ" ae iou "), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. omit (" Ġ", Ġ" ae iou "), Ġ" 1 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. omit (" ĠT ĠH ĠI ĠS Ġ", Ġ" ae iou "), Ġ" 9 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. omit (" ĠT ĠH ĠI ĠS Ġ", Ġ" ae iou AE IO U "), Ġ" 8 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. omit (" Ġ\ t \ n Ġ\ r Ġ", Ġ" ae iou "), Ġ" 6 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. omit (" Add Ġwhatever Ġcharacters Ġyou Ġwish Ġto Ġmatch Ġinside Ġthe Ġ[] s . ĠBe Ġcareful Ġto Ġescape Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" any Ġcharacters Ġthat Ġmight Ġhave Ġa Ġspecial Ġmeaning Ġto Ġthe Ġregex Ġparser .", Ġ" ae iou "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 0 4 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Sequence () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. sequence ( null , Ġ" ae iou "), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. sequence ("", Ġ" ae iou "), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. sequence (" Ġ", Ġ" ae iou "), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. sequence (" ĠT ĠH ĠI ĠS Ġ", Ġ" ae iou "), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. sequence (" ĠT ĠH ĠI ĠS Ġ", Ġ" ae iou AE IO U "), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. sequence (" Ġ\ t \ n Ġ\ r Ġ", Ġ" ae iou "), Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( count !!. sequence (" So ĠI 'm Ġcompletely Ġnew Ġto ĠRegular ĠExpress ions , Ġand ĠI 'm Ġtrying Ġto Ġuse ĠJava 's Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" java . util . regex Ġto Ġfind Ġpunctuation Ġin Ġinput ĠStrings . ĠI Ġwon 't Ġknow Ġwhat Ġkind Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" of Ġpunctuation ĠI Ġmight Ġget Ġahead Ġof Ġtime , Ġexcept Ġthat Ġ( 1 ) Ġ! , Ġ?, Ġ. , Ġ... Ġare Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" all Ġvalid Ġp unc utation , Ġand Ġ( 2 ) Ġ\" < \" Ġand Ġ\ "> \" Ġmean Ġsomething Ġspecial , Ġand Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" don 't Ġcount Ġas Ġpunctuation . ĠThe Ġprogram Ġitself Ġbuilds Ġphrases Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pseudo - random ly , Ġand ĠI Ġwant Ġto Ġstrip Ġoff Ġthe Ġpunctuation Ġat Ġthe Ġend Ġof Ġa Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" sentence Ġbefore Ġit Ġgoes Ġthrough Ġthe Ġrandom Ġprocess .", Ġ" the Ġ"), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 3 ") ĊĠĠĠ Ġ} Ċ }