meaningless comment
[ephemerata.git] / KezvhLib / src-junit / net / kezvh / collections / graphs / directed / GraphWithEdgeValuesTemplate.java
blob26365a5d3a33446ce0d904919d3a332dbc139c62
1 /**
3 */
4 package net.kezvh.collections.graphs.directed;
6 import java.util.ArrayList;
7 import java.util.Arrays;
8 import java.util.Collections;
9 import java.util.List;
11 import net.kezvh.collections.CollectionsUtilities;
12 import net.kezvh.collections.DualMap.DualMap;
13 import net.kezvh.collections.DualMap.HashDualMap;
14 import net.kezvh.functional.Operations;
16 /**
17 * @author mjacob
19 public enum GraphWithEdgeValuesTemplate {
20 /**
21 * nodes: []
22 * edges: []
24 EMPTY(new ArrayList<Integer>(), new HashDualMap<Integer, Integer, Integer>()),
25 /**
26 * nodes: [0..15]
27 * edges: all on [0..7], all on [8..15] (weight 1)
29 DISCONECTED(CollectionsUtilities.range(0, 16, Operations.INTEGER_INCREMENTER), new HashDualMap<Integer, Integer, Integer>() {
31 for (int i = 0; i < 8; i++)
32 for (int j = 0; j < 8; j++)
33 this.put(i, j, 1);
35 for (int i = 8; i < 16; i++)
36 for (int j = 8; j < 16; j++)
37 this.put(i, j, 1);
39 }),
40 /**
41 * nodes: [0..15]
42 * edges: all (weight 1)
44 COMPLETE(CollectionsUtilities.range(0, 16, Operations.INTEGER_INCREMENTER), new HashDualMap<Integer, Integer, Integer>() {
46 for (int i = 0; i < 16; i++)
47 for (int j = 0; j < 16; j++)
48 if (i != j)
49 this.put(i, j, 1);
51 }),
52 /**
53 * nodes: [0..99]
54 * edges: [i => (i + 1) % 100] (weight 1)
56 CIRCULAR(CollectionsUtilities.range(0, 100, Operations.INTEGER_INCREMENTER), new HashDualMap<Integer, Integer, Integer>() {
58 for (int i = 0; i < 100; i++)
59 this.put(i, (i + 1) % 100, 1);
61 }),
62 /**
63 * nodes: [0..99]
64 * edges: [i => i + 1] (weight 1)
66 LINEAR(CollectionsUtilities.range(0, 100, Operations.INTEGER_INCREMENTER), new HashDualMap<Integer, Integer, Integer>() {
68 for (int i = 0; i < 99; i++)
69 this.put(i, i + 1, 1);
71 }),
72 /**
73 * nodes: [1,2]
74 * edges: [1 => 2] (weight 1)
76 SIMPLE(Arrays.asList(1, 2), new HashDualMap<Integer, Integer, Integer>() {
78 this.put(1, 2, 1);
80 }),
81 /**
82 * nodes: [1]
83 * edges: []
85 TRIVIAL(Collections.singletonList(1), new HashDualMap<Integer, Integer, Integer>()), ;
86 private final List<Integer> nodes;
87 private final HashDualMap<Integer, Integer, Integer> edges;
89 GraphWithEdgeValuesTemplate(final List<Integer> nodes, final HashDualMap<Integer, Integer, Integer> edges) {
90 this.nodes = nodes;
91 this.edges = edges;
94 List<Integer> getNodes() {
95 return this.nodes;
98 DualMap<Integer, Integer, Integer> getEdges() {
99 return this.edges;