diff options
author | Louis Pilfold <louis@lpil.uk> | 2023-09-04 13:01:40 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2023-09-04 13:38:50 +0100 |
commit | 4aca74566e861cef0f902602501bf274ba5c43f8 (patch) | |
tree | 921a3b7ffcc5cfa33b4ee52bbe726d8a0ca598e3 /test | |
parent | 979f0d5d5bc9b149978ab88a6df64019b302d0e3 (diff) | |
download | gleam_stdlib-4aca74566e861cef0f902602501bf274ba5c43f8.tar.gz gleam_stdlib-4aca74566e861cef0f902602501bf274ba5c43f8.zip |
Bitwise int functions
Diffstat (limited to 'test')
-rw-r--r-- | test/gleam/int_test.gleam | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/test/gleam/int_test.gleam b/test/gleam/int_test.gleam index fd1cb89..b9aac9d 100644 --- a/test/gleam/int_test.gleam +++ b/test/gleam/int_test.gleam @@ -556,3 +556,69 @@ pub fn subtract_test() { |> int.subtract(2, _) |> should.equal(-1) } + +pub fn and_test() { + int.bitwise_and(9, 3) + |> should.equal(1) + + // To check compatibility with JavaScript, try a 32 bit unsigned integer + // (signed integers are in the range -2147483648 to +2147483647, while + // 32 bit unsigned integers are in the range 0 to +4294967295). + int.bitwise_and(2_147_483_648, 2_147_483_648) + |> should.equal(2_147_483_648) +} + +pub fn not_test() { + int.bitwise_not(2) + |> should.equal(-3) + + // To check compatibility with JavaScript, try a 32 bit unsigned integer. + int.bitwise_not(2_147_483_648) + |> should.equal(-2_147_483_649) +} + +pub fn or_test() { + int.bitwise_or(9, 3) + |> should.equal(11) + + // To check compatibility with JavaScript, try a 32 bit unsigned integer. + int.bitwise_or(1, 2_147_483_648) + |> should.equal(2_147_483_649) +} + +pub fn exclusive_or_test() { + int.bitwise_exclusive_or(9, 3) + |> should.equal(10) + + // To check compatibility with JavaScript, try a 32 bit unsigned integer. + int.bitwise_exclusive_or(0, 2_147_483_648) + |> should.equal(2_147_483_648) +} + +pub fn shift_left_test() { + int.bitwise_shift_left(1, 2) + |> should.equal(4) + + int.bitwise_shift_left(1, -2) + |> should.equal(0) + + int.bitwise_shift_left(-1, 2) + |> should.equal(-4) + + int.bitwise_shift_left(-1, -2) + |> should.equal(-1) +} + +pub fn shift_right_test() { + int.bitwise_shift_right(1, 2) + |> should.equal(0) + + int.bitwise_shift_right(1, -2) + |> should.equal(4) + + int.bitwise_shift_right(-1, 2) + |> should.equal(-1) + + int.bitwise_shift_right(-1, -2) + |> should.equal(-4) +} |