## 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`.

An 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`.

operator symbol example
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 then 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"
``````