This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
75
unikernel/duniverse/base/test/test_nativeint.ml
Normal file
75
unikernel/duniverse/base/test/test_nativeint.ml
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
open! Import
|
||||
open! Nativeint
|
||||
|
||||
let%expect_test "hash coherence" =
|
||||
check_int_hash_coherence [%here] (module Nativeint);
|
||||
[%expect {| |}]
|
||||
;;
|
||||
|
||||
type test_case = nativeint * int32 * int64
|
||||
|
||||
let test_cases : test_case list =
|
||||
[ 0x0000_0011n, 0x1100_0000l, 0x1100_0000_0000_0000L
|
||||
; 0x0000_1122n, 0x2211_0000l, 0x2211_0000_0000_0000L
|
||||
; 0x0011_2233n, 0x3322_1100l, 0x3322_1100_0000_0000L
|
||||
; 0x1122_3344n, 0x4433_2211l, 0x4433_2211_0000_0000L
|
||||
]
|
||||
;;
|
||||
|
||||
let%expect_test "bswap native" =
|
||||
List.iter test_cases ~f:(fun (arg, bswap_int32, bswap_int64) ->
|
||||
let result = bswap arg in
|
||||
match Sys.word_size_in_bits with
|
||||
| 32 -> assert (Int32.equal bswap_int32 (Nativeint.to_int32_trunc result))
|
||||
| 64 -> assert (Int64.equal bswap_int64 (Nativeint.to_int64 result))
|
||||
| _ -> assert false)
|
||||
;;
|
||||
|
||||
let%expect_test "binary" =
|
||||
quickcheck_m
|
||||
[%here]
|
||||
(module struct
|
||||
type t = nativeint [@@deriving quickcheck, sexp_of]
|
||||
end)
|
||||
~f:(fun (t : t) -> ignore (Binary.to_string t : string));
|
||||
[%expect {| |}]
|
||||
;;
|
||||
|
||||
let test_binary i =
|
||||
Binary.to_string_hum i |> print_endline;
|
||||
Binary.to_string i |> print_endline;
|
||||
print_s [%sexp (i : Binary.t)]
|
||||
;;
|
||||
|
||||
let%expect_test "binary" =
|
||||
test_binary 0b01n;
|
||||
[%expect {|
|
||||
0b1
|
||||
0b1
|
||||
0b1
|
||||
|}];
|
||||
test_binary 0b100n;
|
||||
[%expect {|
|
||||
0b100
|
||||
0b100
|
||||
0b100
|
||||
|}];
|
||||
test_binary 0b101n;
|
||||
[%expect {|
|
||||
0b101
|
||||
0b101
|
||||
0b101
|
||||
|}];
|
||||
test_binary 0b101010_10101010n;
|
||||
[%expect {|
|
||||
0b10_1010_1010_1010
|
||||
0b10101010101010
|
||||
0b10_1010_1010_1010
|
||||
|}];
|
||||
test_binary 0b111111_00000000n;
|
||||
[%expect {|
|
||||
0b11_1111_0000_0000
|
||||
0b11111100000000
|
||||
0b11_1111_0000_0000
|
||||
|}]
|
||||
;;
|
||||
Loading…
Add table
Add a link
Reference in a new issue