File: test_bfs01.ml

package info (click to toggle)
ocamlgraph 2.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,624 kB
  • sloc: ml: 19,995; xml: 151; makefile: 14; sh: 1
file content (29 lines) | stat: -rw-r--r-- 659 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

(* Test file for Path.Bfs01 *)

open Graph
open Pack.Digraph

let zero e =
  E.label e = 0

let test n =
  let g = create () in
  let nv = 2*n+2 in
  let v = Array.init nv V.create in
  Array.iter (add_vertex g) v;
  let edge i d j = add_edge_e g (E.create v.(i) d v.(j)) in
  for i = 1 to n do let i = 2*i in edge (i-2) 0 i done; edge (2*n) 1 (2*n+1);
  edge 0 1 1; for i = 0 to n-1 do let i = 2*i+1 in edge i 1 (i+2) done;
  let check v d =
    let i = V.label v in
    assert (d = if i mod 2 = 0 then 0
                else if i = 2*n+1 then 1
                else (i+1) / 2) in
  bfs_0_1 check g ~zero v.(0)

let () =
  for n = 0 to 10 do test n done