]> git.proxmox.com Git - rustc.git/blame - src/vendor/conv/tests/lang_floats.rs
New upstream version 1.22.1+dfsg1
[rustc.git] / src / vendor / conv / tests / lang_floats.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::FloatError::NegOverflow as FU;\r
8use conv::FloatError::PosOverflow as FO;\r
9\r
10#[test]\r
11fn test_f32() {\r
12 check!(f32, f32=> fident; qv: *;);\r
13 check!(f32, f64=> fident; qv: *;);\r
14}\r
15\r
16#[test]\r
17fn test_f32_to_int() {\r
18 check!(f32, i8=> sidenta; qa: i8=> a: -129.0, !FU; a: 128.0, !FO;);\r
19 check!(f32, i16=> sidenta; qa: i16=> a: -32_769.0, !FU; a: 32_768.0, !FO;);\r
20 check!(f32, i32=> sidenta; qa: i32=>\r
21 a: -2.1474836e9, -2147483648; a: 2.1474835e9, 2147483520;\r
22 a: -2_147_500_000.0, !FU; a: 2_147_500_000.0, !FO;);\r
23 check!(f32, i64=> sidenta; qa: i64=>\r
24 a: -9.223372e18, -9223372036854775808; a: 9.2233715e18, 9223371487098961920;\r
25 a: -9_223_373_000_000_000_000.0, !FU; a: 9_223_373_000_000_000_000.0, !FO;);\r
26 check!(f32, u8=> uidenta; qa: u8=> a: -1.0, !FU; a: 256.0, !FO;);\r
27 check!(f32, u16=> uidenta; qa: u16=> a: -1.0, !FU; a: 65_536.0, !FO;);\r
28 check!(f32, u32=> uidenta; qa: u32=>\r
29 a: 4.294967e9, 4294967040;\r
30 a: -1.0, !FU; a: 4_294_968_000.0, !FO;);\r
31 check!(f32, u64=> uidenta; qa: u64=>\r
32 a: 1.8446743e19, 18446742974197923840;\r
33 a: -1.0, !FU; a: 18_446_746_000_000_000_000.0, !FO;);\r
34}\r
35\r
36#[test]\r
37fn test_f64_to_int() {\r
38 check!(f64, i8=> sidenta; qa: i8=> a: -129.0, !FU; a: 128.0, !FO;);\r
39 check!(f64, i16=> sidenta; qa: i16=> a: -32_769.0, !FU; a: 32_768.0, !FO;);\r
40 check!(f64, i32=> sidenta; qa: i32=> a: -2_147_483_649.0, !FU; a: 2_147_483_648.0, !FO;);\r
41 check!(f64, i64=> sidenta; qa: i64=>\r
42 a: -9.223372036854776e18, -9223372036854775808;\r
43 a: 9.223372036854775e18, 9223372036854774784;\r
44 a: -9_223_372_036_854_778_000.0, !FU; a: 9_223_372_036_854_778_000.0, !FO;);\r
45 check!(f64, u8=> uidenta; qa: u8=> a: -1.0, !FU; a: 256.0, !FO;);\r
46 check!(f64, u16=> uidenta; qa: u16=> a: -1.0, !FU; a: 65_536.0, !FO;);\r
47 check!(f64, u32=> uidenta; qa: u32=> a: -1.0, !FU; a: 4_294_967_296.0, !FO;);\r
48 check!(f64, u64=> uidenta; qa: u64=>\r
49 a: 1.844674407370955e19;\r
50 a: -1.0, !FU; a: 18_446_744_073_709_560_000.0, !FO;);\r
51}\r
52\r
53#[test]\r
54fn test_f64() {\r
55 check!(f64, f32=> fidenta; qa: *;);\r
56 check!(f64, f64=> fident; qv: *;);\r
57}\r