Skip to content
/ .. /
Operators





Operators

intaQt supports most operations. Operations conform to Operation Precedence, in other words, the order of operations. For example, parentheses are used to force a given precedence. The results of the operations described above constitute additional expressions that can be reused in subsequent operations.

Examples

Feature File Example

1
2
3
4
5
Feature: Operators Example

  Scenario: Adding

    And add numbers

Steps File Example

1
2
3
4
5
6
stepdef "add numbers"
    result :=  4 * (2 + 3) - 3 % 2
    result2 := 1 + result
    println(result + 1)
    println(result + result2)
end

Configuration File Example

1
Glue.path : ["Project"]

When this test case is run, it will print the following to the log:

1
2
3
4
5
2018.10.30 15:14:33.8 Scenario started: Adding
2018.10.30 15:14:33.8 Step started: add numbers
2018.10.30 15:14:33.8    20
2018.10.30 15:14:33.8    39
2018.10.30 15:14:33.8    Step ended with status: passed

The order of precedence for Arithmetic Operations, ranging from highest to lowest, are:

Symbol Operation
() Group
% Modulo
^ Exponential
*, / Multiplication, Division
+, - Addition, Subtraction

The order of precedence for comparison and Logical Operations is:

  • <= < > >=

  • = !=

  • and

  • or

Arithmetical Operations

Operation Symbol Example Result
Addition + 2 + 2.3 Number
Addition with strings + "hello" + " world" String
Subtraction - 17 - 3 Number
Multiplication * 2 * 4.1 Number
Division / 102 / 12 Number
Exponential ^ 10 ^ 3 Number
Modulo % 10 % 3 Number

Comparison and Logical Operations

Operator Symbol Example
Equals == balance == 2
Not Equal != balance != 1
Not ! rate !5
Greater Than > a > b
Less Than < b < a
Greater Than or Equal >= c >= d
Less Than or Equal <= d <= c
And and a and b
And && a && b
Or or a or b
Or | a || b

Bitwise Operators

Operator Symbol Example
Bitwise And & E1 & E2
Bitwise Or &#124 E1 &#124; E2
Bitwise Xor ^ E1 ^ E2

Example

1
2
3
4
5
6
7
8
cdrVerificationVariables {
    cdrSelectionA {
        "voiceAndSms" = "(Ticket_Type == 'SMS' || Ticket_Type == 'Voice') &&
            check(A_Party).against('CC.NDC.NUMBER').basedOn(ctx.A.number) &&
            check(Time_Stamp).after(testcase.startTime) &&
            check(Time_Stamp).before(testcase.finishTime)"
    }
}

The definition in the example above states that tickets are selected according to the A-party's number in a specific format and a certain time window that starts with the time stamp after the test case has started and ends with the time stamp before is has finished. Since there is a double pipe ( ||) that stands for "or", these tickets can be either of the type SMS or Voice.