OSDN Git Service

add FileAttributes tag
[happyabc/happyabc.git] / swflib / bitsOutTest.ml
1 open Base
2 open OUnit
3 open BitsOut
4
5 let ok x y =
6   assert_equal ~printer:Std.dump x @@ to_list y
7
8 let _ = begin "bitsOut.ml" >::: [
9   "empty" >:: begin fun () ->
10     ok [] @@ empty
11   end;
12   "put" >:: begin fun () ->
13     let t1 =
14       put empty ~width:1 ~bits:1 in
15     let t2 =
16       put t1 ~width:3 ~bits:1 in
17       ok [0b1001_0000] t2
18   end;
19   "put & put" >:: begin fun () ->
20     let t1 =
21       put empty ~width:5 ~bits:1 in
22     let t2 =
23       put t1 ~width:5 ~bits:1 in
24       ok [0b0000_1000] t1;
25       ok [0b0000_1000; 0b0100_0000] t2;
26   end;
27   "padding" >:: begin fun () ->
28     ok [0b1000_0000] @@ put empty ~width:1 ~bits:1
29   end;
30   "put 2 bytes" >:: begin fun () ->
31     ok [0xFF; 0b1000_0000] @@ put empty ~width:9 ~bits:0x1FF;
32   end;
33   "invalid arguments" >:: begin fun () ->
34     try
35       ignore @@ put empty ~width:2 ~bits:0b100;
36       assert_failure "not raise"
37     with Invalid_argument _ ->
38       ()
39   end;
40 ] end +> run_test_tt_main