mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
35 lines
719 B
OCaml
35 lines
719 B
OCaml
|
|
open OUnit
|
|
|
|
open Containers_misc
|
|
open PiCalculus
|
|
module Pi = PiCalculus
|
|
|
|
let test_message () =
|
|
let r = ref 0 in
|
|
let p1 = new_
|
|
(fun c ->
|
|
send_one c 1 stop |||
|
|
receive_one c (fun x -> r := x; stop))
|
|
in
|
|
Pi.run p1;
|
|
OUnit.assert_equal ~printer:string_of_int 1 !r;
|
|
()
|
|
|
|
let test_replicate () =
|
|
let a = ref 0 in
|
|
let b = ref 0 in
|
|
let p1 = new_
|
|
(fun c ->
|
|
replicate (escape (fun () -> incr a; send_one c !a stop)) |||
|
|
receive_one c (fun _ -> receive_one c (fun x -> b := x; stop)))
|
|
in
|
|
run p1;
|
|
OUnit.assert_equal ~printer:string_of_int 2 !b;
|
|
()
|
|
|
|
let suite =
|
|
"test_PiCalculus" >:::
|
|
[ "test_message" >:: test_message;
|
|
"test_replicate" >:: test_replicate;
|
|
]
|