Test case R0111
Full test suiteDevice test case
Functions calls, EN/ENO
This test case it part of the test suite proposed for new devices.
Test case ID: R0111
Language: ST
tests2/t0111.st// several cases of functions invocations (non extensible) PROGRAM Test_R0111 VAR i1,i2 : INT; o1,o2,o3,o1x,o4,o5,o6 : INT; eno2,eno3,eno5,eno6 : BOOL; END_VAR i1 := 20; i2 := 30; o1 := AV_R0111( i1,i2); // 25 o1x := AV_R0111( AV_R0111(i1,i2) , AV_R0111(i1,i2) + 2); o2 := AV_R0111( EN := TRUE, X := i1 + 2 , Y := i2 + 2 , ENO => eno2); o3 := AV_R0111( EN := FALSE, X := i1 , Y := i2 , ENO => eno3); // similar with sdtlib o4 := MUL( IN1 := i1, IN2 := 2); o5 := MUL( EN := TRUE, IN1 := i1 + 2 , IN2 := 2 , ENO => eno5); o6 := MUL( EN := FALSE, IN1 := i1 , IN2 := 2 , ENO => eno6); _GEB_ASSERT_(eno2 = 1); _GEB_ASSERT_(eno3 = 0); _GEB_ASSERT_(eno5 = 1); _GEB_ASSERT_(eno6 = 0); _GEB_ASSERT_(o1 = 25); _GEB_ASSERT_(o1x = 26); _GEB_ASSERT_(o2 = 27); _GEB_ASSERT_(o3 = 0); _GEB_ASSERT_(o4 = 40); _GEB_ASSERT_(o5 = 44); _GEB_ASSERT_(o6 = 0); END_PROGRAM // average FUNCTION AV_R0111 : INT VAR_INPUT X, Y : INT; END_VAR AV_R0111 := (X + Y) / 2 ; END_FUNCTION