true = true (boolean)
false = false (boolean)
empty = (empty string)
notempty = notempty (string)

ATOMS - truthy checks

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

&& - simple expressions

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

|| - simple expressions

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

! - simple expressions

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

Ternary operator - simple expressions

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

Complex expressions

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

String comparison operators

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

Number comparison operators

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

Java Enum comparisons

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

Relational Operators

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

Operators precedence

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