Formal call to functions

This test case it part of the test suite proposed for new devices.

Test case ID: R0100
Language: ST

Code:
tests2/t0100.st
(* Function ABSZ : returns absolute value, increments Y in 0.5 and sets XZ = ABSZ+1 *)
FUNCTION ABSZ_R0100 : REAL

VAR_INPUT
    X : REAL;
END_VAR
VAR_IN_OUT
    Y : REAL;
END_VAR

VAR_OUTPUT
    XZ : REAL;
END_VAR

VAR
    i : REAL := 42.0;
END_VAR

    IF( X < 0.0 ) THEN ABSZ_R0100 := -X;
    ELSE ABSZ_R0100 := X;
    END_IF;
    Y  := Y + 0.5;
    XZ := ABSZ_R0100 + 1.0;
    
END_FUNCTION

PROGRAM R0100
VAR
    ZIN,R2,O2,IO1 : REAL;
END_VAR
    IO1 := 2.3;
    ZIN := -1.234;
    R2 := ABSZ_R0100( X := ZIN, Y := IO1, XZ => O2 );       // function return same as informal call

_GEB_ASSERT_EQFLOAT_(IO1 , 2.8);
_GEB_ASSERT_EQFLOAT_(O2 , 2.234);
_GEB_ASSERT_EQFLOAT_(R2 , 1.234);
_GEB_ASSERT_EQFLOAT_(ZIN , -1.234);

    
END_PROGRAM