1 #include "gpsim_assert.h" 2 // Compound comparisons 3 4 unsigned char success = 0; 5 unsigned char failures = 0; 6 unsigned char dummy = 0; 7 8 //bit bit0 = 0; 9 int int0 = 0; 10 int int1 = 0; 11 unsigned char uchar0 = 0; 12 unsigned char uchar1 = 0; 13 char char0 = 0; 14 char char1 = 0; 15 char long0 = 0; 16 char long1 = 0; 17 18 void done()19done() 20 { 21 ASSERT(MANGLE(failures) == 0); 22 PASSED(); 23 } 24 25 void c_char(void)26c_char(void) 27 { 28 29 if(char0 || char1) 30 failures++; 31 32 if(char0 && char1) 33 failures++; 34 35 if(char0 > char1) 36 failures++; 37 38 if((char0+1) < char1) 39 failures++; 40 41 if((char0+5) >= (char1+9)) 42 failures++; 43 44 char0++; 45 46 if(char0 && char1) 47 failures++; 48 49 if(char0 != (char1+1) ) 50 failures++; 51 52 if(!char0) 53 failures++; 54 55 if(char1 || !char0) 56 failures++; 57 58 if((char0 >5 ) && (char0 < 10)) 59 failures++; 60 61 char0 +=5; /* char0 = 6 now */ 62 63 64 if(!((char0 >5 ) && (char0 < 10))) 65 failures++; 66 67 } 68 69 70 void c_int(void)71c_int(void) 72 { 73 74 if(int0 || int1) 75 failures++; 76 77 if(int0 && int1) 78 failures++; 79 80 if(int0 > int1) 81 failures++; 82 83 if((int0+1) < int1) 84 failures++; 85 86 if((int0+5) >= (int1+9)) 87 failures++; 88 89 int0++; 90 91 if(int0 && int1) 92 failures++; 93 94 if(int0 != (int1+1) ) 95 failures++; 96 97 if(!int0) 98 failures++; 99 100 if(int1 || !int0) 101 failures++; 102 103 if((int0 >5 ) && (int0 < 10)) 104 failures++; 105 106 int0 +=5; /* int0 = 6 now */ 107 108 109 if(!((int0 >5 ) && (int0 < 10))) 110 failures++; 111 112 } 113 114 115 void c_long(void)116c_long(void) 117 { 118 119 if(long0 || long1) 120 failures++; 121 122 if(long0 && long1) 123 failures++; 124 125 if(long0 > long1) 126 failures++; 127 128 if((long0+1) < long1) 129 failures++; 130 131 if((long0+5) >= (long1+9)) 132 failures++; 133 134 long0++; 135 136 if(long0 && long1) 137 failures++; 138 139 if(long0 != (long1+1) ) 140 failures++; 141 142 if(!long0) 143 failures++; 144 145 if(long1 || !long0) 146 failures++; 147 148 if((long0 >5 ) && (long0 < 10)) 149 failures++; 150 151 long0 +=5; /* long0 = 6 now */ 152 153 154 if(!((long0 >5 ) && (long0 < 10))) 155 failures++; 156 157 } 158 159 void c_uminus(void)160c_uminus(void) 161 { 162 163 int1 = -int0; 164 if(int1 < 0) 165 failures++; 166 } 167 168 void main(void)169main (void) 170 { 171 172 c_char(); 173 c_int(); 174 c_long(); 175 176 int0 = -1; 177 c_uminus(); 178 if(int1 != 1) 179 failures++; 180 181 success = failures; 182 done (); 183 } 184 185