icentral_mock/
mock_data.rs

1crate::ix!();
2   
3//-------------------------------------------[icentral/src/unit_tests.h]
4
5#[derive(Debug)]
6pub enum GraphMock {
7    PaperZero,
8    Paper,
9    Basic,
10}
11
12pub fn paper_edges_for_dachshund() -> Vec<(usize, usize)> {
13    vec![
14        (0,1),
15        (0,3),
16        (1,2),
17        (2,3),
18        (2,4),
19        (2,7),
20        (3,5),
21        (5,6),
22    ]
23}
24
25impl Named for GraphMock {
26
27    fn name(&self) -> Cow<'_,str> {
28        match self {
29            GraphMock::PaperZero => "paper-zero",
30            GraphMock::Paper     => "paper",
31            GraphMock::Basic     => "basic",
32        }.into()
33    }
34}
35
36impl GraphMock {
37
38    pub fn fill<G: ConnectNodeIds + InitWithSize>(&self, graph: &mut G)  {
39        match self {
40            GraphMock::PaperZero => {
41                debug!("filling graph from GraphMock::PaperZero");
42                graph.init_size(8);
43                graph.connect_nodeids(NodeId::from(0),  NodeId::from(1));
44                graph.connect_nodeids(NodeId::from(0),  NodeId::from(3));
45                graph.connect_nodeids(NodeId::from(1),  NodeId::from(2));
46                graph.connect_nodeids(NodeId::from(2),  NodeId::from(3));
47                graph.connect_nodeids(NodeId::from(2),  NodeId::from(4));
48                graph.connect_nodeids(NodeId::from(2),  NodeId::from(7));
49                graph.connect_nodeids(NodeId::from(3),  NodeId::from(5));
50                graph.connect_nodeids(NodeId::from(5),  NodeId::from(6));
51            }
52            GraphMock::Paper => {
53                debug!("filling graph from GraphMock::Paper");
54                graph.init_size(9);
55                graph.connect_nodeids(NodeId::from(0),  NodeId::from(0));
56                graph.connect_nodeids(NodeId::from(1),  NodeId::from(2));
57                graph.connect_nodeids(NodeId::from(1),  NodeId::from(4));
58                graph.connect_nodeids(NodeId::from(2),  NodeId::from(3));
59                graph.connect_nodeids(NodeId::from(3),  NodeId::from(4));
60                graph.connect_nodeids(NodeId::from(3),  NodeId::from(5));
61                graph.connect_nodeids(NodeId::from(3),  NodeId::from(8));
62                graph.connect_nodeids(NodeId::from(4),  NodeId::from(6));
63                graph.connect_nodeids(NodeId::from(6),  NodeId::from(7));
64            }
65            GraphMock::Basic => {
66                debug!("filling graph from GraphMock::Basic");
67                graph.init_size(20);
68                graph.connect_nodeids(NodeId::from(0),  NodeId::from(1));
69                graph.connect_nodeids(NodeId::from(1),  NodeId::from(2));
70                graph.connect_nodeids(NodeId::from(2),  NodeId::from(3));
71                graph.connect_nodeids(NodeId::from(3),  NodeId::from(0));
72                graph.connect_nodeids(NodeId::from(0),  NodeId::from(4));
73                graph.connect_nodeids(NodeId::from(4),  NodeId::from(5));
74                graph.connect_nodeids(NodeId::from(5),  NodeId::from(6));
75                graph.connect_nodeids(NodeId::from(6),  NodeId::from(7));
76                graph.connect_nodeids(NodeId::from(7),  NodeId::from(8));
77                graph.connect_nodeids(NodeId::from(8),  NodeId::from(4));
78                graph.connect_nodeids(NodeId::from(5),  NodeId::from(9));
79                graph.connect_nodeids(NodeId::from(9),  NodeId::from(8));
80                graph.connect_nodeids(NodeId::from(3),  NodeId::from(10));
81                graph.connect_nodeids(NodeId::from(10), NodeId::from(11));
82                graph.connect_nodeids(NodeId::from(11), NodeId::from(12));
83                graph.connect_nodeids(NodeId::from(12), NodeId::from(13));
84                graph.connect_nodeids(NodeId::from(13), NodeId::from(14));
85                graph.connect_nodeids(NodeId::from(14), NodeId::from(15));
86                graph.connect_nodeids(NodeId::from(15), NodeId::from(10));
87                graph.connect_nodeids(NodeId::from(2),  NodeId::from(16));
88                graph.connect_nodeids(NodeId::from(16), NodeId::from(17));
89                graph.connect_nodeids(NodeId::from(17), NodeId::from(18));
90                graph.connect_nodeids(NodeId::from(2),  NodeId::from(19));
91            }
92        }
93    }
94}