]> git.proxmox.com Git - mirror_ovs.git/blob - tests/multipath.at
cirrus: Use FreeBSD 12.2.
[mirror_ovs.git] / tests / multipath.at
1 AT_BANNER([multipath link selection])
2
3 # The test-multipath program prints a lot of output on stdout, but each of the
4 # tests below ignores it because it will vary a bit depending on endianness and
5 # floating point precision. test-multipath will output an error message on
6 # stderr and return with exit code 1 if anything really goes wrong. In each
7 # case, we list the (approximate) expected output in a comment to aid debugging
8 # if the test does fail.
9
10 AT_SETUP([modulo_n multipath link selection])
11 AT_CHECK([[ovstest test-multipath 'eth_src,50,modulo_n,1,0,NXM_NX_REG0[]']],
12 [0], [ignore])
13 # 1 -> 2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
14 # 2 -> 3: disruption=0.66 (perfect=0.33); stddev/expected=0.0023
15 # 3 -> 4: disruption=0.75 (perfect=0.25); stddev/expected=0.0061
16 # 4 -> 5: disruption=0.80 (perfect=0.20); stddev/expected=0.0082
17 # 5 -> 6: disruption=0.83 (perfect=0.17); stddev/expected=0.0083
18 # 6 -> 7: disruption=0.86 (perfect=0.14); stddev/expected=0.0061
19 # 7 -> 8: disruption=0.88 (perfect=0.12); stddev/expected=0.0103
20 # 8 -> 9: disruption=0.89 (perfect=0.11); stddev/expected=0.0129
21 # 9 -> 10: disruption=0.90 (perfect=0.10); stddev/expected=0.0091
22 #10 -> 11: disruption=0.91 (perfect=0.09); stddev/expected=0.0114
23 #11 -> 12: disruption=0.91 (perfect=0.08); stddev/expected=0.0073
24 #12 -> 13: disruption=0.92 (perfect=0.08); stddev/expected=0.0165
25 #13 -> 14: disruption=0.93 (perfect=0.07); stddev/expected=0.0149
26 #14 -> 15: disruption=0.93 (perfect=0.07); stddev/expected=0.0127
27 #15 -> 16: disruption=0.94 (perfect=0.06); stddev/expected=0.0142
28 #16 -> 17: disruption=0.94 (perfect=0.06); stddev/expected=0.0098
29 #17 -> 18: disruption=0.94 (perfect=0.06); stddev/expected=0.0159
30 #18 -> 19: disruption=0.95 (perfect=0.05); stddev/expected=0.0121
31 #19 -> 20: disruption=0.95 (perfect=0.05); stddev/expected=0.0195
32 #20 -> 21: disruption=0.95 (perfect=0.05); stddev/expected=0.0120
33 #21 -> 22: disruption=0.95 (perfect=0.05); stddev/expected=0.0181
34 #22 -> 23: disruption=0.96 (perfect=0.04); stddev/expected=0.0222
35 #23 -> 24: disruption=0.96 (perfect=0.04); stddev/expected=0.0164
36 #24 -> 25: disruption=0.96 (perfect=0.04); stddev/expected=0.0146
37 #25 -> 26: disruption=0.96 (perfect=0.04); stddev/expected=0.0175
38 #26 -> 27: disruption=0.96 (perfect=0.04); stddev/expected=0.0231
39 #27 -> 28: disruption=0.96 (perfect=0.04); stddev/expected=0.0172
40 #28 -> 29: disruption=0.97 (perfect=0.03); stddev/expected=0.0211
41 #29 -> 30: disruption=0.97 (perfect=0.03); stddev/expected=0.0213
42 #30 -> 31: disruption=0.97 (perfect=0.03); stddev/expected=0.0253
43 #31 -> 32: disruption=0.97 (perfect=0.03); stddev/expected=0.0208
44 #32 -> 33: disruption=0.97 (perfect=0.03); stddev/expected=0.0223
45 #33 -> 34: disruption=0.97 (perfect=0.03); stddev/expected=0.0215
46 #34 -> 35: disruption=0.97 (perfect=0.03); stddev/expected=0.0201
47 #35 -> 36: disruption=0.97 (perfect=0.03); stddev/expected=0.0220
48 #36 -> 37: disruption=0.97 (perfect=0.03); stddev/expected=0.0221
49 #37 -> 38: disruption=0.97 (perfect=0.03); stddev/expected=0.0201
50 #38 -> 39: disruption=0.97 (perfect=0.03); stddev/expected=0.0215
51 #39 -> 40: disruption=0.97 (perfect=0.03); stddev/expected=0.0271
52 #40 -> 41: disruption=0.98 (perfect=0.02); stddev/expected=0.0272
53 #41 -> 42: disruption=0.98 (perfect=0.02); stddev/expected=0.0208
54 #42 -> 43: disruption=0.98 (perfect=0.02); stddev/expected=0.0226
55 #43 -> 44: disruption=0.98 (perfect=0.02); stddev/expected=0.0264
56 #44 -> 45: disruption=0.98 (perfect=0.02); stddev/expected=0.0233
57 #45 -> 46: disruption=0.98 (perfect=0.02); stddev/expected=0.0285
58 #46 -> 47: disruption=0.98 (perfect=0.02); stddev/expected=0.0246
59 #47 -> 48: disruption=0.98 (perfect=0.02); stddev/expected=0.0282
60 #48 -> 49: disruption=0.98 (perfect=0.02); stddev/expected=0.0233
61 #49 -> 50: disruption=0.98 (perfect=0.02); stddev/expected=0.0197
62 #50 -> 51: disruption=0.98 (perfect=0.02); stddev/expected=0.0317
63 #51 -> 52: disruption=0.98 (perfect=0.02); stddev/expected=0.0283
64 #52 -> 53: disruption=0.98 (perfect=0.02); stddev/expected=0.0282
65 #53 -> 54: disruption=0.98 (perfect=0.02); stddev/expected=0.0273
66 #54 -> 55: disruption=0.98 (perfect=0.02); stddev/expected=0.0283
67 #55 -> 56: disruption=0.98 (perfect=0.02); stddev/expected=0.0288
68 #56 -> 57: disruption=0.98 (perfect=0.02); stddev/expected=0.0263
69 #57 -> 58: disruption=0.98 (perfect=0.02); stddev/expected=0.0339
70 #58 -> 59: disruption=0.98 (perfect=0.02); stddev/expected=0.0262
71 #59 -> 60: disruption=0.98 (perfect=0.02); stddev/expected=0.0309
72 #60 -> 61: disruption=0.98 (perfect=0.02); stddev/expected=0.0285
73 #61 -> 62: disruption=0.98 (perfect=0.02); stddev/expected=0.0288
74 #62 -> 63: disruption=0.98 (perfect=0.02); stddev/expected=0.0298
75 #63 -> 64: disruption=0.98 (perfect=0.02); stddev/expected=0.0277
76 AT_CLEANUP
77
78 AT_SETUP([hash_threshold multipath link selection])
79 AT_CHECK([[ovstest test-multipath 'eth_src,50,hash_threshold,1,0,NXM_NX_REG0[]']],
80 [0], [ignore])
81 # 1 -> 2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
82 # 2 -> 3: disruption=0.50 (perfect=0.33); stddev/expected=0.0056
83 # 3 -> 4: disruption=0.50 (perfect=0.25); stddev/expected=0.0050
84 # 4 -> 5: disruption=0.50 (perfect=0.20); stddev/expected=0.0074
85 # 5 -> 6: disruption=0.50 (perfect=0.17); stddev/expected=0.0031
86 # 6 -> 7: disruption=0.50 (perfect=0.14); stddev/expected=0.0078
87 # 7 -> 8: disruption=0.50 (perfect=0.12); stddev/expected=0.0085
88 # 8 -> 9: disruption=0.50 (perfect=0.11); stddev/expected=0.0093
89 # 9 -> 10: disruption=0.50 (perfect=0.10); stddev/expected=0.0083
90 #10 -> 11: disruption=0.51 (perfect=0.09); stddev/expected=0.0110
91 #11 -> 12: disruption=0.50 (perfect=0.08); stddev/expected=0.0124
92 #12 -> 13: disruption=0.50 (perfect=0.08); stddev/expected=0.0143
93 #13 -> 14: disruption=0.50 (perfect=0.07); stddev/expected=0.0148
94 #14 -> 15: disruption=0.50 (perfect=0.07); stddev/expected=0.0099
95 #15 -> 16: disruption=0.50 (perfect=0.06); stddev/expected=0.0166
96 #16 -> 17: disruption=0.50 (perfect=0.06); stddev/expected=0.0099
97 #17 -> 18: disruption=0.50 (perfect=0.06); stddev/expected=0.0194
98 #18 -> 19: disruption=0.50 (perfect=0.05); stddev/expected=0.0169
99 #19 -> 20: disruption=0.50 (perfect=0.05); stddev/expected=0.0169
100 #20 -> 21: disruption=0.50 (perfect=0.05); stddev/expected=0.0185
101 #21 -> 22: disruption=0.50 (perfect=0.05); stddev/expected=0.0160
102 #22 -> 23: disruption=0.50 (perfect=0.04); stddev/expected=0.0236
103 #23 -> 24: disruption=0.50 (perfect=0.04); stddev/expected=0.0147
104 #24 -> 25: disruption=0.50 (perfect=0.04); stddev/expected=0.0195
105 #25 -> 26: disruption=0.50 (perfect=0.04); stddev/expected=0.0199
106 #26 -> 27: disruption=0.50 (perfect=0.04); stddev/expected=0.0227
107 #27 -> 28: disruption=0.50 (perfect=0.04); stddev/expected=0.0198
108 #28 -> 29: disruption=0.50 (perfect=0.03); stddev/expected=0.0216
109 #29 -> 30: disruption=0.50 (perfect=0.03); stddev/expected=0.0233
110 #30 -> 31: disruption=0.50 (perfect=0.03); stddev/expected=0.0266
111 #31 -> 32: disruption=0.51 (perfect=0.03); stddev/expected=0.0238
112 #32 -> 33: disruption=0.50 (perfect=0.03); stddev/expected=0.0194
113 #33 -> 34: disruption=0.50 (perfect=0.03); stddev/expected=0.0173
114 #34 -> 35: disruption=0.50 (perfect=0.03); stddev/expected=0.0223
115 #35 -> 36: disruption=0.50 (perfect=0.03); stddev/expected=0.0220
116 #36 -> 37: disruption=0.50 (perfect=0.03); stddev/expected=0.0237
117 #37 -> 38: disruption=0.50 (perfect=0.03); stddev/expected=0.0237
118 #38 -> 39: disruption=0.50 (perfect=0.03); stddev/expected=0.0251
119 #39 -> 40: disruption=0.50 (perfect=0.03); stddev/expected=0.0212
120 #40 -> 41: disruption=0.50 (perfect=0.02); stddev/expected=0.0267
121 #41 -> 42: disruption=0.50 (perfect=0.02); stddev/expected=0.0242
122 #42 -> 43: disruption=0.50 (perfect=0.02); stddev/expected=0.0222
123 #43 -> 44: disruption=0.50 (perfect=0.02); stddev/expected=0.0244
124 #44 -> 45: disruption=0.50 (perfect=0.02); stddev/expected=0.0231
125 #45 -> 46: disruption=0.50 (perfect=0.02); stddev/expected=0.0299
126 #46 -> 47: disruption=0.50 (perfect=0.02); stddev/expected=0.0263
127 #47 -> 48: disruption=0.50 (perfect=0.02); stddev/expected=0.0307
128 #48 -> 49: disruption=0.50 (perfect=0.02); stddev/expected=0.0253
129 #49 -> 50: disruption=0.50 (perfect=0.02); stddev/expected=0.0228
130 #50 -> 51: disruption=0.50 (perfect=0.02); stddev/expected=0.0273
131 #51 -> 52: disruption=0.50 (perfect=0.02); stddev/expected=0.0243
132 #52 -> 53: disruption=0.50 (perfect=0.02); stddev/expected=0.0268
133 #53 -> 54: disruption=0.50 (perfect=0.02); stddev/expected=0.0251
134 #54 -> 55: disruption=0.50 (perfect=0.02); stddev/expected=0.0297
135 #55 -> 56: disruption=0.50 (perfect=0.02); stddev/expected=0.0287
136 #56 -> 57: disruption=0.50 (perfect=0.02); stddev/expected=0.0299
137 #57 -> 58: disruption=0.50 (perfect=0.02); stddev/expected=0.0272
138 #58 -> 59: disruption=0.50 (perfect=0.02); stddev/expected=0.0295
139 #59 -> 60: disruption=0.50 (perfect=0.02); stddev/expected=0.0312
140 #60 -> 61: disruption=0.50 (perfect=0.02); stddev/expected=0.0361
141 #61 -> 62: disruption=0.50 (perfect=0.02); stddev/expected=0.0308
142 #62 -> 63: disruption=0.50 (perfect=0.02); stddev/expected=0.0283
143 #63 -> 64: disruption=0.50 (perfect=0.02); stddev/expected=0.0325
144 AT_CLEANUP
145
146 AT_SETUP([hrw multipath link selection])
147 AT_CHECK([[ovstest test-multipath 'eth_src,50,hrw,1,0,NXM_NX_REG0[]']],
148 [0], [ignore])
149 # 1 -> 2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
150 # 2 -> 3: disruption=0.33 (perfect=0.33); stddev/expected=0.0033
151 # 3 -> 4: disruption=0.25 (perfect=0.25); stddev/expected=0.0076
152 # 4 -> 5: disruption=0.20 (perfect=0.20); stddev/expected=0.0059
153 # 5 -> 6: disruption=0.17 (perfect=0.17); stddev/expected=0.0030
154 # 6 -> 7: disruption=0.14 (perfect=0.14); stddev/expected=0.0124
155 # 7 -> 8: disruption=0.13 (perfect=0.12); stddev/expected=0.0072
156 # 8 -> 9: disruption=0.11 (perfect=0.11); stddev/expected=0.0074
157 # 9 -> 10: disruption=0.10 (perfect=0.10); stddev/expected=0.0161
158 #10 -> 11: disruption=0.09 (perfect=0.09); stddev/expected=0.0055
159 #11 -> 12: disruption=0.08 (perfect=0.08); stddev/expected=0.0092
160 #12 -> 13: disruption=0.08 (perfect=0.08); stddev/expected=0.0134
161 #13 -> 14: disruption=0.07 (perfect=0.07); stddev/expected=0.0124
162 #14 -> 15: disruption=0.07 (perfect=0.07); stddev/expected=0.0156
163 #15 -> 16: disruption=0.06 (perfect=0.06); stddev/expected=0.0182
164 #16 -> 17: disruption=0.06 (perfect=0.06); stddev/expected=0.0150
165 #17 -> 18: disruption=0.06 (perfect=0.06); stddev/expected=0.0109
166 #18 -> 19: disruption=0.05 (perfect=0.05); stddev/expected=0.0162
167 #19 -> 20: disruption=0.05 (perfect=0.05); stddev/expected=0.0149
168 #20 -> 21: disruption=0.05 (perfect=0.05); stddev/expected=0.0148
169 #21 -> 22: disruption=0.05 (perfect=0.05); stddev/expected=0.0230
170 #22 -> 23: disruption=0.04 (perfect=0.04); stddev/expected=0.0208
171 #23 -> 24: disruption=0.04 (perfect=0.04); stddev/expected=0.0210
172 #24 -> 25: disruption=0.04 (perfect=0.04); stddev/expected=0.0228
173 #25 -> 26: disruption=0.04 (perfect=0.04); stddev/expected=0.0155
174 #26 -> 27: disruption=0.04 (perfect=0.04); stddev/expected=0.0208
175 #27 -> 28: disruption=0.04 (perfect=0.04); stddev/expected=0.0218
176 #28 -> 29: disruption=0.03 (perfect=0.03); stddev/expected=0.0193
177 #29 -> 30: disruption=0.03 (perfect=0.03); stddev/expected=0.0169
178 #30 -> 31: disruption=0.03 (perfect=0.03); stddev/expected=0.0163
179 #31 -> 32: disruption=0.03 (perfect=0.03); stddev/expected=0.0192
180 #32 -> 33: disruption=0.03 (perfect=0.03); stddev/expected=0.0212
181 #33 -> 34: disruption=0.03 (perfect=0.03); stddev/expected=0.0240
182 #34 -> 35: disruption=0.03 (perfect=0.03); stddev/expected=0.0227
183 #35 -> 36: disruption=0.03 (perfect=0.03); stddev/expected=0.0230
184 #36 -> 37: disruption=0.03 (perfect=0.03); stddev/expected=0.0183
185 #37 -> 38: disruption=0.03 (perfect=0.03); stddev/expected=0.0227
186 #38 -> 39: disruption=0.03 (perfect=0.03); stddev/expected=0.0255
187 #39 -> 40: disruption=0.03 (perfect=0.03); stddev/expected=0.0247
188 #40 -> 41: disruption=0.02 (perfect=0.02); stddev/expected=0.0228
189 #41 -> 42: disruption=0.02 (perfect=0.02); stddev/expected=0.0247
190 #42 -> 43: disruption=0.02 (perfect=0.02); stddev/expected=0.0265
191 #43 -> 44: disruption=0.02 (perfect=0.02); stddev/expected=0.0250
192 #44 -> 45: disruption=0.02 (perfect=0.02); stddev/expected=0.0258
193 #45 -> 46: disruption=0.02 (perfect=0.02); stddev/expected=0.0196
194 #46 -> 47: disruption=0.02 (perfect=0.02); stddev/expected=0.0235
195 #47 -> 48: disruption=0.02 (perfect=0.02); stddev/expected=0.0314
196 #48 -> 49: disruption=0.02 (perfect=0.02); stddev/expected=0.0293
197 #49 -> 50: disruption=0.02 (perfect=0.02); stddev/expected=0.0241
198 #50 -> 51: disruption=0.02 (perfect=0.02); stddev/expected=0.0291
199 #51 -> 52: disruption=0.02 (perfect=0.02); stddev/expected=0.0304
200 #52 -> 53: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
201 #53 -> 54: disruption=0.02 (perfect=0.02); stddev/expected=0.0250
202 #54 -> 55: disruption=0.02 (perfect=0.02); stddev/expected=0.0290
203 #55 -> 56: disruption=0.02 (perfect=0.02); stddev/expected=0.0284
204 #56 -> 57: disruption=0.02 (perfect=0.02); stddev/expected=0.0272
205 #57 -> 58: disruption=0.02 (perfect=0.02); stddev/expected=0.0272
206 #58 -> 59: disruption=0.02 (perfect=0.02); stddev/expected=0.0304
207 #59 -> 60: disruption=0.02 (perfect=0.02); stddev/expected=0.0345
208 #60 -> 61: disruption=0.02 (perfect=0.02); stddev/expected=0.0251
209 #61 -> 62: disruption=0.02 (perfect=0.02); stddev/expected=0.0249
210 #62 -> 63: disruption=0.02 (perfect=0.02); stddev/expected=0.0285
211 #63 -> 64: disruption=0.02 (perfect=0.02); stddev/expected=0.0285
212 AT_CLEANUP
213
214 AT_SETUP([iter_hash multipath link selection])
215 AT_CHECK([[ovstest test-multipath 'eth_src,50,iter_hash,1,0,NXM_NX_REG0[]']],
216 [0], [ignore])
217 # 1 -> 2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
218 # 2 -> 3: disruption=0.42 (perfect=0.33); stddev/expected=0.0034
219 # 3 -> 4: disruption=0.25 (perfect=0.25); stddev/expected=0.0082
220 # 4 -> 5: disruption=0.42 (perfect=0.20); stddev/expected=0.0073
221 # 5 -> 6: disruption=0.17 (perfect=0.17); stddev/expected=0.0040
222 # 6 -> 7: disruption=0.14 (perfect=0.14); stddev/expected=0.0069
223 # 7 -> 8: disruption=0.13 (perfect=0.12); stddev/expected=0.0131
224 # 8 -> 9: disruption=0.45 (perfect=0.11); stddev/expected=0.0093
225 # 9 -> 10: disruption=0.10 (perfect=0.10); stddev/expected=0.0127
226 #10 -> 11: disruption=0.09 (perfect=0.09); stddev/expected=0.0134
227 #11 -> 12: disruption=0.08 (perfect=0.08); stddev/expected=0.0101
228 #12 -> 13: disruption=0.08 (perfect=0.08); stddev/expected=0.0127
229 #13 -> 14: disruption=0.07 (perfect=0.07); stddev/expected=0.0115
230 #14 -> 15: disruption=0.07 (perfect=0.07); stddev/expected=0.0100
231 #15 -> 16: disruption=0.06 (perfect=0.06); stddev/expected=0.0111
232 #16 -> 17: disruption=0.47 (perfect=0.06); stddev/expected=0.0137
233 #17 -> 18: disruption=0.05 (perfect=0.06); stddev/expected=0.0204
234 #18 -> 19: disruption=0.05 (perfect=0.05); stddev/expected=0.0082
235 #19 -> 20: disruption=0.05 (perfect=0.05); stddev/expected=0.0124
236 #20 -> 21: disruption=0.05 (perfect=0.05); stddev/expected=0.0203
237 #21 -> 22: disruption=0.05 (perfect=0.05); stddev/expected=0.0196
238 #22 -> 23: disruption=0.04 (perfect=0.04); stddev/expected=0.0183
239 #23 -> 24: disruption=0.04 (perfect=0.04); stddev/expected=0.0212
240 #24 -> 25: disruption=0.04 (perfect=0.04); stddev/expected=0.0176
241 #25 -> 26: disruption=0.04 (perfect=0.04); stddev/expected=0.0173
242 #26 -> 27: disruption=0.04 (perfect=0.04); stddev/expected=0.0159
243 #27 -> 28: disruption=0.03 (perfect=0.04); stddev/expected=0.0168
244 #28 -> 29: disruption=0.03 (perfect=0.03); stddev/expected=0.0190
245 #29 -> 30: disruption=0.03 (perfect=0.03); stddev/expected=0.0305
246 #30 -> 31: disruption=0.03 (perfect=0.03); stddev/expected=0.0282
247 #31 -> 32: disruption=0.03 (perfect=0.03); stddev/expected=0.0255
248 #32 -> 33: disruption=0.49 (perfect=0.03); stddev/expected=0.0220
249 #33 -> 34: disruption=0.03 (perfect=0.03); stddev/expected=0.0188
250 #34 -> 35: disruption=0.03 (perfect=0.03); stddev/expected=0.0203
251 #35 -> 36: disruption=0.03 (perfect=0.03); stddev/expected=0.0207
252 #36 -> 37: disruption=0.03 (perfect=0.03); stddev/expected=0.0261
253 #37 -> 38: disruption=0.03 (perfect=0.03); stddev/expected=0.0226
254 #38 -> 39: disruption=0.03 (perfect=0.03); stddev/expected=0.0233
255 #39 -> 40: disruption=0.03 (perfect=0.03); stddev/expected=0.0161
256 #40 -> 41: disruption=0.03 (perfect=0.02); stddev/expected=0.0303
257 #41 -> 42: disruption=0.02 (perfect=0.02); stddev/expected=0.0249
258 #42 -> 43: disruption=0.02 (perfect=0.02); stddev/expected=0.0262
259 #43 -> 44: disruption=0.02 (perfect=0.02); stddev/expected=0.0260
260 #44 -> 45: disruption=0.02 (perfect=0.02); stddev/expected=0.0266
261 #45 -> 46: disruption=0.02 (perfect=0.02); stddev/expected=0.0287
262 #46 -> 47: disruption=0.02 (perfect=0.02); stddev/expected=0.0213
263 #47 -> 48: disruption=0.02 (perfect=0.02); stddev/expected=0.0301
264 #48 -> 49: disruption=0.02 (perfect=0.02); stddev/expected=0.0230
265 #49 -> 50: disruption=0.02 (perfect=0.02); stddev/expected=0.0248
266 #50 -> 51: disruption=0.02 (perfect=0.02); stddev/expected=0.0203
267 #51 -> 52: disruption=0.02 (perfect=0.02); stddev/expected=0.0235
268 #52 -> 53: disruption=0.02 (perfect=0.02); stddev/expected=0.0340
269 #53 -> 54: disruption=0.02 (perfect=0.02); stddev/expected=0.0264
270 #54 -> 55: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
271 #55 -> 56: disruption=0.02 (perfect=0.02); stddev/expected=0.0246
272 #56 -> 57: disruption=0.02 (perfect=0.02); stddev/expected=0.0270
273 #57 -> 58: disruption=0.02 (perfect=0.02); stddev/expected=0.0299
274 #58 -> 59: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
275 #59 -> 60: disruption=0.02 (perfect=0.02); stddev/expected=0.0275
276 #60 -> 61: disruption=0.02 (perfect=0.02); stddev/expected=0.0289
277 #61 -> 62: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
278 #62 -> 63: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
279 #63 -> 64: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
280 AT_CLEANUP
281
282 AT_SETUP([modulo_n multipath symmetric_l3 link selection])
283 AT_CHECK([[ovstest test-multipath 'symmetric_l3,50,modulo_n,1,0,NXM_NX_REG0[]']],
284 [0], [ignore])
285 # 1 -> 2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
286 # 2 -> 3: disruption=0.66 (perfect=0.33); stddev/expected=0.0023
287 # 3 -> 4: disruption=0.75 (perfect=0.25); stddev/expected=0.0061
288 # 4 -> 5: disruption=0.80 (perfect=0.20); stddev/expected=0.0082
289 # 5 -> 6: disruption=0.83 (perfect=0.17); stddev/expected=0.0083
290 # 6 -> 7: disruption=0.86 (perfect=0.14); stddev/expected=0.0061
291 # 7 -> 8: disruption=0.88 (perfect=0.12); stddev/expected=0.0103
292 # 8 -> 9: disruption=0.89 (perfect=0.11); stddev/expected=0.0129
293 # 9 -> 10: disruption=0.90 (perfect=0.10); stddev/expected=0.0091
294 #10 -> 11: disruption=0.91 (perfect=0.09); stddev/expected=0.0114
295 #11 -> 12: disruption=0.91 (perfect=0.08); stddev/expected=0.0073
296 #12 -> 13: disruption=0.92 (perfect=0.08); stddev/expected=0.0165
297 #13 -> 14: disruption=0.93 (perfect=0.07); stddev/expected=0.0149
298 #14 -> 15: disruption=0.93 (perfect=0.07); stddev/expected=0.0127
299 #15 -> 16: disruption=0.94 (perfect=0.06); stddev/expected=0.0142
300 #16 -> 17: disruption=0.94 (perfect=0.06); stddev/expected=0.0098
301 #17 -> 18: disruption=0.94 (perfect=0.06); stddev/expected=0.0159
302 #18 -> 19: disruption=0.95 (perfect=0.05); stddev/expected=0.0121
303 #19 -> 20: disruption=0.95 (perfect=0.05); stddev/expected=0.0195
304 #20 -> 21: disruption=0.95 (perfect=0.05); stddev/expected=0.0120
305 #21 -> 22: disruption=0.95 (perfect=0.05); stddev/expected=0.0181
306 #22 -> 23: disruption=0.96 (perfect=0.04); stddev/expected=0.0222
307 #23 -> 24: disruption=0.96 (perfect=0.04); stddev/expected=0.0164
308 #24 -> 25: disruption=0.96 (perfect=0.04); stddev/expected=0.0146
309 #25 -> 26: disruption=0.96 (perfect=0.04); stddev/expected=0.0175
310 #26 -> 27: disruption=0.96 (perfect=0.04); stddev/expected=0.0231
311 #27 -> 28: disruption=0.96 (perfect=0.04); stddev/expected=0.0172
312 #28 -> 29: disruption=0.97 (perfect=0.03); stddev/expected=0.0211
313 #29 -> 30: disruption=0.97 (perfect=0.03); stddev/expected=0.0213
314 #30 -> 31: disruption=0.97 (perfect=0.03); stddev/expected=0.0253
315 #31 -> 32: disruption=0.97 (perfect=0.03); stddev/expected=0.0208
316 #32 -> 33: disruption=0.97 (perfect=0.03); stddev/expected=0.0223
317 #33 -> 34: disruption=0.97 (perfect=0.03); stddev/expected=0.0215
318 #34 -> 35: disruption=0.97 (perfect=0.03); stddev/expected=0.0201
319 #35 -> 36: disruption=0.97 (perfect=0.03); stddev/expected=0.0220
320 #36 -> 37: disruption=0.97 (perfect=0.03); stddev/expected=0.0221
321 #37 -> 38: disruption=0.97 (perfect=0.03); stddev/expected=0.0201
322 #38 -> 39: disruption=0.97 (perfect=0.03); stddev/expected=0.0215
323 #39 -> 40: disruption=0.97 (perfect=0.03); stddev/expected=0.0271
324 #40 -> 41: disruption=0.98 (perfect=0.02); stddev/expected=0.0272
325 #41 -> 42: disruption=0.98 (perfect=0.02); stddev/expected=0.0208
326 #42 -> 43: disruption=0.98 (perfect=0.02); stddev/expected=0.0226
327 #43 -> 44: disruption=0.98 (perfect=0.02); stddev/expected=0.0264
328 #44 -> 45: disruption=0.98 (perfect=0.02); stddev/expected=0.0233
329 #45 -> 46: disruption=0.98 (perfect=0.02); stddev/expected=0.0285
330 #46 -> 47: disruption=0.98 (perfect=0.02); stddev/expected=0.0246
331 #47 -> 48: disruption=0.98 (perfect=0.02); stddev/expected=0.0282
332 #48 -> 49: disruption=0.98 (perfect=0.02); stddev/expected=0.0233
333 #49 -> 50: disruption=0.98 (perfect=0.02); stddev/expected=0.0197
334 #50 -> 51: disruption=0.98 (perfect=0.02); stddev/expected=0.0317
335 #51 -> 52: disruption=0.98 (perfect=0.02); stddev/expected=0.0283
336 #52 -> 53: disruption=0.98 (perfect=0.02); stddev/expected=0.0282
337 #53 -> 54: disruption=0.98 (perfect=0.02); stddev/expected=0.0273
338 #54 -> 55: disruption=0.98 (perfect=0.02); stddev/expected=0.0283
339 #55 -> 56: disruption=0.98 (perfect=0.02); stddev/expected=0.0288
340 #56 -> 57: disruption=0.98 (perfect=0.02); stddev/expected=0.0263
341 #57 -> 58: disruption=0.98 (perfect=0.02); stddev/expected=0.0339
342 #58 -> 59: disruption=0.98 (perfect=0.02); stddev/expected=0.0262
343 #59 -> 60: disruption=0.98 (perfect=0.02); stddev/expected=0.0309
344 #60 -> 61: disruption=0.98 (perfect=0.02); stddev/expected=0.0285
345 #61 -> 62: disruption=0.98 (perfect=0.02); stddev/expected=0.0288
346 #62 -> 63: disruption=0.98 (perfect=0.02); stddev/expected=0.0298
347 #63 -> 64: disruption=0.98 (perfect=0.02); stddev/expected=0.0277
348 AT_CLEANUP
349
350 AT_SETUP([hash_threshold multipath symmetric_l3 link selection])
351 AT_CHECK([[ovstest test-multipath 'symmetric_l3,50,hash_threshold,1,0,NXM_NX_REG0[]']],
352 [0], [ignore])
353 # 1 -> 2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
354 # 2 -> 3: disruption=0.50 (perfect=0.33); stddev/expected=0.0056
355 # 3 -> 4: disruption=0.50 (perfect=0.25); stddev/expected=0.0050
356 # 4 -> 5: disruption=0.50 (perfect=0.20); stddev/expected=0.0074
357 # 5 -> 6: disruption=0.50 (perfect=0.17); stddev/expected=0.0031
358 # 6 -> 7: disruption=0.50 (perfect=0.14); stddev/expected=0.0078
359 # 7 -> 8: disruption=0.50 (perfect=0.12); stddev/expected=0.0085
360 # 8 -> 9: disruption=0.50 (perfect=0.11); stddev/expected=0.0093
361 # 9 -> 10: disruption=0.50 (perfect=0.10); stddev/expected=0.0083
362 #10 -> 11: disruption=0.51 (perfect=0.09); stddev/expected=0.0110
363 #11 -> 12: disruption=0.50 (perfect=0.08); stddev/expected=0.0124
364 #12 -> 13: disruption=0.50 (perfect=0.08); stddev/expected=0.0143
365 #13 -> 14: disruption=0.50 (perfect=0.07); stddev/expected=0.0148
366 #14 -> 15: disruption=0.50 (perfect=0.07); stddev/expected=0.0099
367 #15 -> 16: disruption=0.50 (perfect=0.06); stddev/expected=0.0166
368 #16 -> 17: disruption=0.50 (perfect=0.06); stddev/expected=0.0099
369 #17 -> 18: disruption=0.50 (perfect=0.06); stddev/expected=0.0194
370 #18 -> 19: disruption=0.50 (perfect=0.05); stddev/expected=0.0169
371 #19 -> 20: disruption=0.50 (perfect=0.05); stddev/expected=0.0169
372 #20 -> 21: disruption=0.50 (perfect=0.05); stddev/expected=0.0185
373 #21 -> 22: disruption=0.50 (perfect=0.05); stddev/expected=0.0160
374 #22 -> 23: disruption=0.50 (perfect=0.04); stddev/expected=0.0236
375 #23 -> 24: disruption=0.50 (perfect=0.04); stddev/expected=0.0147
376 #24 -> 25: disruption=0.50 (perfect=0.04); stddev/expected=0.0195
377 #25 -> 26: disruption=0.50 (perfect=0.04); stddev/expected=0.0199
378 #26 -> 27: disruption=0.50 (perfect=0.04); stddev/expected=0.0227
379 #27 -> 28: disruption=0.50 (perfect=0.04); stddev/expected=0.0198
380 #28 -> 29: disruption=0.50 (perfect=0.03); stddev/expected=0.0216
381 #29 -> 30: disruption=0.50 (perfect=0.03); stddev/expected=0.0233
382 #30 -> 31: disruption=0.50 (perfect=0.03); stddev/expected=0.0266
383 #31 -> 32: disruption=0.51 (perfect=0.03); stddev/expected=0.0238
384 #32 -> 33: disruption=0.50 (perfect=0.03); stddev/expected=0.0194
385 #33 -> 34: disruption=0.50 (perfect=0.03); stddev/expected=0.0173
386 #34 -> 35: disruption=0.50 (perfect=0.03); stddev/expected=0.0223
387 #35 -> 36: disruption=0.50 (perfect=0.03); stddev/expected=0.0220
388 #36 -> 37: disruption=0.50 (perfect=0.03); stddev/expected=0.0237
389 #37 -> 38: disruption=0.50 (perfect=0.03); stddev/expected=0.0237
390 #38 -> 39: disruption=0.50 (perfect=0.03); stddev/expected=0.0251
391 #39 -> 40: disruption=0.50 (perfect=0.03); stddev/expected=0.0212
392 #40 -> 41: disruption=0.50 (perfect=0.02); stddev/expected=0.0267
393 #41 -> 42: disruption=0.50 (perfect=0.02); stddev/expected=0.0242
394 #42 -> 43: disruption=0.50 (perfect=0.02); stddev/expected=0.0222
395 #43 -> 44: disruption=0.50 (perfect=0.02); stddev/expected=0.0244
396 #44 -> 45: disruption=0.50 (perfect=0.02); stddev/expected=0.0231
397 #45 -> 46: disruption=0.50 (perfect=0.02); stddev/expected=0.0299
398 #46 -> 47: disruption=0.50 (perfect=0.02); stddev/expected=0.0263
399 #47 -> 48: disruption=0.50 (perfect=0.02); stddev/expected=0.0307
400 #48 -> 49: disruption=0.50 (perfect=0.02); stddev/expected=0.0253
401 #49 -> 50: disruption=0.50 (perfect=0.02); stddev/expected=0.0228
402 #50 -> 51: disruption=0.50 (perfect=0.02); stddev/expected=0.0273
403 #51 -> 52: disruption=0.50 (perfect=0.02); stddev/expected=0.0243
404 #52 -> 53: disruption=0.50 (perfect=0.02); stddev/expected=0.0268
405 #53 -> 54: disruption=0.50 (perfect=0.02); stddev/expected=0.0251
406 #54 -> 55: disruption=0.50 (perfect=0.02); stddev/expected=0.0297
407 #55 -> 56: disruption=0.50 (perfect=0.02); stddev/expected=0.0287
408 #56 -> 57: disruption=0.50 (perfect=0.02); stddev/expected=0.0299
409 #57 -> 58: disruption=0.50 (perfect=0.02); stddev/expected=0.0272
410 #58 -> 59: disruption=0.50 (perfect=0.02); stddev/expected=0.0295
411 #59 -> 60: disruption=0.50 (perfect=0.02); stddev/expected=0.0312
412 #60 -> 61: disruption=0.50 (perfect=0.02); stddev/expected=0.0361
413 #61 -> 62: disruption=0.50 (perfect=0.02); stddev/expected=0.0308
414 #62 -> 63: disruption=0.50 (perfect=0.02); stddev/expected=0.0283
415 #63 -> 64: disruption=0.50 (perfect=0.02); stddev/expected=0.0325
416 AT_CLEANUP
417
418 AT_SETUP([hrw multipath symmetric_l3 link selection])
419 AT_CHECK([[ovstest test-multipath 'symmetric_l3,50,hrw,1,0,NXM_NX_REG0[]']],
420 [0], [ignore])
421 # 1 -> 2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
422 # 2 -> 3: disruption=0.33 (perfect=0.33); stddev/expected=0.0033
423 # 3 -> 4: disruption=0.25 (perfect=0.25); stddev/expected=0.0076
424 # 4 -> 5: disruption=0.20 (perfect=0.20); stddev/expected=0.0059
425 # 5 -> 6: disruption=0.17 (perfect=0.17); stddev/expected=0.0030
426 # 6 -> 7: disruption=0.14 (perfect=0.14); stddev/expected=0.0124
427 # 7 -> 8: disruption=0.13 (perfect=0.12); stddev/expected=0.0072
428 # 8 -> 9: disruption=0.11 (perfect=0.11); stddev/expected=0.0074
429 # 9 -> 10: disruption=0.10 (perfect=0.10); stddev/expected=0.0161
430 #10 -> 11: disruption=0.09 (perfect=0.09); stddev/expected=0.0055
431 #11 -> 12: disruption=0.08 (perfect=0.08); stddev/expected=0.0092
432 #12 -> 13: disruption=0.08 (perfect=0.08); stddev/expected=0.0134
433 #13 -> 14: disruption=0.07 (perfect=0.07); stddev/expected=0.0124
434 #14 -> 15: disruption=0.07 (perfect=0.07); stddev/expected=0.0156
435 #15 -> 16: disruption=0.06 (perfect=0.06); stddev/expected=0.0182
436 #16 -> 17: disruption=0.06 (perfect=0.06); stddev/expected=0.0150
437 #17 -> 18: disruption=0.06 (perfect=0.06); stddev/expected=0.0109
438 #18 -> 19: disruption=0.05 (perfect=0.05); stddev/expected=0.0162
439 #19 -> 20: disruption=0.05 (perfect=0.05); stddev/expected=0.0149
440 #20 -> 21: disruption=0.05 (perfect=0.05); stddev/expected=0.0148
441 #21 -> 22: disruption=0.05 (perfect=0.05); stddev/expected=0.0230
442 #22 -> 23: disruption=0.04 (perfect=0.04); stddev/expected=0.0208
443 #23 -> 24: disruption=0.04 (perfect=0.04); stddev/expected=0.0210
444 #24 -> 25: disruption=0.04 (perfect=0.04); stddev/expected=0.0228
445 #25 -> 26: disruption=0.04 (perfect=0.04); stddev/expected=0.0155
446 #26 -> 27: disruption=0.04 (perfect=0.04); stddev/expected=0.0208
447 #27 -> 28: disruption=0.04 (perfect=0.04); stddev/expected=0.0218
448 #28 -> 29: disruption=0.03 (perfect=0.03); stddev/expected=0.0193
449 #29 -> 30: disruption=0.03 (perfect=0.03); stddev/expected=0.0169
450 #30 -> 31: disruption=0.03 (perfect=0.03); stddev/expected=0.0163
451 #31 -> 32: disruption=0.03 (perfect=0.03); stddev/expected=0.0192
452 #32 -> 33: disruption=0.03 (perfect=0.03); stddev/expected=0.0212
453 #33 -> 34: disruption=0.03 (perfect=0.03); stddev/expected=0.0240
454 #34 -> 35: disruption=0.03 (perfect=0.03); stddev/expected=0.0227
455 #35 -> 36: disruption=0.03 (perfect=0.03); stddev/expected=0.0230
456 #36 -> 37: disruption=0.03 (perfect=0.03); stddev/expected=0.0183
457 #37 -> 38: disruption=0.03 (perfect=0.03); stddev/expected=0.0227
458 #38 -> 39: disruption=0.03 (perfect=0.03); stddev/expected=0.0255
459 #39 -> 40: disruption=0.03 (perfect=0.03); stddev/expected=0.0247
460 #40 -> 41: disruption=0.02 (perfect=0.02); stddev/expected=0.0228
461 #41 -> 42: disruption=0.02 (perfect=0.02); stddev/expected=0.0247
462 #42 -> 43: disruption=0.02 (perfect=0.02); stddev/expected=0.0265
463 #43 -> 44: disruption=0.02 (perfect=0.02); stddev/expected=0.0250
464 #44 -> 45: disruption=0.02 (perfect=0.02); stddev/expected=0.0258
465 #45 -> 46: disruption=0.02 (perfect=0.02); stddev/expected=0.0196
466 #46 -> 47: disruption=0.02 (perfect=0.02); stddev/expected=0.0235
467 #47 -> 48: disruption=0.02 (perfect=0.02); stddev/expected=0.0314
468 #48 -> 49: disruption=0.02 (perfect=0.02); stddev/expected=0.0293
469 #49 -> 50: disruption=0.02 (perfect=0.02); stddev/expected=0.0241
470 #50 -> 51: disruption=0.02 (perfect=0.02); stddev/expected=0.0291
471 #51 -> 52: disruption=0.02 (perfect=0.02); stddev/expected=0.0304
472 #52 -> 53: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
473 #53 -> 54: disruption=0.02 (perfect=0.02); stddev/expected=0.0250
474 #54 -> 55: disruption=0.02 (perfect=0.02); stddev/expected=0.0290
475 #55 -> 56: disruption=0.02 (perfect=0.02); stddev/expected=0.0284
476 #56 -> 57: disruption=0.02 (perfect=0.02); stddev/expected=0.0272
477 #57 -> 58: disruption=0.02 (perfect=0.02); stddev/expected=0.0272
478 #58 -> 59: disruption=0.02 (perfect=0.02); stddev/expected=0.0304
479 #59 -> 60: disruption=0.02 (perfect=0.02); stddev/expected=0.0345
480 #60 -> 61: disruption=0.02 (perfect=0.02); stddev/expected=0.0251
481 #61 -> 62: disruption=0.02 (perfect=0.02); stddev/expected=0.0249
482 #62 -> 63: disruption=0.02 (perfect=0.02); stddev/expected=0.0285
483 #63 -> 64: disruption=0.02 (perfect=0.02); stddev/expected=0.0285
484 AT_CLEANUP
485
486 AT_SETUP([iter_hash symmetric_l3 multipath link selection])
487 AT_CHECK([[ovstest test-multipath 'symmetric_l3,50,iter_hash,1,0,NXM_NX_REG0[]']],
488 [0], [ignore])
489 # 1 -> 2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
490 # 2 -> 3: disruption=0.42 (perfect=0.33); stddev/expected=0.0034
491 # 3 -> 4: disruption=0.25 (perfect=0.25); stddev/expected=0.0082
492 # 4 -> 5: disruption=0.42 (perfect=0.20); stddev/expected=0.0073
493 # 5 -> 6: disruption=0.17 (perfect=0.17); stddev/expected=0.0040
494 # 6 -> 7: disruption=0.14 (perfect=0.14); stddev/expected=0.0069
495 # 7 -> 8: disruption=0.13 (perfect=0.12); stddev/expected=0.0131
496 # 8 -> 9: disruption=0.45 (perfect=0.11); stddev/expected=0.0093
497 # 9 -> 10: disruption=0.10 (perfect=0.10); stddev/expected=0.0127
498 #10 -> 11: disruption=0.09 (perfect=0.09); stddev/expected=0.0134
499 #11 -> 12: disruption=0.08 (perfect=0.08); stddev/expected=0.0101
500 #12 -> 13: disruption=0.08 (perfect=0.08); stddev/expected=0.0127
501 #13 -> 14: disruption=0.07 (perfect=0.07); stddev/expected=0.0115
502 #14 -> 15: disruption=0.07 (perfect=0.07); stddev/expected=0.0100
503 #15 -> 16: disruption=0.06 (perfect=0.06); stddev/expected=0.0111
504 #16 -> 17: disruption=0.47 (perfect=0.06); stddev/expected=0.0137
505 #17 -> 18: disruption=0.05 (perfect=0.06); stddev/expected=0.0204
506 #18 -> 19: disruption=0.05 (perfect=0.05); stddev/expected=0.0082
507 #19 -> 20: disruption=0.05 (perfect=0.05); stddev/expected=0.0124
508 #20 -> 21: disruption=0.05 (perfect=0.05); stddev/expected=0.0203
509 #21 -> 22: disruption=0.05 (perfect=0.05); stddev/expected=0.0196
510 #22 -> 23: disruption=0.04 (perfect=0.04); stddev/expected=0.0183
511 #23 -> 24: disruption=0.04 (perfect=0.04); stddev/expected=0.0212
512 #24 -> 25: disruption=0.04 (perfect=0.04); stddev/expected=0.0176
513 #25 -> 26: disruption=0.04 (perfect=0.04); stddev/expected=0.0173
514 #26 -> 27: disruption=0.04 (perfect=0.04); stddev/expected=0.0159
515 #27 -> 28: disruption=0.03 (perfect=0.04); stddev/expected=0.0168
516 #28 -> 29: disruption=0.03 (perfect=0.03); stddev/expected=0.0190
517 #29 -> 30: disruption=0.03 (perfect=0.03); stddev/expected=0.0305
518 #30 -> 31: disruption=0.03 (perfect=0.03); stddev/expected=0.0282
519 #31 -> 32: disruption=0.03 (perfect=0.03); stddev/expected=0.0255
520 #32 -> 33: disruption=0.49 (perfect=0.03); stddev/expected=0.0220
521 #33 -> 34: disruption=0.03 (perfect=0.03); stddev/expected=0.0188
522 #34 -> 35: disruption=0.03 (perfect=0.03); stddev/expected=0.0203
523 #35 -> 36: disruption=0.03 (perfect=0.03); stddev/expected=0.0207
524 #36 -> 37: disruption=0.03 (perfect=0.03); stddev/expected=0.0261
525 #37 -> 38: disruption=0.03 (perfect=0.03); stddev/expected=0.0226
526 #38 -> 39: disruption=0.03 (perfect=0.03); stddev/expected=0.0233
527 #39 -> 40: disruption=0.03 (perfect=0.03); stddev/expected=0.0161
528 #40 -> 41: disruption=0.03 (perfect=0.02); stddev/expected=0.0303
529 #41 -> 42: disruption=0.02 (perfect=0.02); stddev/expected=0.0249
530 #42 -> 43: disruption=0.02 (perfect=0.02); stddev/expected=0.0262
531 #43 -> 44: disruption=0.02 (perfect=0.02); stddev/expected=0.0260
532 #44 -> 45: disruption=0.02 (perfect=0.02); stddev/expected=0.0266
533 #45 -> 46: disruption=0.02 (perfect=0.02); stddev/expected=0.0287
534 #46 -> 47: disruption=0.02 (perfect=0.02); stddev/expected=0.0213
535 #47 -> 48: disruption=0.02 (perfect=0.02); stddev/expected=0.0301
536 #48 -> 49: disruption=0.02 (perfect=0.02); stddev/expected=0.0230
537 #49 -> 50: disruption=0.02 (perfect=0.02); stddev/expected=0.0248
538 #50 -> 51: disruption=0.02 (perfect=0.02); stddev/expected=0.0203
539 #51 -> 52: disruption=0.02 (perfect=0.02); stddev/expected=0.0235
540 #52 -> 53: disruption=0.02 (perfect=0.02); stddev/expected=0.0340
541 #53 -> 54: disruption=0.02 (perfect=0.02); stddev/expected=0.0264
542 #54 -> 55: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
543 #55 -> 56: disruption=0.02 (perfect=0.02); stddev/expected=0.0246
544 #56 -> 57: disruption=0.02 (perfect=0.02); stddev/expected=0.0270
545 #57 -> 58: disruption=0.02 (perfect=0.02); stddev/expected=0.0299
546 #58 -> 59: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
547 #59 -> 60: disruption=0.02 (perfect=0.02); stddev/expected=0.0275
548 #60 -> 61: disruption=0.02 (perfect=0.02); stddev/expected=0.0289
549 #61 -> 62: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
550 #62 -> 63: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
551 #63 -> 64: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
552 AT_CLEANUP