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