package Ġio . github . gil berto j requ ena . bon sai _ sns . core . filter _ policy Ċ Ċ import Ġio . github . gil berto j requ ena . bon sai _ sns . core . Message Attribute Ċ import Ġorg . junit . jupiter . api . Assertions . assertFalse Ċ import Ġorg . junit . jupiter . api . Assertions . assertTrue Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠFilter Policy Evaluator Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġevaluator Ġ= ĠFilter Policy Evaluator () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġmatching Ġstring Ġvalue `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" customer _ interest s " Ġto ĠMessage Attribute (" String ", Ġ" r ug by ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" customer _ interest s ": Ġ" r ug by "} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġfalse Ġfor Ġnon - matching Ġstring Ġvalue `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" customer _ interest s " Ġto ĠMessage Attribute (" String ", Ġ" r ug by ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" customer _ interest s ": Ġ" foot ball "} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġor Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" customer _ interest s " Ġto ĠMessage Attribute (" String ", Ġ" r ug by ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" customer _ interest s ": Ġ[" r ug by ", Ġ" movies "]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġfalse Ġfor Ġnegative Ġor Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" customer _ interest s " Ġto ĠMessage Attribute (" String ", Ġ" electron ics ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" customer _ interest s ": Ġ[" r ug by ", Ġ" movies "]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġanything - but Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" customer _ interest s " Ġto ĠMessage Attribute (" String ", Ġ" electron ics ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" customer _ interest s ": Ġ[{" anything - but ": Ġ[" r ug by ", Ġ" ten nis "]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġanything - but Ġoperation Ġwith Ġarray `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" customer _ interest s " Ġto ĠMessage Attribute (" String . Array ", Ġ""" [" electron ics ", Ġ" r ug by "] "" ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" customer _ interest s ": Ġ[{" anything - but ": Ġ[" r ug by ", Ġ" ten nis "]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġanything - but Ġoperation Ġwith Ġnumber Ġarray `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number . Array ", Ġ""" [ 1 0 0 , Ġ 5 0 ] "" ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" anything - but ": Ġ[ 1 0 0 , Ġ 5 0 0 ]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġanything - but Ġoperation Ġwith Ġnumber Ġarray Ġwith Ġnull Ġpolicy Ġvalue `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number . Array ", Ġ""" [ 1 0 0 , Ġ 5 0 ] "" ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" anything - but ": Ġ[ 1 0 0 , Ġnull ]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġanything - but Ġoperation Ġwith Ġboolean Ġarray `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" String . Array ", Ġ""" [ false ] "" ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" anything - but ": Ġ[ true , Ġtrue ]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġanything - but Ġoperation Ġwith Ġboolean Ġarray Ġwith Ġnull Ġpolicy Ġvalue `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" String . Array ", Ġ""" [ false ] "" ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" anything - but ": Ġ[ true , Ġnull ]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġanything - but Ġoperation Ġwith Ġboolean Ġarray Ġwith Ġnull Ġattribute Ġvalue `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" String . Array ", Ġ""" [ null , Ġfalse ] "" ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" anything - but ": Ġ[ true ]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġanything - but Ġoperation Ġwith Ġnumber Ġarray Ġwith Ġnull Ġattribute Ġvalue `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number . Array ", Ġ""" [ 1 0 0 , Ġnull ] "" ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" anything - but ": Ġ[ 1 0 0 , Ġ 5 0 0 ]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġfalse Ġfor Ġnegative Ġanything - but Ġoperation Ġwith Ġarray `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" customer _ interest s " Ġto ĠMessage Attribute (" String . Array ", Ġ""" [" ten nis ", Ġ" r ug by "] "" ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" customer _ interest s ": Ġ[{" anything - but ": Ġ[" r ug by ", Ġ" ten nis "]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġfalse Ġfor Ġnegative Ġanything - but Ġoperation Ġwith Ġnumber Ġarray `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number . Array ", Ġ""" [ 1 1 . 2 3 4 5 6 , Ġ 2 2 . 1 2 ] "" ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" anything - but ": Ġ[ 1 1 . 2 3 4 5 6 , Ġ 2 2 . 1 2 ]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġfalse Ġfor Ġnegative Ġanything - but Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" customer _ interest s " Ġto ĠMessage Attribute (" String ", Ġ" electron ics ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" customer _ interest s ": Ġ[{" anything - but ": Ġ[" electron ics ", Ġ" ten nis "]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġnumeric Ġanything - but Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number ", Ġ" 1 0 0 . 2 1 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" anything - but ": Ġ[ 1 0 0 , Ġ 2 5 . 5 ]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġfalse Ġfor Ġnegative Ġnumeric Ġanything - but Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number ", Ġ" 1 0 0 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" anything - but ": Ġ[ 3 0 , Ġ 1 0 0 ]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġprefix Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" customer _ interest s " Ġto ĠMessage Attribute (" String ", Ġ" electron ics ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" customer _ interest s ": Ġ[{" prefix ": Ġ" e lec "}]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġfalse Ġfor Ġnegative Ġprefix Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" customer _ interest s " Ġto ĠMessage Attribute (" String ", Ġ" electron ics ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" customer _ interest s ": Ġ[{" prefix ": Ġ" mus "}]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġnumeric Ġequality Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number ", Ġ" 3 . 0 1 5 e 2 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" numeric ": Ġ[" =", Ġ 3 0 1 . 5 ]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġfalse Ġfor Ġnegative Ġnumeric Ġequality Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number ", Ġ"- 3 . 0 1 5 e 2 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" numeric ": Ġ[" =", Ġ 3 0 1 . 5 ]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġnumeric Ġrange Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number ", Ġ" 3 . 0 2 5 e 2 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" numeric ": Ġ[ "> =", Ġ 3 0 1 . 5 ]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġfalse Ġfor Ġnegative Ġnumeric Ġrange Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number ", Ġ"- 3 . 0 1 5 e 2 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" numeric ": Ġ[ "> ", Ġ 0 ]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġnumeric Ġcomplex Ġrange Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number ", Ġ" 3 . 0 1 5 e 2 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" numeric ": Ġ[ "> ", Ġ 0 , Ġ"< =", Ġ 1 5 0 0 ]} ]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpositive Ġexist Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number ", Ġ"- 3 . 0 1 5 e 2 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" exists ": Ġtrue }]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġfalse Ġwhen Ġexpecting Ġattribute Ġto Ġnot Ġexist Ġbut Ġthe Ġattribute Ġis Ġpresent `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number ", Ġ"- 3 . 0 1 5 e 2 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" price ": Ġ[{" exists ": Ġfalse }]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġwhen Ġexpecting Ġattribute Ġto Ġnot Ġexist Ġand Ġit Ġis Ġnot Ġpresent `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number ", Ġ" 3 . 0 1 5 e 2 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" week ": Ġ[{" exists ": Ġfalse }]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġfalse Ġfor Ġnegative Ġexist Ġoperation `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" price " Ġto ĠMessage Attribute (" Number ", Ġ" 3 . 0 1 5 e 2 ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" week ": Ġ[{" exists ": Ġtrue }]} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġtrue Ġfor Ġpolicy Ġthat Ġaccepts Ġmessage `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" customer _ interest s " Ġto ĠMessage Attribute (" String ", Ġ" r ug by "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" store " Ġto ĠMessage Attribute (" String ", Ġ" example _ corp "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" event " Ġto ĠMessage Attribute (" String ", Ġ" order _ placed "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" price _ usd " Ġto ĠMessage Attribute (" Number ", Ġ" 2 1 0 . 7 5 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" store ": Ġ[" example _ corp "], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" event ": Ġ[{" anything - but ": Ġ" order _ cancelled "}], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" customer _ interest s ": Ġ[ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" r ug by ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" foot ball ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" base ball " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" price _ usd ": Ġ[{" numeric ": Ġ[ "> =", Ġ 1 0 0 ]} ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġevaluate Ġto Ġfalse Ġfor Ġpolicy Ġthat Ġreject s Ġmessage `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . eval ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" customer _ interest s " Ġto ĠMessage Attribute (" String ", Ġ" r ug by "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" store " Ġto ĠMessage Attribute (" String ", Ġ" example _ corp "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" event " Ġto ĠMessage Attribute (" String ", Ġ" order _ cancelled "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" price _ usd " Ġto ĠMessage Attribute (" Number ", Ġ" 2 1 0 . 7 5 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" store ": Ġ[" example _ corp "], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" event ": Ġ[" order _ cancelled "], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted ": Ġ[ false ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" customer _ interest s ": Ġ[ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" basket ball ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" base ball " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }