Comparison operators

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

Test case ID: R0023
Language: ST

Code:
tests2/t0023.st
(* COMPARISON OPERATORS *)
PROGRAM p1_R0023

VAR
    r0 : REAL;
    d0 : LREAL;
    i0 : INT;
    s0 : STRING;
    tod1 : TIME_OF_DAY;
    dt  : DATE_AND_TIME;
    da1 : DATE;
    
    b0,b1,b2,b3,b4,b5,b6 : BOOL;
    f0,f1,f2,f3,f4,f5,f6 : BOOL;
    
END_VAR

    d0 := 2.0;
    r0 :=  2.0;
    i0 := 2;
    b0 := (d0 < 3.0) AND (d0 = 2.0) AND (d0 >= 1.0);
    f0 := d0 >= 3.0; 
    b1 := (r0 <= 3.0) AND (r0 <> 2.5) AND (r0 > 1.0);
    f1 := r0 = 2.5; 
    b2 := (i0 < 3) AND (i0 = 2) AND (i0>= 1);
    f2 :=  i0 < 1;

    dt := DT#1984-06-25-15:36:55.36 ; 
    b3 := (dt < DT#1985-06-25-15:36:55.36 ) AND (dt = DT#1984-06-25-15:36:55.36 ) AND (dt>= DT#1982-06-25-15:36:55.36); 
    f3 := dt > DT#1985-06-25-15:36:55.36;
     
    s0 := 'Hi';
    b4 := (s0 < 'Z') AND (s0 = 'Hi' ) AND (s0>= 'Aaa'); 
    f4 := s0 > 'Z'; 
    
    tod1 := tod#12:00:00;
    b5 := (tod1 < tod#12:01:00) AND (tod1 = tod#12:00:00) AND (tod1 >= tod#11:50:00); 
    f5 := tod1 >= tod#12:01:00;
    
    da1 := date#1999-01-30;
    b6 := (da1 < date#1999-02-03) AND (da1 <> date#1999-03-30) AND (da1>= date#1998-03-31);
    _GEB_MSG_(DATE_TO_STRING(da1)); 
    f6 := da1 = date#1999-03-30;
    
    dt := DT#2000-01-01-00:00:10.36;
    dt := DT#1999-12-31-23:59:10.37;

_GEB_ASSERT_(b0 = 1);
_GEB_ASSERT_(b1 = 1);
_GEB_ASSERT_(b2 = 1);
_GEB_ASSERT_(b3 = 1);
_GEB_ASSERT_(b4 = 1);
_GEB_ASSERT_(b5 = 1);
_GEB_ASSERT_(b6 = 1);
_GEB_ASSERT_(f0 = 0);
_GEB_ASSERT_(f1 = 0);
_GEB_ASSERT_(f2 = 0);
_GEB_ASSERT_(f3 = 0);
_GEB_ASSERT_(f4 = 0);
_GEB_ASSERT_(f5 = 0);
_GEB_ASSERT_(f6 = 0);    

END_PROGRAM