2024-05-13 13:37:53 +00:00
|
|
|
use crate::repl::tests::{run_test, TestResult};
|
2022-07-30 12:34:11 +00:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_and() -> TestResult {
|
|
|
|
run_test("2 | bits and 4", "0")
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_and_negative() -> TestResult {
|
|
|
|
run_test("-3 | bits and 5", "5")
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_and_list() -> TestResult {
|
2022-09-11 08:48:27 +00:00
|
|
|
run_test("[1 2 3 8 9 10] | bits and 2 | str join '.'", "0.2.2.0.0.2")
|
2022-07-30 18:26:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_or() -> TestResult {
|
|
|
|
run_test("2 | bits or 3", "3")
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_or_negative() -> TestResult {
|
|
|
|
run_test("-3 | bits or 5", "-3")
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_or_list() -> TestResult {
|
2022-12-23 19:19:10 +00:00
|
|
|
run_test(
|
|
|
|
"[1 2 3 8 9 10] | bits or 2 | str join '.'",
|
|
|
|
"3.2.3.10.11.10",
|
|
|
|
)
|
2022-07-30 18:26:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_xor() -> TestResult {
|
|
|
|
run_test("2 | bits xor 3", "1")
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_xor_negative() -> TestResult {
|
|
|
|
run_test("-3 | bits xor 5", "-8")
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_xor_list() -> TestResult {
|
2022-12-23 19:19:10 +00:00
|
|
|
run_test(
|
2023-07-14 03:20:35 +00:00
|
|
|
"[1 2 3 8 9 10] | bits xor 2 | into string | str join '.'",
|
2022-12-23 19:19:10 +00:00
|
|
|
"3.0.1.10.11.8",
|
|
|
|
)
|
2022-07-30 12:34:11 +00:00
|
|
|
}
|
2022-08-02 20:52:04 +00:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_shift_left() -> TestResult {
|
|
|
|
run_test("2 | bits shl 3", "16")
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_shift_left_negative() -> TestResult {
|
|
|
|
run_test("-3 | bits shl 5", "-96")
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_shift_left_list() -> TestResult {
|
2022-12-23 19:19:10 +00:00
|
|
|
run_test(
|
|
|
|
"[1 2 7 32 9 10] | bits shl 3 | str join '.'",
|
2024-02-28 12:43:50 +00:00
|
|
|
"8.16.56.0.72.80",
|
2022-12-23 19:19:10 +00:00
|
|
|
)
|
2022-08-02 20:52:04 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_shift_right() -> TestResult {
|
|
|
|
run_test("8 | bits shr 2", "2")
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_shift_right_negative() -> TestResult {
|
|
|
|
run_test("-32 | bits shr 2", "-8")
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_shift_right_list() -> TestResult {
|
2022-12-23 19:19:10 +00:00
|
|
|
run_test(
|
|
|
|
"[12 98 7 64 900 10] | bits shr 3 | str join '.'",
|
|
|
|
"1.12.0.8.112.1",
|
|
|
|
)
|
2022-08-02 20:52:04 +00:00
|
|
|
}
|
2022-08-05 13:40:01 +00:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_rotate_left() -> TestResult {
|
|
|
|
run_test("2 | bits rol 3", "16")
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_rotate_left_negative() -> TestResult {
|
|
|
|
run_test("-3 | bits rol 5", "-65")
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_rotate_left_list() -> TestResult {
|
2022-12-23 19:19:10 +00:00
|
|
|
run_test(
|
|
|
|
"[1 2 7 32 9 10] | bits rol 3 | str join '.'",
|
2024-02-28 12:43:50 +00:00
|
|
|
"8.16.56.1.72.80",
|
2022-12-23 19:19:10 +00:00
|
|
|
)
|
2022-08-05 13:40:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_rotate_right() -> TestResult {
|
|
|
|
run_test("2 | bits ror 62", "8")
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_rotate_right_negative() -> TestResult {
|
|
|
|
run_test("-3 | bits ror 60", "-33")
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bits_rotate_right_list() -> TestResult {
|
2022-12-23 19:19:10 +00:00
|
|
|
run_test(
|
|
|
|
"[1 2 7 32 23 10] | bits ror 60 | str join '.'",
|
2024-02-28 12:43:50 +00:00
|
|
|
"16.32.112.2.113.160",
|
2022-12-23 19:19:10 +00:00
|
|
|
)
|
2022-08-05 13:40:01 +00:00
|
|
|
}
|