glib-2.0: Add (u)long.parse/try_parse()
[vala-gnome.git] / tests / basic-types / integers.vala
blob4b097ae2e8bae3f5ede094d59314c468e363515e
1 int static_negative_int = -1;
3 void test_int () {
4 // declaration and initialization
5 int i = 42;
6 assert (i == 42);
8 // assignment
9 i = 23;
10 assert (i == 23);
12 // access
13 int j = i;
14 assert (j == 23);
16 // +
17 i = 42 + 23;
18 assert (i == 65);
20 // -
21 i = 42 - 23;
22 assert (i == 19);
24 // *
25 i = 42 * 23;
26 assert (i == 966);
28 // /
29 i = 42 / 23;
30 assert (i == 1);
32 // %
33 i = 42 % 23;
34 assert (i == 19);
36 // <<
37 i = 42 << 3;
38 assert (i == 336);
40 // >>
41 i = 42 >> 3;
42 assert (i == 5);
44 // &
45 i = 42 & 23;
46 assert (i == 2);
48 // |
49 i = 42 | 23;
50 assert (i == 63);
52 // ^
53 i = 42 ^ 23;
54 assert (i == 61);
56 // equality and relational
57 i = 42;
58 assert (i == 42);
59 assert (i != 50);
60 assert (i < 50);
61 assert (!(i < 40));
62 assert (i <= 42);
63 assert (!(i <= 41));
64 assert (i >= 42);
65 assert (!(i >= 43));
66 assert (i > 40);
67 assert (!(i > 50));
69 // to_string
70 string s = i.to_string ();
71 assert (s == "42");
73 unowned string unparsed;
74 long l;
75 long.try_parse ("%lim".printf (long.MIN), out l, out unparsed);
76 assert (l == long.MIN);
77 assert (unparsed == "m");
78 assert (!long.try_parse ("%lum".printf (ulong.MAX), out l));
80 ulong ul;
81 ulong.try_parse ("%lum".printf (ulong.MAX), out ul, out unparsed);
82 assert (ul == ulong.MAX);
83 assert (unparsed == "m");
84 assert (!ulong.try_parse ("%lim".printf (long.MIN), out ul));
86 int64 i64;
87 int64.try_parse ("-4711inch", out i64, out unparsed);
88 assert (i64 == -4711);
89 assert (unparsed == "inch");
90 int64.try_parse ("-31415km", out i64);
91 assert (i64 == -31415);
93 uint64 ui64;
94 uint64.try_parse ("4711yards", out ui64, out unparsed);
95 assert (ui64 == 4711);
96 assert (unparsed == "yards");
97 uint64.try_parse ("31415yards", out ui64);
98 assert (ui64 == 31415);
100 // ensure that MIN and MAX are valid values
101 i = int.MIN;
102 assert (i == int.MIN);
103 assert (i < int.MAX);
104 i = int.MAX;
105 assert (i == int.MAX);
106 assert (i > int.MIN);
109 void main () {
110 test_int ();