| 1 | import math |
| 2 | import flag |
| 3 | |
| 4 | struct S1 { |
| 5 | p voidptr |
| 6 | } |
| 7 | |
| 8 | struct S2 { |
| 9 | i int |
| 10 | } |
| 11 | |
| 12 | fn test_math_sizeof() { |
| 13 | r := math.f32_from_bits(sizeof(i32)) |
| 14 | assert f64(r) > 5.6e-45 && f64(r) < 5.7e-45 |
| 15 | } |
| 16 | |
| 17 | fn test_sizeof() { |
| 18 | assert sizeof(rune) == 4 |
| 19 | assert sizeof[[44]u8]() == 44 |
| 20 | assert sizeof(`€`) == 4 |
| 21 | // depends on -m32/64 |
| 22 | assert sizeof(S1) in [u32(4), 8] |
| 23 | s := S2{} |
| 24 | assert sizeof(s.i) == $if new_int ? && x64 { |
| 25 | 8 |
| 26 | } $else { |
| 27 | 4 |
| 28 | } |
| 29 | assert sizeof(flag.Flag) > 4 |
| 30 | |
| 31 | assert sizeof(c'hello') == 6 |
| 32 | assert sizeof(r'hello') == $if x64 { |
| 33 | $if new_int ? { |
| 34 | 24 |
| 35 | } $else { |
| 36 | 16 |
| 37 | } |
| 38 | } $else { |
| 39 | 12 |
| 40 | } |
| 41 | assert sizeof('hello') == $if x64 { |
| 42 | $if new_int ? { |
| 43 | 24 |
| 44 | } $else { |
| 45 | 16 |
| 46 | } |
| 47 | } $else { |
| 48 | 12 |
| 49 | } |
| 50 | } |
| 51 | |