|
9 | 9 | ############################################################################# |
10 | 10 | ## |
11 | 11 |
|
12 | | -#@local D, d, distances, edges, gr, m, parents, r, tree |
| 12 | +#@local D, d, distances, edges, gr, m, parents, path, r, tree |
13 | 13 | gap> START_TEST("Digraphs package: standard/weights.tst"); |
14 | 14 | gap> LoadPackage("digraphs", false);; |
15 | 15 |
|
@@ -503,6 +503,74 @@ true |
503 | 503 | gap> SortedList(Flat(EdgeWeights(D))) = [1 .. DigraphNrEdges(D)]; |
504 | 504 | true |
505 | 505 |
|
| 506 | +############################################################################# |
| 507 | +# 7. Drawing edge-weighted digraphs |
| 508 | +############################################################################# |
| 509 | +
|
| 510 | +# Trivial example |
| 511 | +gap> gr := EdgeWeightedDigraph([[2], []], [[10], []]);; |
| 512 | +gap> Print(DotEdgeWeightedDigraph(gr)); |
| 513 | +//dot |
| 514 | +digraph hgn{ |
| 515 | +node [shape=circle] |
| 516 | +1[color=gray, style=filled] |
| 517 | +2[color=gray, style=filled] |
| 518 | +1 -> 2[color=black, label=10] |
| 519 | +} |
| 520 | +
|
| 521 | +# Cycle example |
| 522 | +gap> gr := EdgeWeightedDigraph(CycleDigraph(5), [[10], [4], [8], [2], [8]]);; |
| 523 | +gap> path := DigraphPath(gr, 3, 1); |
| 524 | +[ [ 3, 4, 5, 1 ], [ 1, 1, 1 ] ] |
| 525 | +gap> Print(DotEdgeWeightedDigraph(gr, path, rec(highlight := "red"))); |
| 526 | +//dot |
| 527 | +digraph hgn{ |
| 528 | +node [shape=circle] |
| 529 | +1[color=lightpink, style=filled] |
| 530 | +2[color=gray, style=filled] |
| 531 | +3[color=yellowgreen, style=filled] |
| 532 | +4[color=gray, style=filled] |
| 533 | +5[color=gray, style=filled] |
| 534 | +1 -> 2[color=black, label=10] |
| 535 | +2 -> 3[color=black, label=4] |
| 536 | +3 -> 4[color=red, label=8] |
| 537 | +4 -> 5[color=red, label=2] |
| 538 | +5 -> 1[color=red, label=8] |
| 539 | +} |
| 540 | +
|
| 541 | +# Large example |
| 542 | +gap> gr := EdgeWeightedDigraph( |
| 543 | +> [[5, 7], [5], [1, 3, 6], [1, 3], [4, 5], [1, 2], [6]], |
| 544 | +> [[8, 4], [12], [11, 2, 10], [3, 7], [9, 13], [1, 6], [5]]); |
| 545 | +<immutable edge-weighted digraph with 7 vertices, 13 edges> |
| 546 | +gap> path := EdgeWeightedDigraphShortestPath(gr, 1, 2); |
| 547 | +[ [ 1, 7, 6, 2 ], [ 2, 1, 2 ] ] |
| 548 | +gap> Print(DotEdgeWeightedDigraph(gr, path)); |
| 549 | +//dot |
| 550 | +digraph hgn{ |
| 551 | +node [shape=circle] |
| 552 | +1[color=yellowgreen, style=filled] |
| 553 | +2[color=lightpink, style=filled] |
| 554 | +3[color=gray, style=filled] |
| 555 | +4[color=gray, style=filled] |
| 556 | +5[color=gray, style=filled] |
| 557 | +6[color=gray, style=filled] |
| 558 | +7[color=gray, style=filled] |
| 559 | +1 -> 5[color=black, label=8] |
| 560 | +1 -> 7[color=blue, label=4] |
| 561 | +2 -> 5[color=black, label=12] |
| 562 | +3 -> 1[color=black, label=11] |
| 563 | +3 -> 3[color=black, label=2] |
| 564 | +3 -> 6[color=black, label=10] |
| 565 | +4 -> 1[color=black, label=3] |
| 566 | +4 -> 3[color=black, label=7] |
| 567 | +5 -> 4[color=black, label=9] |
| 568 | +5 -> 5[color=black, label=13] |
| 569 | +6 -> 1[color=black, label=1] |
| 570 | +6 -> 2[color=blue, label=6] |
| 571 | +7 -> 6[color=blue, label=5] |
| 572 | +} |
| 573 | +
|
506 | 574 | # |
507 | 575 | gap> DIGRAPHS_StopTest(); |
508 | 576 | gap> STOP_TEST("Digraphs package: standard/weights.tst", 0); |
0 commit comments