lindquist@1: module floatcmp; lindquist@270: extern(C) int printf(char*, ...); lindquist@1: lindquist@1: void eq() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(!(_3 == 4)); lindquist@1: assert(!(_3 == 2)); lindquist@1: assert(_3 == 3); lindquist@1: assert(!(_3 == float.nan)); lindquist@1: } lindquist@1: lindquist@1: void neq() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(_3 != 4); lindquist@1: assert(_3 != 2); lindquist@1: assert(!(_3 != 3)); lindquist@1: assert(_3 != float.nan); lindquist@1: } lindquist@1: lindquist@1: void gt() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(_3 > 2); lindquist@1: assert(!(_3 > 4)); lindquist@1: assert(!(_3 > 3)); lindquist@1: assert(!(_3 > float.nan)); lindquist@1: } lindquist@1: lindquist@1: void ge() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(_3 >= 2); lindquist@1: assert(!(_3 >= 4)); lindquist@1: assert(_3 >= 3); lindquist@1: assert(!(_3 >= float.nan)); lindquist@1: } lindquist@1: lindquist@1: void lt() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(_3 < 4); lindquist@1: assert(!(_3 < 2)); lindquist@1: assert(!(_3 < 3)); lindquist@1: assert(!(_3 < float.nan)); lindquist@1: } lindquist@1: lindquist@1: void le() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(_3 <= 4); lindquist@1: assert(!(_3 <= 2)); lindquist@1: assert(_3 <= 3); lindquist@1: assert(!(_3 <= float.nan)); lindquist@1: } lindquist@1: lindquist@1: void uno() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(!(_3 !<>= 2)); lindquist@1: assert(!(_3 !<>= 3)); lindquist@1: assert(!(_3 !<>= 4)); lindquist@1: assert(_3 !<>= float.nan); lindquist@1: } lindquist@1: lindquist@1: void lg() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(_3 <> 4); lindquist@1: assert(_3 <> 2); lindquist@1: assert(!(_3 <> 3)); lindquist@1: assert(!(_3 <> float.nan)); lindquist@1: } lindquist@1: lindquist@1: void lge() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(_3 <>= 4); lindquist@1: assert(_3 <>= 2); lindquist@1: assert(_3 <>= 3); lindquist@1: assert(!(_3 <>= float.nan)); lindquist@1: } lindquist@1: lindquist@1: void ugt() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(_3 !<= 2); lindquist@1: assert(!(_3 !<= 4)); lindquist@1: assert(!(_3 !<= 3)); lindquist@1: assert(_3 !<= float.nan); lindquist@1: } lindquist@1: lindquist@1: void uge() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(_3 !< 2); lindquist@1: assert(!(_3 !< 4)); lindquist@1: assert(_3 !< 3); lindquist@1: assert(_3 !< float.nan); lindquist@1: } lindquist@1: lindquist@1: void ult() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(_3 !>= 4); lindquist@1: assert(!(_3 !>= 2)); lindquist@1: assert(!(_3 !>= 3)); lindquist@1: assert(_3 !>= float.nan); lindquist@1: } lindquist@1: lindquist@1: void ule() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(_3 !> 4); lindquist@1: assert(!(_3 !> 2)); lindquist@1: assert(_3 !> 3); lindquist@1: assert(_3 !> float.nan); lindquist@1: } lindquist@1: lindquist@1: void ueq() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(!(_3 !<> 2)); lindquist@1: assert(!(_3 !<> 4)); lindquist@1: assert(_3 !<> 3); lindquist@1: assert(_3 !<> float.nan); lindquist@1: } lindquist@1: lindquist@1: void main() lindquist@1: { lindquist@1: printf("floating point comparison test\n"); lindquist@1: lindquist@1: eq(); lindquist@1: neq(); lindquist@1: gt(); lindquist@1: ge(); lindquist@1: lt(); lindquist@1: le(); lindquist@1: uno(); lindquist@1: lg(); lindquist@1: lge(); lindquist@1: ugt(); lindquist@1: uge(); lindquist@1: ult(); lindquist@1: ule(); lindquist@1: ueq(); lindquist@1: lindquist@1: printf(" SUCCESS\n"); lindquist@1: } lindquist@1: lindquist@1: /+ lindquist@1: void gt() lindquist@1: { lindquist@1: float _3 = 3; lindquist@1: assert(); lindquist@1: assert(); lindquist@1: assert(); lindquist@1: assert(); lindquist@1: } lindquist@1: +/