aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2023-09-04 13:01:40 +0100
committerLouis Pilfold <louis@lpil.uk>2023-09-04 13:38:50 +0100
commit4aca74566e861cef0f902602501bf274ba5c43f8 (patch)
tree921a3b7ffcc5cfa33b4ee52bbe726d8a0ca598e3 /test
parent979f0d5d5bc9b149978ab88a6df64019b302d0e3 (diff)
downloadgleam_stdlib-4aca74566e861cef0f902602501bf274ba5c43f8.tar.gz
gleam_stdlib-4aca74566e861cef0f902602501bf274ba5c43f8.zip
Bitwise int functions
Diffstat (limited to 'test')
-rw-r--r--test/gleam/int_test.gleam66
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)
+}