]> git.proxmox.com Git - rustc.git/blame - src/vendor/conv/tests/lang_ints.rs
New upstream version 1.22.1+dfsg1
[rustc.git] / src / vendor / conv / tests / lang_ints.rs
CommitLineData
ea8adc8c
XL
1extern crate conv;\r
2\r
3#[macro_use] mod util;\r
4\r
5use conv::*;\r
6\r
7use conv::NegOverflow as Uf;\r
8use conv::PosOverflow as Of;\r
9use conv::RangeError::NegOverflow as RU;\r
10use conv::RangeError::PosOverflow as RO;\r
11\r
12#[test]\r
13fn test_i8() {\r
14 check!(i8, i8=> sident; qv: *; qa: *; qaW: *);\r
15 check!(i8, i16=> sident; qv: *; qa: *; qaW: *);\r
16 check!(i8, i32=> sident; qv: *; qa: *; qaW: *);\r
17 check!(i8, i64=> sident; qv: *; qa: *; qaW: *);\r
18 check!(i8, u8=> uident; qv: +; qa: +; qaW: *;\r
19 v: -1, !Uf;\r
20 );\r
21 check!(i8, u16=> uident; qv: +; qa: +; qaW: *;\r
22 v: -1, !Uf;\r
23 );\r
24 check!(i8, u32=> uident; qv: +; qa: +; qaW: *;\r
25 v: -1, !Uf;\r
26 );\r
27 check!(i8, u64=> uident; qv: +; qa: +; qaW: *;\r
28 v: -1, !Uf;\r
29 );\r
30 check!(i8, isize=> sident; qv: *; qa: *; qaW: *);\r
31 check!(i8, usize=> uident; qv: +; qa: +; qaW: *;\r
32 v: -1, !Uf;\r
33 );\r
34}\r
35\r
36#[test]\r
37fn test_i16() {\r
38 check!(i16, i8=> sident; qv: i8=> qa: i8=> qaW: *;\r
39 v: -129, !RU; v: 128, !RO;\r
40 );\r
41 check!(i16, i16=> sident; qv: *; qa: *; qaW: *);\r
42 check!(i16, i32=> sident; qv: *; qa: *; qaW: *);\r
43 check!(i16, i64=> sident; qv: *; qa: *; qaW: *);\r
44 check!(i16, u8=> uident; qv: u8=> qa: +; qaW: *;\r
45 v: -1, !RU;\r
46 );\r
47 check!(i16, u16=> uident; qv: u16, i16=> qa: +; qaW: *;\r
48 v: -1, !Uf;\r
49 );\r
50 check!(i16, u32=> uident; qv: +; qa: +; qaW: *;\r
51 v: -1, !Uf;\r
52 );\r
53 check!(i16, u64=> uident; qv: +; qa: +; qaW: *;\r
54 v: -1, !Uf;\r
55 );\r
56 check!(i16, isize=> sident; qv: *; qa: *; qaW: *);\r
57 check!(i16, usize=> uident; qv: +; qa: +; qaW: *;\r
58 v: -1, !Uf;\r
59 );\r
60}\r
61\r
62#[test]\r
63fn test_i32() {\r
64 check!(i32, i8=> sident; qv: i8=> qa: i8=> qaW: *;\r
65 v: -129, !RU; v: 128, !RO;\r
66 );\r
67 check!(i32, i16=> sident; qv: i16=> qa: i16=> qaW: *;\r
68 v: -32_769, !RU; v: 32_768, !RO;\r
69 );\r
70 check!(i32, i32=> sident; qv: *; qa: *; qaW: *);\r
71 check!(i32, i64=> sident; qv: *; qa: *; qaW: *);\r
72 check!(i32, u8=> uident; qv: u8=> qa: u8=> qaW: *;\r
73 v: -1, !RU;\r
74 );\r
75 check!(i32, u16=> uident; qv: u16=> qa: u16=> qaW: *;\r
76 v: -1, !RU;\r
77 );\r
78 check!(i32, u32=> uident; qv: +; qa: +; qaW: *;\r
79 v: -1, !Uf;\r
80 );\r
81 check!(i32, u64=> uident; qv: +; qa: +; qaW: *;\r
82 v: -1, !Uf;\r
83 );\r
84 for_bitness! {\r
85 32 {\r
86 check!(i32, isize=> sident; qv: *; qa: *; qaW: *);\r
87 check!(i32, usize=> uident; qv: +; qa: +; qaW: *;\r
88 v: -1, !Uf;\r
89 );\r
90 }\r
91 64 {\r
92 check!(i32, isize=> sident; qv: *; qa: *; qaW: *);\r
93 check!(i32, usize=> uident; qv: +; qa: +; qaW: *;\r
94 v: -1, !Uf;\r
95 );\r
96 }\r
97 }\r
98}\r
99\r
100#[test]\r
101fn test_i64() {\r
102 check!(i64, i8=> sident; qv: i8=> qa: i8=> qaW: *;\r
103 v: -129, !RU; v: 128, !RO;\r
104 );\r
105 check!(i64, i16=> sident; qv: i16=> qa: i16=> qaW: *;\r
106 v: -32_769, !RU; v: 32_768, !RO;\r
107 );\r
108 check!(i64, i32=> sident; qv: i32=> qa: i32=> qaW: *;\r
109 v: -2_147_483_649, !RU; v: 2_147_483_648, !RO;\r
110 );\r
111 check!(i64, i64=> sident; qv: *; qa: *; qaW: *;\r
112 );\r
113 check!(i64, u8=> uident; qv: u8=> qa: u8=> qaW: *;\r
114 v: -1, !RU;\r
115 );\r
116 check!(i64, u16=> uident; qv: u16=> qa: u16=> qaW: *;\r
117 v: -1, !RU;\r
118 );\r
119 check!(i64, u32=> uident; qv: u32=> qa: u32=> qaW: *;\r
120 v: -1, !RU;\r
121 );\r
122 check!(i64, u64=> uident; qv: +; qa: +; qaW: *;\r
123 v: -1, !Uf;\r
124 );\r
125 for_bitness! {\r
126 32 {\r
127 check!(i64, isize=> sident; qv: isize=> qa: isize=> qaW: *;\r
128 v: -2_147_483_649, !RU; v: 2_147_483_648, !RO;\r
129 );\r
130 check!(i64, usize=> uident; qv: usize=> qa: usize=> qaW: *;\r
131 v: -1, !RU; v: 4_294_967_296, !RO;\r
132 );\r
133 }\r
134 64 {\r
135 check!(i64, isize=> sident; qv: *; qa: *; qaW: *;\r
136 );\r
137 check!(i64, usize=> uident; qv: +; qa: +; qaW: *;\r
138 v: -1, !Uf;\r
139 );\r
140 }\r
141 }\r
142}\r
143\r
144#[test]\r
145fn test_u8() {\r
146 check!(u8, i8=> uident; qv: +i8=> qa: +i8=> qaW: *;\r
147 v: 127; v: 128, !Of;\r
148 );\r
149 check!(u8, i16=> uident; qv: *; qa: *; qaW: *);\r
150 check!(u8, i32=> uident; qv: *; qa: *; qaW: *);\r
151 check!(u8, i64=> uident; qv: *; qa: *; qaW: *);\r
152 check!(u8, u8=> uident; qv: *; qa: *; qaW: *);\r
153 check!(u8, u16=> uident; qv: *; qa: *; qaW: *);\r
154 check!(u8, u32=> uident; qv: *; qa: *; qaW: *);\r
155 check!(u8, u64=> uident; qv: *; qa: *; qaW: *);\r
156 check!(u8, isize=> uident; qv: *; qa: *; qaW: *);\r
157 check!(u8, usize=> uident; qv: *; qa: *; qaW: *);\r
158}\r
159\r
160#[test]\r
161fn test_u16() {\r
162 check!(u16, i8=> uident; qv: +i8=> qa: +i8=> qaW: *;\r
163 v: 128, !Of;\r
164 );\r
165 check!(u16, i16=> uident; qv: +i16=> qa: +i16=> qaW: *;\r
166 v: 32_768, !Of;\r
167 );\r
168 check!(u16, i32=> uident; qv: *; qa: *; qaW: *);\r
169 check!(u16, i64=> uident; qv: *; qa: *; qaW: *);\r
170 check!(u16, u8=> uident; qv: u8=> qa: u8=> qaW: *;\r
171 v: 256, !Of;\r
172 );\r
173 check!(u16, u16=> uident; qv: *; qa: *; qaW: *);\r
174 check!(u16, u32=> uident; qv: *; qa: *; qaW: *);\r
175 check!(u16, u64=> uident; qv: *; qa: *; qaW: *);\r
176 check!(u16, isize=> uident; qv: *; qa: *; qaW: *);\r
177 check!(u16, usize=> uident; qv: *; qa: *; qaW: *);\r
178}\r
179\r
180#[test]\r
181fn test_u32() {\r
182 check!(u32, i8=> uident; qv: +i8=> qa: +i8=> qaW: *;\r
183 v: 128, !Of;\r
184 );\r
185 check!(u32, i16=> uident; qv: +i16=> qa: +i16=> qaW: *;\r
186 v: 32_768, !Of;\r
187 );\r
188 check!(u32, i32=> uident; qv: +i32=> qa: +i32=> qaW: *;\r
189 v: 2_147_483_648, !Of;\r
190 );\r
191 check!(u32, i64=> uident; qv: *; qa: *; qaW: *);\r
192 check!(u32, u8=> uident; qv: u8=> qa: u8=> qaW: *;\r
193 v: 256, !Of;\r
194 );\r
195 check!(u32, u16=> uident; qv: u16=> qa: u16=> qaW: *;\r
196 v: 65_536, !Of;\r
197 );\r
198 check!(u32, u32=> uident; qv: *; qa: *; qaW: *);\r
199 check!(u32, u64=> uident; qv: *; qa: *; qaW: *);\r
200 for_bitness! {\r
201 32 {\r
202 check!(u32, isize=> uident; qv: +isize=> qa: +isize=> qaW: *;\r
203 v: 2_147_483_647; v: 2_147_483_648, !Of;\r
204 );\r
205 check!(u32, usize=> uident; qv: *; qa: *; qaW: *);\r
206 }\r
207 64 {\r
208 check!(u32, isize=> uident; qv: *; qa: *; qaW: *);\r
209 check!(u32, usize=> uident; qv: *; qa: *; qaW: *);\r
210 }\r
211 }\r
212}\r
213\r
214#[test]\r
215fn test_u64() {\r
216 check!(u64, i8=> uident; qv: +i8=> qa: +i8=> qaW: *;\r
217 v: 128, !Of;\r
218 );\r
219 check!(u64, i16=> uident; qv: +i16=> qa: +i16=> qaW: *;\r
220 v: 32_768, !Of;\r
221 );\r
222 check!(u64, i32=> uident; qv: +i32=> qa: +i32=> qaW: *;\r
223 v: 2_147_483_648, !Of;\r
224 );\r
225 check!(u64, i64=> uident; qv: +i64=> qa: +i64=> qaW: *;\r
226 v: 9_223_372_036_854_775_808, !Of;\r
227 );\r
228 check!(u64, u8=> uident; qv: u8=> qa: u8=> qaW: *;\r
229 v: 256, !Of;\r
230 );\r
231 check!(u64, u16=> uident; qv: u16=> qa: u16=> qaW: *;\r
232 v: 65_536, !Of;\r
233 );\r
234 check!(u64, u32=> uident; qv: u32=> qa: u32=> qaW: *;\r
235 v: 4_294_967_296, !Of;\r
236 );\r
237 check!(u64, u64=> uident; qv: *; qa: *; qaW: *);\r
238 for_bitness! {\r
239 32 {\r
240 check!(u64, isize=> uident; qv: +isize=> qa: +isize=> qaW: *;\r
241 v: 2_147_483_648, !Of;\r
242 );\r
243 check!(u64, usize=> uident; qv: usize=> qa: usize=> qaW: *;\r
244 v: 4_294_967_296, !Of;\r
245 );\r
246 }\r
247 64 {\r
248 check!(u64, isize=> uident; qv: +i64=> qa: +i64=> qaW: *;\r
249 v: 9_223_372_036_854_775_808, !Of;\r
250 );\r
251 check!(u64, usize=> uident; qv: *; qa: *; qaW: *);\r
252 }\r
253 }\r
254}\r
255\r
256#[test]\r
257fn test_isize() {\r
258 check!(isize, i8=> sident; qv: i8=> qa: i8=> qaW: *;\r
259 v: -129, !RU; v: 128, !RO;\r
260 );\r
261 check!(isize, i16=> sident; qv: i16=> qa: i16=> qaW: *;\r
262 v: -32_769, !RU; v: 32_768, !RO;\r
263 );\r
264 check!(isize, u8=> uident; qv: u8=> qa: u8=> qaW: *;\r
265 v: -1, !RU; v: 256, !RO;\r
266 );\r
267 check!(isize, u16=> uident; qv: u16=> qa: u16=> qaW: *;\r
268 v: -1, !RU; v: 65_536, !RO;\r
269 );\r
270 check!(isize, isize=> sident; qv: *; qa: *; qaW: *);\r
271 for_bitness! {\r
272 32 {\r
273 check!(isize, i32=> sident; qv: *; qa: *; qaW: *);\r
274 check!(isize, i64=> sident; qv: *; qa: *; qaW: *);\r
275 check!(isize, u32=> uident; qv: +; qa: +; qaW: *;\r
276 v: -1, !Uf;\r
277 );\r
278 check!(isize, u64=> uident; qv: +; qa: +; qaW: *;\r
279 v: -1, !Uf;\r
280 );\r
281 check!(isize, usize=> uident; qv: +; qa: +; qaW: *;\r
282 v: -1, !Uf;\r
283 );\r
284 }\r
285 64 {\r
286 check!(isize, i32=> sident; qv: *; qa: *; qaW: *);\r
287 check!(isize, i64=> sident; qv: *; qa: *; qaW: *);\r
288 check!(isize, u32=> uident; qv: u32=> qa: u32=> qaW: *;\r
289 v: -1, !RU; v: 4_294_967_296, !RO;\r
290 );\r
291 check!(isize, u64=> uident; qv: +; qa: +; qaW: *;\r
292 v: -1, !Uf;\r
293 );\r
294 check!(isize, usize=> uident; qv: +; qa: +; qaW: *;\r
295 v: -1, !Uf;\r
296 );\r
297 }\r
298 }\r
299}\r
300\r
301#[test]\r
302fn test_usize() {\r
303 check!(usize, i8=> uident; qv: +i8=> qa: +i8=> qaW: *;\r
304 v: 128, !Of;\r
305 );\r
306 check!(usize, i16=> uident; qv: +i16=> qa: +i16=> qaW: *;\r
307 v: 32_768, !Of;\r
308 );\r
309 check!(usize, u8=> uident; qv: u8=> qa: u8=> qaW: *;\r
310 v: 256, !Of;\r
311 );\r
312 check!(usize, u16=> uident; qv: u16=> qa: u16=> qaW: *;\r
313 v: 65_536, !Of;\r
314 );\r
315 check!(usize, usize=> uident; qv: *; qa: *; qaW: *);\r
316 for_bitness! {\r
317 32 {\r
318 check!(usize, i32=> uident; qv: +i32=> qa: +i32=> qaW: *);\r
319 check!(usize, i64=> uident; qv: *; qa: *; qaW: *);\r
320 check!(usize, u32=> uident; qv: *; qa: *; qaW: *);\r
321 check!(usize, u64=> uident; qv: *; qa: *; qaW: *);\r
322 check!(usize, isize=> uident; qv: +isize=> qa: +isize=> qaW: *);\r
323 }\r
324 64 {\r
325 check!(usize, i32=> uident; qv: +i32=> qa: +i32=> qaW: *);\r
326 check!(usize, i64=> uident; qv: +i64=> qa: +i64=> qaW: *);\r
327 check!(usize, u32=> uident; qv: u32=> qa: u32=> qaW: *;\r
328 v: 4_294_967_296, !Of;\r
329 );\r
330 check!(usize, u64=> uident; qv: *; qa: *; qaW: *);\r
331 check!(usize, isize=> uident; qv: +isize=> qa: +isize=> qaW: *);\r
332 }\r
333 }\r
334}\r
335\r
336#[test]\r
337fn test_i_to_f() {\r
338 check!(i8, f32=> sident; qv: *; qa: *);\r
339 check!(i16, f32=> sident; qv: *; qa: *);\r
340 check!(i32, f32=> sident; qv: (+-16_777_216); qa: *;\r
341 v: -16_777_217, !RU; v: 16_777_217, !RO;\r
342 );\r
343 check!(i64, f32=> sident; qv: (+-16_777_216); qa: *;\r
344 v: -16_777_217, !RU; v: 16_777_217, !RO;\r
345 );\r
346 check!(isize, f32=> sident; qv: (+-16_777_216); qa: *;\r
347 v: -16_777_217, !RU; v: 16_777_217, !RO;\r
348 );\r
349\r
350 check!(u8, f32=> uident; qv: *; qa: *);\r
351 check!(u16, f32=> uident; qv: *; qa: *);\r
352 check!(u32, f32=> uident; qv: (, 16_777_216); qa: *;\r
353 v: 16_777_217, !Of;\r
354 );\r
355 check!(u64, f32=> uident; qv: (, 16_777_216); qa: *;\r
356 v: 16_777_217, !Of;\r
357 );\r
358 check!(usize, f32=> uident; qv: (, 16_777_216); qa: *;\r
359 v: 16_777_217, !Of;\r
360 );\r
361\r
362 check!(i8, f64=> sident; qv: *; qa: *);\r
363 check!(i16, f64=> sident; qv: *; qa: *);\r
364 check!(i32, f64=> sident; qv: *; qa: *);\r
365 check!(i64, f64=> sident; qv: (+-9_007_199_254_740_992); qa: *;\r
366 v: -9_007_199_254_740_993, !RU; v: 9_007_199_254_740_993, !RO;\r
367 );\r
368 for_bitness! {\r
369 32 {\r
370 check!(isize, f64=> sident; qv: *; qa: *);\r
371 }\r
372 64 {\r
373 check!(i64, f64=> sident; qv: (+-9_007_199_254_740_992); qa: *;\r
374 v: -9_007_199_254_740_993, !RU; v: 9_007_199_254_740_993, !RO;\r
375 );\r
376 }\r
377 }\r
378\r
379 check!(u8, f64=> uident; qv: *; qa: *);\r
380 check!(u16, f64=> uident; qv: *; qa: *);\r
381 check!(u32, f64=> uident; qv: *; qa: *);\r
382 check!(u64, f64=> uident; qv: (, 9_007_199_254_740_992); qa: *;\r
383 v: 9_007_199_254_740_993, !Of;\r
384 );\r
385 for_bitness! {\r
386 32 {\r
387 check!(usize, f64=> uident; qv: *; qa: *);\r
388 }\r
389 64 {\r
390 check!(u64, f64=> uident; qv: (, 9_007_199_254_740_992); qa: *;\r
391 v: 9_007_199_254_740_993, !Of;\r
392 );\r
393 }\r
394 }\r
395}\r