2003-05-08 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / tests / checked.cs
1 using System;\r
2 \r
3 namespace test {\r
4         public class tester {\r
5                 public tester() {}\r
6 \r
7                 public static int Main () {\r
8                         float a  = 1e20f;\r
9                         int i = 0;\r
10                         uint ui = 0;\r
11 \r
12                         bool exception = false;\r
13 \r
14                         try {\r
15                                 int b = (int) a;\r
16                                 checked {\r
17                                         i = (int)a;\r
18                                 }\r
19                         }\r
20                         catch (OverflowException) {\r
21                                 exception = true;\r
22                         }\r
23                         catch (Exception) {\r
24                         }                       \r
25 \r
26 \r
27                         if (!exception)\r
28                                 return -1;\r
29 \r
30                         exception = false;\r
31 \r
32                         a  = 1e5f;\r
33                         \r
34                         try {\r
35                                 int b = (int) a;\r
36                                 checked {\r
37                                         i = (int)a;\r
38                                 }\r
39                         } catch (Exception) {\r
40                                 return -2;\r
41                         }\r
42 \r
43 \r
44                         if (i != 100000)\r
45                                 return -3;\r
46                 \r
47                         exception = false;\r
48 \r
49                         a  = -1e30f;\r
50                         try {\r
51                                 int b = (int) a;\r
52                                 checked {\r
53                                         i = (int)a;\r
54                                 }\r
55                         } \r
56                         catch (OverflowException) {\r
57                                 exception = true;\r
58                         }\r
59                         catch (Exception) {\r
60                         }                       \r
61                         exception = false;\r
62 \r
63 \r
64                         a  = -1e30f;\r
65                         try {\r
66                                 uint b = (uint) a;\r
67                                 checked {\r
68                                         ui = (uint)a;\r
69                                 }\r
70 \r
71                                 Console.WriteLine("No Exception");\r
72                         } \r
73                         catch (OverflowException) {\r
74                                 exception = true;\r
75                         }\r
76                         catch (Exception) {\r
77                         }\r
78 \r
79 \r
80                         if (!exception)\r
81                                 return -4;\r
82 \r
83                         a  = 1e5f;\r
84                         try {\r
85                                 uint b = (uint) a;\r
86                                 checked {\r
87                                         ui = (uint)a;\r
88                                 }\r
89                         } \r
90                         catch (Exception) {\r
91                                 return -5;\r
92                         }\r
93 \r
94                         if (ui != 100000)\r
95                                 return -6;\r
96                         \r
97                         \r
98                         Console.WriteLine("test-ok");\r
99 \r
100                         return 0;\r
101                 }\r
102         }\r
103 }\r