hydro2_mock/
mock_network.rs1crate::ix!();
3
4pub fn single_noop_operator_i32_network() -> Arc<AsyncMutex<Network::<TestWireIO<i32>>>>
5{
6
7 let mut net: Network<TestWireIO<i32>> = network!{
10 vec![node![0 => NoOpOperator::default()]],
11 Vec::new()
12 };
13
14 let network = Arc::new(AsyncMutex::new(net));
16
17 network
18}
19
20pub fn triple_noop_operator_usize_network() -> Arc<AsyncMutex<Network::<TestWireIO<i32>>>> {
21
22 let mut net = network!{
25 vec![
26 node![0 => NoOpOperator::default()],
27 node![1 => NoOpOperator::default()],
28 node![2 => NoOpOperator::default()],
29 ],
30 Vec::new()
31 };
32
33 let network = Arc::new(AsyncMutex::new(net));
35
36 network
37}
38
39pub fn empty_i32_network() -> Arc<AsyncMutex<Network::<TestWireIO<i32>>>>
40{
41 let mut net = network!{Vec::new(),Vec::new()};
44
45 let network = Arc::new(AsyncMutex::new(net));
47
48 network
49}
50
51pub fn empty_usize_network() -> Arc<AsyncMutex<Network::<usize>>>
52{
53 let mut net = network!{
56 vec![ ],
57 Vec::new()
58 };
59
60 let network = Arc::new(AsyncMutex::new(net));
62
63 network
64}
65
66pub fn build_single_node_network() -> Network<TestWireIO<i32>> {
69
70 network!([ node!(0 => IncrementOperator::default()) ], [])
71}
72
73pub fn build_chain_network(n: usize, initial_value: i32) -> Network<TestWireIO<i32>> {
76 let mut nodes = Vec::with_capacity(n);
77 for idx in 0..n {
78 let in_buf = if idx == 0 {
79 vec![arc![initial_value]]
81 } else {
82 vec![arc![0]]
84 };
85
86 let node_built: NetworkNode<TestWireIO<i32>> = node!(idx => IncrementOperator::default());
87 nodes.push(node_built);
88 }
89
90 let mut edges = Vec::with_capacity(n.saturating_sub(1));
92 for idx in 0..(n.saturating_sub(1)) {
93 let e = edge!((idx,0) -> ((idx+1),0));
95 edges.push(e);
96 }
97
98 network!(nodes, edges)
99}
100
101pub fn build_branching_network() -> Network<TestWireIO<i32>> {
108 network!(
109 vec![
110 node!(0 => IncrementOperator::default()),
112 node!(1 => IncrementOperator::default()),
114 node!(2 => IncrementOperator::default()),
116 node!(3 => IncrementOperator::default()),
118 ],
119 vec![
120 edge!(0:0 -> 1:0),
121 edge!(0:0 -> 2:0),
122 edge!(1:0 -> 3:0),
124 edge!(2:0 -> 3:1),
125 ]
126 )
127}