Don't test bitwise operations on operands that don't fit in u32.

The current behavior is undefined in C when converting the double to a
u32, so the tests fail on some compilers. For now, I'm just removing
those parts of the tests because I'm not sure what I want the behavior
to be. Modulo? Truncate? Runtime error?
This commit is contained in:
Bob Nystrom
2017-01-12 21:32:50 -08:00
parent 252265c80b
commit e8dfb1bf10
8 changed files with 32 additions and 44 deletions
+4 -6
View File
@@ -2,14 +2,12 @@ System.print(0 << 0) // expect: 0
System.print(1 << 0) // expect: 1
System.print(0 << 1) // expect: 0
System.print(1 << 1) // expect: 2
System.print(2863311530 << 1) // expect: 1431655764
System.print(4042322160 << 1) // expect: 3789677024
System.print(0xaaaaaaaa << 1) // expect: 1431655764
System.print(0xf0f0f0f0 << 1) // expect: 3789677024
// Max u32 value.
System.print(4294967295 << 1) // expect: 4294967294
// Past max u32 value.
System.print(4294967296 << 1) // expect: 0
System.print(0xffffffff << 0) // expect: 4294967295
// TODO: Negative numbers.
// TODO: Floating-point numbers.
// TODO: Numbers that don't fit in u32.