bee7f3b32d42c95deaf9434af48e67d9401b1c50
[ocaml-bitstring.git] / tests / test_18_extract_32_64_int.ml
1 (* Test fix for a regression when extracting 32 and 64 bit aligned
2  * integers (discovered / fixed / tested by Hans Ole Rafaelsen).
3  * $Id$
4  *)
5
6 open Printf
7
8 open Bitstring
9
10 let bitstring_of_int32 i =
11   BITSTRING { i : 32 }
12
13 let bitstring_of_int64 i =
14   BITSTRING { i : 64 }
15
16 let int32_of_bitstring bits =
17   bitmatch bits with
18   | { i : 32 } -> i
19
20 let int64_of_bitstring bits =
21   bitmatch bits with
22   | { i : 64 } -> i
23
24 let () =
25   let b1 = bitstring_of_int32 1_l in
26   let b2 = bitstring_of_int32 2_l in
27   let b3 = bitstring_of_int32 3_l in
28   let i1 = int32_of_bitstring b1 in
29   let i2 = int32_of_bitstring b2 in
30   let i3 = int32_of_bitstring b3 in
31   assert (i1 = 1_l);
32   assert (i2 = 2_l);
33   assert (i3 = 3_l);
34
35   let b1 = bitstring_of_int64 1_L in
36   let b2 = bitstring_of_int64 2_L in
37   let b3 = bitstring_of_int64 3_L in
38   let i1 = int64_of_bitstring b1 in
39   let i2 = int64_of_bitstring b2 in
40   let i3 = int64_of_bitstring b3 in
41   assert (i1 = 1_L);
42   assert (i2 = 2_L);
43   assert (i3 = 3_L)