136352ffe8eb22887933ec7e83248624ff407aa3
[mes.git] / scaffold / tests / 32-compare.c
1 /* -*-comment-start: "//";comment-end:""-*-
2  * Mes --- Maxwell Equations of Software
3  * Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
4  *
5  * This file is part of Mes.
6  *
7  * Mes is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3 of the License, or (at
10  * your option) any later version.
11  *
12  * Mes is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with Mes.  If not, see <http://www.gnu.org/licenses/>.
19  */
20
21 #include "30-test.i"
22 #include <stdio.h>
23
24 int
25 test ()
26 {
27   int f = 0;
28   int t = 1;
29   int one = t;
30
31   puts ("\n");
32   puts ("t: if (f)\n");
33   if (f) return 1;
34
35   puts ("t: if (one != 1)\n");
36   if (one != 1) return 1;
37
38   puts ("t: if (1 != one)\n");
39   if (1 != one) return 1;
40
41   puts ("t: if (one > 1)\n");
42   if (one > 1) return 1;
43
44   puts ("t: if (one < 0)\n");
45   if (one < 0) return 1;
46
47   puts ("t: if (one <= 0)\n");
48   if (one <= 0) return 1;
49
50   puts ("t: if (one >= 2)\n");
51   if (one >= 2) return 1;
52
53   puts ("t: if (!1)\n");
54   if (!1) return 1;
55
56   puts ("t: if (one == 0)\n");
57   if (one == 0) return 1;
58
59   puts ("t: if (f != 0)\n");
60   if (one != 1) return 1;
61
62   puts ("t: if (1)\n");
63   if (1) goto ok0;
64   return 1;
65  ok0:
66
67   puts ("t: if (0); return 1; else;\n");
68   if (0) return 1; else goto ok1;
69  ok1:
70
71   puts ("t: if (t)\n");
72   if (t) goto ok2;
73   return 1;
74  ok2:
75
76   puts ("t: if (one > 0)\n");
77   if (one > 0) goto ok3;
78   return 1;
79  ok3:
80
81   puts ("t: if (one < 2)\n");
82   if (one < 2) goto ok4;
83   return 1;
84  ok4:
85
86   puts ("t: if (one >= 0)\n");
87   if (one >= 0) goto ok5;
88   return 1;
89  ok5:
90
91   puts ("t: if (one >= 1)\n");
92   if (one >= 0) goto ok6;
93   return 1;
94  ok6:
95
96   puts ("t: if (one <= 2)\n");
97   if (one <= 2) goto ok7;
98   return 1;
99  ok7:
100
101   puts ("t: if (one <= 1)\n");
102   if (one <= 1) goto ok8;
103   return 1;
104  ok8:
105
106   puts ("t: if (!0)\n");
107   if (!0) goto ok9;
108   return 1;
109  ok9:
110
111   puts ("t: if (one == 1)\n");
112   if (one == 1) goto ok10;
113   return 1;
114  ok10:
115
116   puts ("t: if (one != 0)\n");
117   if (one != 0) goto ok11;
118   return 1;
119  ok11:
120
121   return 0;
122 }