File: test2.sml

package info (click to toggle)
mlton 20210117%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 58,464 kB
  • sloc: ansic: 27,682; sh: 4,455; asm: 3,569; lisp: 2,879; makefile: 2,347; perl: 1,169; python: 191; pascal: 68; javascript: 7
file content (41 lines) | stat: -rw-r--r-- 945 bytes parent folder | download | duplicates (5)
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
30
31
32
33
34
35
36
37
38
39
40
41
CM.make "../cm/Graphs.cm";
(* See page 249 of Aho Hopcroft Ullman *)
structure TestMatching =
struct
val G as Graph.GRAPH g = DirectedGraph.graph("foo",(),10) :
    (string,int,unit) Graph.graph 
val _ = app (#add_node g)
          [(1,"1"),
           (2,"2"),
           (3,"3"),
           (4,"4"),
           (5,"5"),
           (6,"6"),
           (7,"7"),
           (8,"8"),
           (9,"9"),
           (10,"10")
          ]
val _ = app (#add_edge g)
          (rev[(1,6,1),
           (1,7,1),
           (1,8,1),
           (2,6,1),
           (2,9,1),
           (2,10,1),
           (3,6,1),
           (3,7,1),
           (4,8,1),
           (4,9,1),
           (4,10,1),
           (5,6,1)
          ])
fun matching((i,j,c),_) = 
    print(Int.toString i ^ " -> " ^ Int.toString j ^ "\n")

fun test() = 
    let val (_,card) = BipartiteMatching.matching G matching ()
    in  if card <> 5 then raise Match else card
    end

end