File: test1.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 (40 lines) | stat: -rw-r--r-- 1,085 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
CM.make "../cm/Graphs.cm";
structure TestMaxFlow =
struct
val G as Graph.GRAPH g = DirectedGraph.graph("foo",(),10) :
    (string,int,unit) Graph.graph 
structure MaxFlow = MaxFlow(struct type elem = int open Int
                                   val zero = 0 
                                   val == : int * int -> bool = op =
                            end)
val _ = app (#add_node g)
          [(0,"s"),
           (1,"v1"),
           (2,"v2"),
           (3,"v3"),
           (4,"v4"),
           (5,"t")
          ]
val _ = app (#add_edge g)
          [(0,1,16),
           (0,2,13),
           (1,2,10),
           (2,1,4),
           (1,3,12),
           (2,4,14),
           (3,2,9),
           (4,3,7), 
           (3,5,20),
           (4,5,4)
          ] 
fun flows((i,j,c),f) = 
    print(Int.toString i ^ " -> " ^ Int.toString j ^ " flow="^Int.toString f^
          " cap="^Int.toString c^"\n")
fun cap(i,j,c) = c

fun test() = 
    let val flow = MaxFlow.max_flow{graph=G,s=0,t=5,capacity=cap,flows=flows}
    in  if flow <> 23 then raise Match else flow
    end

end