mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
53 lines
1.6 KiB
OCaml
53 lines
1.6 KiB
OCaml
|
|
open OUnit
|
|
|
|
module Deque = CCDeque
|
|
module Sequence = CCSequence
|
|
|
|
let plist l = CCPrint.to_string (CCList.pp CCInt.pp) l
|
|
let pint i = string_of_int i
|
|
|
|
let test_length () =
|
|
let d = Deque.of_seq Sequence.(1 -- 10) in
|
|
OUnit.assert_equal ~printer:pint 10 (Deque.length d)
|
|
|
|
let test_front () =
|
|
let d = Deque.of_seq Sequence.(1 -- 10) in
|
|
let printer = pint in
|
|
OUnit.assert_equal ~printer 1 (Deque.peek_front d);
|
|
Deque.push_front d 42;
|
|
OUnit.assert_equal ~printer 42 (Deque.peek_front d);
|
|
OUnit.assert_equal ~printer 42 (Deque.take_front d);
|
|
OUnit.assert_equal ~printer 1 (Deque.take_front d);
|
|
OUnit.assert_equal ~printer 2 (Deque.take_front d);
|
|
OUnit.assert_equal ~printer 3 (Deque.take_front d);
|
|
OUnit.assert_equal ~printer 10 (Deque.peek_back d);
|
|
()
|
|
|
|
let test_back () =
|
|
let d = Deque.of_seq Sequence.(1 -- 10) in
|
|
let printer = pint in
|
|
OUnit.assert_equal ~printer 1 (Deque.peek_front d);
|
|
Deque.push_back d 42;
|
|
OUnit.assert_equal ~printer 42 (Deque.peek_back d);
|
|
OUnit.assert_equal ~printer 42 (Deque.take_back d);
|
|
OUnit.assert_equal ~printer 10 (Deque.take_back d);
|
|
OUnit.assert_equal ~printer 9 (Deque.take_back d);
|
|
OUnit.assert_equal ~printer 8 (Deque.take_back d);
|
|
OUnit.assert_equal ~printer 1 (Deque.peek_front d);
|
|
()
|
|
|
|
let test_iter () =
|
|
let d = Deque.of_seq Sequence.(1 -- 5) in
|
|
let s = Sequence.from_iter (fun k -> Deque.iter k d) in
|
|
let l = Sequence.to_list s in
|
|
OUnit.assert_equal ~printer:plist [1;2;3;4;5] l;
|
|
()
|
|
|
|
let suite =
|
|
"test_deque" >:::
|
|
[ "test_length" >:: test_length;
|
|
"test_front" >:: test_front;
|
|
"test_back" >:: test_back;
|
|
"test_iter" >:: test_iter;
|
|
]
|