true = ${true} (boolean)
false = ${false} (boolean)
empty = ${empty} (empty string)
notempty = ${notempty} (string)

ATOMS - truthy checks

${Truthy iterator}
Non-Empty value
${Falsy iterator}
Empty value

&& - simple expressions

${true && false}
${true && false}
${empty && notempty}
${empty && notempty}
${1 && 0}
${1 && 0}
${0 && 1}
${0 && 1}
${notempty && 0}
${notempty && 0}
${0 && notempty}
${0 && notempty}
${'a' && notempty}
${'a' && notempty}

|| - simple expressions

${true || false}
${true || false}
${empty || notempty}
${empty || notempty}
${0 || 1}
${0 || 1}
${0 || notempty}
${0 || notempty}
${'a' || 'b'}
${'a' || 'b'}
${0 || false}
${0 || false}
${false || 0}
${false || 0}

! - simple expressions

${!true}
${!true}
${!false}
${!false}
${!empty}
${!empty}
${!notempty}
${!notempty}

Ternary operator - simple expressions

${true ? 'thenBranch' : 'elseBranch'}
${true ? 'thenBranch' : 'elseBranch'}
${false ? 'thenBranch' : 'elseBranch'}
${false ? 'thenBranch' : 'elseBranch'}
${notempty ? 'thenBranch' : 'elseBranch'}
${notempty ? 'thenBranch' : 'elseBranch'}
${empty ? 'thenBranch' : 'elseBranch'}
${empty ? 'thenBranch' : 'elseBranch'}

Complex expressions

${!(true && !(true || false))}
${!(true && !(true || false))}
${!(true && !(empty || notempty))}
${!(true && !(empty || notempty))}
${true ? (!empty ? 'thenBranch' : 'elseBranch1') : 'elseBranch'}
${true ? (!empty ? 'thenBranch' : 'elseBranch1') : 'elseBranch'}
${(true && 'a') || 'b'}
${(true && 'a') || 'b'}
${(true || 'a') && 'b'}
${(true || 'a') && 'b'}
${(1 || 'a') || 'b'}
${(1 || 'a') || 'b'}

String comparison operators

${'sightly' == 'sightly'}
${'sightly' == 'sightly'}
${'' == ''}
${'' == ''}
${'string1' == 'string2'}
${'string1' == 'string2'}
${null == null}
${null == null}
${null == ''}
${null == ''}
${null == 'sightly'}
${null == 'sightly'}
${'null' == null}
${'null' == null}
${'sightly' != 'sightly'}
${'sightly' != 'sightly'}
${'' != ''}
${'' != ''}
${'string1' != 'string2'}
${'string1' != 'string2'}
${null != null}
${null != null}
${null != ''}
${null != ''}
${null != 'sightly'}
${null != 'sightly'}
${'null' != null}
${'null' != null}

Number comparison operators

${6325.499879499452 < 6325.499879499452}
${6325.499879499452 < 6325.499879499452}
${6325.499879499452 > 6325.499879499452}
${6325.499879499452 > 6325.499879499452}
${6325.499879499452 <= 6325.499879499452}
${6325.499879499452 <= 6325.499879499452}
${6325.499879499452 >= 6325.499879499452}
${6325.499879499452 >= 6325.499879499452}
${6325.499879499452 == 6325.499879499452}
${6325.499879499452 == 6325.499879499452}
${6325.499879499452 != 6325.499879499452}
${6325.499879499452 != 6325.499879499452}
${8236 < 8236}
${8236 < 8236}
${8236 > 8236}
${8236 > 8236}
${8236 <= 8236}
${8236 <= 8236}
${8236 >= 8236}
${8236 >= 8236}
${8236 == 8236}
${8236 == 8236}
${8236 != 8236}
${8236 != 8236}
${6390.373926042183 < 2231.832266239736}
${6390.373926042183 < 2231.832266239736}
${6390.373926042183 > 2231.832266239736}
${6390.373926042183 > 2231.832266239736}
${6390.373926042183 <= 2231.832266239736}
${6390.373926042183 <= 2231.832266239736}
${6390.373926042183 >= 2231.832266239736}
${6390.373926042183 >= 2231.832266239736}
${6390.373926042183 == 2231.832266239736}
${6390.373926042183 == 2231.832266239736}
${6390.373926042183 != 2231.832266239736}
${6390.373926042183 != 2231.832266239736}
${483 < 2816}
${483 < 2816}
${483 > 2816}
${483 > 2816}
${483 <= 2816}
${483 <= 2816}
${483 >= 2816}
${483 >= 2816}
${483 == 2816}
${483 == 2816}
${483 != 2816}
${483 != 2816}
\${-0.1 > -0.2}
${-0.1 > -0.2}
\${-0.1 > -1}
${-0.1 > -1}
\${-2 == -2.00}
${-2 == -2.00}
\${-1e-2 == -0.01}
${-1e-2 == -0.01}
\${-1.1e+1 == -11}
${-1.1e+1 == -11}

Java Enum comparisons

${enumobj.value1 == 'CONSTANT1'}
${enumobj.value1 == 'CONSTANT1'}
${enumobj.value1 != 'CONSTANT2'}
${enumobj.value1 != 'CONSTANT2'}
${enumobj.value2 != 'CONSTANT1'}
${enumobj.value2 != 'CONSTANT1'}
${enumobj.value2 == 'CONSTANT2'}
${enumobj.value2 == 'CONSTANT2'}
${enumobj.value1 != 'CONSTANT1'}
${enumobj.value1 != 'CONSTANT1'}
${enumobj.value1 == 'CONSTANT2'}
${enumobj.value1 == 'CONSTANT2'}
${enumobj.value2 == 'CONSTANT1'}
${enumobj.value2 == 'CONSTANT1'}
${enumobj.value2 != 'CONSTANT2'}
${enumobj.value2 != 'CONSTANT2'}
${enumobj.value1 == 'random string'}
${enumobj.value1 == 'random string'}

Relational Operators

relHelper = use(function () {
    return {
        array: [100, 200, 300, 400, 500],
        a: true,
        b: 'two',
        c: 3
    };
});
    
\${'a' in 'abc'}
${'a' in 'abc'}
\${'ab' in 'abc'}
${'ab' in 'abc'}
\${'bc' in 'abc'}
${'bc' in 'abc'}
\${'abc' in 'abc'}
${'abc' in 'abc'}
\${'d' in 'abc'}
${'d' in 'abc'}
\${100 in relHelper.array}
${100 in relHelper.array}
\${300 in relHelper.array}
${300 in relHelper.array}
\${1 in relHelper.array}
${1 in relHelper.array}
\${'a' in relHelper}
${'a' in relHelper}
\${'b' in relHelper}
${'b' in relHelper}
\${'c' in relHelper}
${'c' in relHelper}
\${'two' in relHelper}
${'two' in relHelper}

Operators precedence

\${true || false && false}
${true || false && false}
\${'a' in 'abc' || false && false}
${'a' in 'abc' || false && false}
\${1 > 0 || false && false}
${1 > 0 || false && false}