Version: latest

# Unary-Tests

Unary-Tests can be used only for input entries of a decision table. They are a special kind of expression with additional operators. The operators get the value of the input expression implicitly as the first argument.

The result of the expression must be either `true` or `false`.

A unary-tests expression is `true` if one of the following conditions is fulfilled:

• The expression evaluates to `true` when the input value is applied to it.
• The expression evaluates to a list and the input value is equal to at least one of the values in that list.
• The expression evaluates to a value and the input value is equal to that value.

### Comparison#

Compare the input value to `x`.

operatorsymbolexample
equal to(none)`"valid"`
less than`<``< 10`
less than or equal`<=``<= 10`
greater than`>``> 10`
greater than or equal`>=``>= 10`
• Less than/greater than are only supported for:
• Number
• Date
• Time
• Date-time
• Year-month-duration
• Day-time-duration

### Interval#

Test if the input value is within the interval `x` and `y`.

An interval can be open `(x..y)` / `]x..y[` or closed `[x..y]`. If the interval is open, the value is not included.

``````(2..5)// input > 2 and input < 5
[2..5]// input >= 2 and input <= 5
(2..5]// input > 2 and input <= 5``````

### Disjunction#

Test if at least of the expressions is `true`.

``````2, 3, 4// input = 2 or input = 3 or input = 4
< 10, > 50// input < 10 or input > 50``````

### Negation#

Test if the expression is `false`.

``````not("valid")// input != "valid"
not(2, 3)// input != 2 and input != 3``````

### Expression#

It is also possible to use a boolean expression instead of an operator. For example, invoking a built-in function.

The input value can be accessed by the special variable `?`.

``````ends with(?, "@camunda.com")// test if the input value (string) ends with "@camunda.com"
list contains(?, "invalid")// test if the input value (list) contains "invalid"``````