meaningless comment
[ephemerata.git] / KezvhLib / src-junit / net / kezvh / collections / graphs / directed / GraphWithValuesTemplate.java
blobe4ac5a9e7ea92fb78bb18bb3080c98a71624d2f3
1 /**
3 */
4 package net.kezvh.collections.graphs.directed;
6 import java.util.Collections;
7 import java.util.HashMap;
8 import java.util.Map;
9 import java.util.Set;
11 import net.kezvh.collections.IntegerRange;
12 import net.kezvh.collections.DualMap.DualMap;
13 import net.kezvh.collections.DualMap.HashDualMap;
14 import net.kezvh.collections.views.MapAsView;
15 import net.kezvh.functional.Operations;
16 import net.kezvh.functional.lambda.L1;
18 /**
19 * @author mjacob
22 public enum GraphWithValuesTemplate {
23 /**
26 EMPTY_GRAPH(new HashMap<Integer, Integer>(), new HashDualMap<Integer, Integer, Integer>()),
27 /**
30 DISCONECTED_GRAPH(new IntegerRange(0, 16), new HashDualMap<Integer, Integer, Integer>() {
32 for (int i = 0; i < 8; i++)
33 for (int j = 0; j < 8; j++)
34 this.put(i, j, 1);
36 for (int i = 8; i < 16; i++)
37 for (int j = 8; j < 16; j++)
38 this.put(i, j, 1);
40 }),
41 /**
44 COMPLETE_GRAPH(new IntegerRange(0, 16), new HashDualMap<Integer, Integer, Integer>() {
46 for (int i = 0; i < 16; i++)
47 for (int j = 0; j < 16; j++)
48 this.put(i, j, 1);
50 }),
51 /**
54 CIRCULAR_GRAPH(new IntegerRange(0, 100), new HashDualMap<Integer, Integer, Integer>() {
56 for (int i = 0; i < 100; i++)
57 this.put(i, (i + 1) % 100, 1);
59 }),
60 /**
63 LINEAR_GRAPH(new IntegerRange(0, 100), new HashDualMap<Integer, Integer, Integer>() {
65 for (int i = 0; i < 99; i++)
66 this.put(i, i + 1, 1);
68 }),
69 /**
72 SIMPLE_GRAPH(new IntegerRange(1, 2), new HashDualMap<Integer, Integer, Integer>() {
74 this.put(1, 2, 100);
76 }),
77 /**
80 TRIVIAL_GRAPH(Collections.singleton(1), new HashDualMap<Integer, Integer, Integer>()), ;
81 private final Map<Integer, Integer> nodes;
82 private final HashDualMap<Integer, Integer, Integer> edges;
83 private final L1<Integer, Integer> identityOpOnIntegers = Operations.identity();
85 GraphWithValuesTemplate(final Set<Integer> numbers, final HashDualMap<Integer, Integer, Integer> edges) {
86 this.nodes = new MapAsView<Integer, Integer>(numbers, this.identityOpOnIntegers, this.identityOpOnIntegers);
87 this.edges = edges;
90 GraphWithValuesTemplate(final Map<Integer, Integer> nodes, final HashDualMap<Integer, Integer, Integer> edges) {
91 this.nodes = nodes;
92 this.edges = edges;
95 Map<Integer, Integer> getNodes() {
96 return this.nodes;
99 DualMap<Integer, Integer, Integer> getEdges() {
100 return this.edges;