]> Cypherpunks.ru repositories - gostls13.git/blob - test/intcvt.go
making some more non-gofmt'ed files save for new semicolon rule
[gostls13.git] / test / intcvt.go
1 // $G $D/$F.go && $L $F.$A && ./$A.out
2
3 // Copyright 2009 The Go Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style
5 // license that can be found in the LICENSE file.
6
7 package main
8
9 const (
10         ci8 = -1<<7;
11         ci16 = -1<<15 + 100;
12         ci32 = -1<<31 + 100000;
13         ci64 = -1<<63 + 10000000001;
14         
15         cu8 = 1<<8 - 1;
16         cu16 = 1<<16 - 1234;
17         cu32 = 1<<32 - 1234567;
18         cu64 = 1<<64 - 1234567890123;
19
20         cf32 = 1e8 + 0.5;
21         cf64 = -1e8 + 0.5;
22 )
23
24 var (
25         i8 int8 = ci8;
26         i16 int16 = ci16;
27         i32 int32 = ci32;
28         i64 int64 = ci64;
29
30         u8 uint8 = cu8;
31         u16 uint16 = cu16;
32         u32 uint32 = cu32;
33         u64 uint64 = cu64;
34         
35 //      f32 float32 = 1e8 + 0.5;
36 //      f64 float64 = -1e8 + 0.5;
37 )
38
39 func chki8(i, v int8) { if i != v { panicln(i, "!=", v) } }
40 func chki16(i, v int16) { if i != v { panicln(i, "!=", v) } }
41 func chki32(i, v int32) { if i != v { panicln(i, "!=", v) } }
42 func chki64(i, v int64) { if i != v { panicln(i, "!=", v) } }
43 func chku8(i, v uint8) { if i != v { panicln(i, "!=", v) } }
44 func chku16(i, v uint16) { if i != v { panicln(i, "!=", v) } }
45 func chku32(i, v uint32) { if i != v { panicln(i, "!=", v) } }
46 func chku64(i, v uint64) { if i != v { panicln(i, "!=", v) } }
47 //func chkf32(f, v float32) { if f != v { panicln(f, "!=", v) } }
48 //func chkf64(f, v float64) { if f != v { panicln(f, "!=", v) } }
49
50 func main() {
51         chki8(int8(i8), ci8 & 0xff - 1<<8);
52         chki8(int8(i16), ci16 & 0xff);
53         chki8(int8(i32), ci32 & 0xff - 1<<8);
54         chki8(int8(i64), ci64 & 0xff);
55         chki8(int8(u8), cu8 & 0xff - 1<<8);
56         chki8(int8(u16), cu16 & 0xff);
57         chki8(int8(u32), cu32 & 0xff);
58         chki8(int8(u64), cu64 & 0xff);
59 //      chki8(int8(f32), 0);
60 //      chki8(int8(f64), 0);
61
62         chki16(int16(i8), ci8 & 0xffff - 1<<16);
63         chki16(int16(i16), ci16 & 0xffff - 1<<16);
64         chki16(int16(i32), ci32 & 0xffff - 1<<16);
65         chki16(int16(i64), ci64 & 0xffff - 1<<16);
66         chki16(int16(u8), cu8 & 0xffff);
67         chki16(int16(u16), cu16 & 0xffff - 1<<16);
68         chki16(int16(u32), cu32 & 0xffff);
69         chki16(int16(u64), cu64 & 0xffff - 1<<16);
70 //      chki16(int16(f32), 0);
71 //      chki16(int16(f64), 0);
72
73         chki32(int32(i8), ci8 & 0xffffffff - 1<<32);
74         chki32(int32(i16), ci16 & 0xffffffff - 1<<32);
75         chki32(int32(i32), ci32 & 0xffffffff - 1<<32);
76         chki32(int32(i64), ci64 & 0xffffffff);
77         chki32(int32(u8), cu8 & 0xffffffff);
78         chki32(int32(u16), cu16 & 0xffffffff);
79         chki32(int32(u32), cu32 & 0xffffffff - 1<<32);
80         chki32(int32(u64), cu64 & 0xffffffff - 1<<32);
81 //      chki32(int32(f32), 0);
82 //      chki32(int32(f64), 0);
83
84         chki64(int64(i8), ci8 & 0xffffffffffffffff - 1<<64);
85         chki64(int64(i16), ci16 & 0xffffffffffffffff - 1<<64);
86         chki64(int64(i32), ci32 & 0xffffffffffffffff - 1<<64);
87         chki64(int64(i64), ci64 & 0xffffffffffffffff - 1<<64);
88         chki64(int64(u8), cu8 & 0xffffffffffffffff);
89         chki64(int64(u16), cu16 & 0xffffffffffffffff);
90         chki64(int64(u32), cu32 & 0xffffffffffffffff);
91         chki64(int64(u64), cu64 & 0xffffffffffffffff - 1<<64);
92 //      chki64(int64(f32), 0);
93 //      chki64(int64(f64), 0);
94
95
96         chku8(uint8(i8), ci8 & 0xff);
97         chku8(uint8(i16), ci16 & 0xff);
98         chku8(uint8(i32), ci32 & 0xff);
99         chku8(uint8(i64), ci64 & 0xff);
100         chku8(uint8(u8), cu8 & 0xff);
101         chku8(uint8(u16), cu16 & 0xff);
102         chku8(uint8(u32), cu32 & 0xff);
103         chku8(uint8(u64), cu64 & 0xff);
104 //      chku8(uint8(f32), 0);
105 //      chku8(uint8(f64), 0);
106
107         chku16(uint16(i8), ci8 & 0xffff);
108         chku16(uint16(i16), ci16 & 0xffff);
109         chku16(uint16(i32), ci32 & 0xffff);
110         chku16(uint16(i64), ci64 & 0xffff);
111         chku16(uint16(u8), cu8 & 0xffff);
112         chku16(uint16(u16), cu16 & 0xffff);
113         chku16(uint16(u32), cu32 & 0xffff);
114         chku16(uint16(u64), cu64 & 0xffff);
115 //      chku16(uint16(f32), 0);
116 //      chku16(uint16(f64), 0);
117
118         chku32(uint32(i8), ci8 & 0xffffffff);
119         chku32(uint32(i16), ci16 & 0xffffffff);
120         chku32(uint32(i32), ci32 & 0xffffffff);
121         chku32(uint32(i64), ci64 & 0xffffffff);
122         chku32(uint32(u8), cu8 & 0xffffffff);
123         chku32(uint32(u16), cu16 & 0xffffffff);
124         chku32(uint32(u32), cu32 & 0xffffffff);
125         chku32(uint32(u64), cu64 & 0xffffffff);
126 //      chku32(uint32(f32), 0);
127 //      chku32(uint32(f64), 0);
128
129         chku64(uint64(i8), ci8 & 0xffffffffffffffff);
130         chku64(uint64(i16), ci16 & 0xffffffffffffffff);
131         chku64(uint64(i32), ci32 & 0xffffffffffffffff);
132         chku64(uint64(i64), ci64 & 0xffffffffffffffff);
133         chku64(uint64(u8), cu8 & 0xffffffffffffffff);
134         chku64(uint64(u16), cu16 & 0xffffffffffffffff);
135         chku64(uint64(u32), cu32 & 0xffffffffffffffff);
136         chku64(uint64(u64), cu64 & 0xffffffffffffffff);
137 //      chku64(uint64(f32), 0);
138 //      chku64(uint64(f64), 0);
139 }