A simple test follows:

${message}

Now perform scalar boolean tests:

boolean1 succeeded: ${boolean1}
boolean1 failed: ${boolean1}

boolean2 succeeded: ${boolean2}
boolean2 failed: ${boolean2}

boolean3 succeeded: ${boolean3}
boolean3 failed: ${boolean3}

boolean4 succeeded: ${boolean4}
boolean4 failed: ${boolean4}

boolean5 succeeded: ${boolean5}
boolean5 failed: ${boolean5}

Now test list models:

list1 succeeded: ${list1[3]}
list1 failed: ${list1[3]}

list2 succeeded.
list2 failed.

Test hash models:

hash1 succeeded: ${hash1.temp}
hash1 failed: ${hash1.temp}

hash2 succeeded.
hash2 failed.

Test not operator:

Not boolean1 succeeded Not boolean1 failed

Not boolean1 succeeded Not boolean1 failed

Not boolean2 succeeded Not boolean2 failed

Not boolean2 succeeded Not boolean2 failed

Boolean1 and boolean2 true Boolean1 and boolean2 false

Boolean1 or boolean2 true Boolean1 or boolean2 false

Boolean3 and boolean4 true Boolean3 and boolean4 false

Boolean3 or boolean4 true Boolean3 or boolean4 false

Message is "Hello, world!" Message is something else (${message})

Message is not "Hello, world!" -- it's ${message} Message is "Hello, world!"

Message is "Hello, world!" Message is something else (${message})

Message is not "Hello, world!" -- it's ${message} Message is "Hello, world!"

Constant is true Constant is false

Constant is true Constant is false

Constant is false Constant is true

Constant is false Constant is true

Empty model is empty Empty model is not empty

Empty models match Empty models don't match

False literals match False literals don't match

True literals match True literals don't match

Empty literal evaluates true Empty literal evaluates false