summaryrefslogtreecommitdiff
path: root/tests/multipath.at
blob: fde006e63b2d399b20c05cc0904d250c6bb25d7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
AT_BANNER([multipath link selection])

# The test-multipath program prints a lot of output on stdout, but each of the
# tests below ignores it because it will vary a bit depending on endianness and
# floating point precision.  test-multipath will output an error message on
# stderr and return with exit code 1 if anything really goes wrong.  In each
# case, we list the (approximate) expected output in a comment to aid debugging
# if the test does fail.

AT_SETUP([modulo_n multipath link selection])
AT_CHECK([[ovstest test-multipath 'eth_src,50,modulo_n,1,0,NXM_NX_REG0[]']],
  [0], [ignore])
# 1 ->  2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
# 2 ->  3: disruption=0.66 (perfect=0.33); stddev/expected=0.0023
# 3 ->  4: disruption=0.75 (perfect=0.25); stddev/expected=0.0061
# 4 ->  5: disruption=0.80 (perfect=0.20); stddev/expected=0.0082
# 5 ->  6: disruption=0.83 (perfect=0.17); stddev/expected=0.0083
# 6 ->  7: disruption=0.86 (perfect=0.14); stddev/expected=0.0061
# 7 ->  8: disruption=0.88 (perfect=0.12); stddev/expected=0.0103
# 8 ->  9: disruption=0.89 (perfect=0.11); stddev/expected=0.0129
# 9 -> 10: disruption=0.90 (perfect=0.10); stddev/expected=0.0091
#10 -> 11: disruption=0.91 (perfect=0.09); stddev/expected=0.0114
#11 -> 12: disruption=0.91 (perfect=0.08); stddev/expected=0.0073
#12 -> 13: disruption=0.92 (perfect=0.08); stddev/expected=0.0165
#13 -> 14: disruption=0.93 (perfect=0.07); stddev/expected=0.0149
#14 -> 15: disruption=0.93 (perfect=0.07); stddev/expected=0.0127
#15 -> 16: disruption=0.94 (perfect=0.06); stddev/expected=0.0142
#16 -> 17: disruption=0.94 (perfect=0.06); stddev/expected=0.0098
#17 -> 18: disruption=0.94 (perfect=0.06); stddev/expected=0.0159
#18 -> 19: disruption=0.95 (perfect=0.05); stddev/expected=0.0121
#19 -> 20: disruption=0.95 (perfect=0.05); stddev/expected=0.0195
#20 -> 21: disruption=0.95 (perfect=0.05); stddev/expected=0.0120
#21 -> 22: disruption=0.95 (perfect=0.05); stddev/expected=0.0181
#22 -> 23: disruption=0.96 (perfect=0.04); stddev/expected=0.0222
#23 -> 24: disruption=0.96 (perfect=0.04); stddev/expected=0.0164
#24 -> 25: disruption=0.96 (perfect=0.04); stddev/expected=0.0146
#25 -> 26: disruption=0.96 (perfect=0.04); stddev/expected=0.0175
#26 -> 27: disruption=0.96 (perfect=0.04); stddev/expected=0.0231
#27 -> 28: disruption=0.96 (perfect=0.04); stddev/expected=0.0172
#28 -> 29: disruption=0.97 (perfect=0.03); stddev/expected=0.0211
#29 -> 30: disruption=0.97 (perfect=0.03); stddev/expected=0.0213
#30 -> 31: disruption=0.97 (perfect=0.03); stddev/expected=0.0253
#31 -> 32: disruption=0.97 (perfect=0.03); stddev/expected=0.0208
#32 -> 33: disruption=0.97 (perfect=0.03); stddev/expected=0.0223
#33 -> 34: disruption=0.97 (perfect=0.03); stddev/expected=0.0215
#34 -> 35: disruption=0.97 (perfect=0.03); stddev/expected=0.0201
#35 -> 36: disruption=0.97 (perfect=0.03); stddev/expected=0.0220
#36 -> 37: disruption=0.97 (perfect=0.03); stddev/expected=0.0221
#37 -> 38: disruption=0.97 (perfect=0.03); stddev/expected=0.0201
#38 -> 39: disruption=0.97 (perfect=0.03); stddev/expected=0.0215
#39 -> 40: disruption=0.97 (perfect=0.03); stddev/expected=0.0271
#40 -> 41: disruption=0.98 (perfect=0.02); stddev/expected=0.0272
#41 -> 42: disruption=0.98 (perfect=0.02); stddev/expected=0.0208
#42 -> 43: disruption=0.98 (perfect=0.02); stddev/expected=0.0226
#43 -> 44: disruption=0.98 (perfect=0.02); stddev/expected=0.0264
#44 -> 45: disruption=0.98 (perfect=0.02); stddev/expected=0.0233
#45 -> 46: disruption=0.98 (perfect=0.02); stddev/expected=0.0285
#46 -> 47: disruption=0.98 (perfect=0.02); stddev/expected=0.0246
#47 -> 48: disruption=0.98 (perfect=0.02); stddev/expected=0.0282
#48 -> 49: disruption=0.98 (perfect=0.02); stddev/expected=0.0233
#49 -> 50: disruption=0.98 (perfect=0.02); stddev/expected=0.0197
#50 -> 51: disruption=0.98 (perfect=0.02); stddev/expected=0.0317
#51 -> 52: disruption=0.98 (perfect=0.02); stddev/expected=0.0283
#52 -> 53: disruption=0.98 (perfect=0.02); stddev/expected=0.0282
#53 -> 54: disruption=0.98 (perfect=0.02); stddev/expected=0.0273
#54 -> 55: disruption=0.98 (perfect=0.02); stddev/expected=0.0283
#55 -> 56: disruption=0.98 (perfect=0.02); stddev/expected=0.0288
#56 -> 57: disruption=0.98 (perfect=0.02); stddev/expected=0.0263
#57 -> 58: disruption=0.98 (perfect=0.02); stddev/expected=0.0339
#58 -> 59: disruption=0.98 (perfect=0.02); stddev/expected=0.0262
#59 -> 60: disruption=0.98 (perfect=0.02); stddev/expected=0.0309
#60 -> 61: disruption=0.98 (perfect=0.02); stddev/expected=0.0285
#61 -> 62: disruption=0.98 (perfect=0.02); stddev/expected=0.0288
#62 -> 63: disruption=0.98 (perfect=0.02); stddev/expected=0.0298
#63 -> 64: disruption=0.98 (perfect=0.02); stddev/expected=0.0277
AT_CLEANUP

AT_SETUP([hash_threshold multipath link selection])
AT_CHECK([[ovstest test-multipath 'eth_src,50,hash_threshold,1,0,NXM_NX_REG0[]']],
  [0], [ignore])
# 1 ->  2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
# 2 ->  3: disruption=0.50 (perfect=0.33); stddev/expected=0.0056
# 3 ->  4: disruption=0.50 (perfect=0.25); stddev/expected=0.0050
# 4 ->  5: disruption=0.50 (perfect=0.20); stddev/expected=0.0074
# 5 ->  6: disruption=0.50 (perfect=0.17); stddev/expected=0.0031
# 6 ->  7: disruption=0.50 (perfect=0.14); stddev/expected=0.0078
# 7 ->  8: disruption=0.50 (perfect=0.12); stddev/expected=0.0085
# 8 ->  9: disruption=0.50 (perfect=0.11); stddev/expected=0.0093
# 9 -> 10: disruption=0.50 (perfect=0.10); stddev/expected=0.0083
#10 -> 11: disruption=0.51 (perfect=0.09); stddev/expected=0.0110
#11 -> 12: disruption=0.50 (perfect=0.08); stddev/expected=0.0124
#12 -> 13: disruption=0.50 (perfect=0.08); stddev/expected=0.0143
#13 -> 14: disruption=0.50 (perfect=0.07); stddev/expected=0.0148
#14 -> 15: disruption=0.50 (perfect=0.07); stddev/expected=0.0099
#15 -> 16: disruption=0.50 (perfect=0.06); stddev/expected=0.0166
#16 -> 17: disruption=0.50 (perfect=0.06); stddev/expected=0.0099
#17 -> 18: disruption=0.50 (perfect=0.06); stddev/expected=0.0194
#18 -> 19: disruption=0.50 (perfect=0.05); stddev/expected=0.0169
#19 -> 20: disruption=0.50 (perfect=0.05); stddev/expected=0.0169
#20 -> 21: disruption=0.50 (perfect=0.05); stddev/expected=0.0185
#21 -> 22: disruption=0.50 (perfect=0.05); stddev/expected=0.0160
#22 -> 23: disruption=0.50 (perfect=0.04); stddev/expected=0.0236
#23 -> 24: disruption=0.50 (perfect=0.04); stddev/expected=0.0147
#24 -> 25: disruption=0.50 (perfect=0.04); stddev/expected=0.0195
#25 -> 26: disruption=0.50 (perfect=0.04); stddev/expected=0.0199
#26 -> 27: disruption=0.50 (perfect=0.04); stddev/expected=0.0227
#27 -> 28: disruption=0.50 (perfect=0.04); stddev/expected=0.0198
#28 -> 29: disruption=0.50 (perfect=0.03); stddev/expected=0.0216
#29 -> 30: disruption=0.50 (perfect=0.03); stddev/expected=0.0233
#30 -> 31: disruption=0.50 (perfect=0.03); stddev/expected=0.0266
#31 -> 32: disruption=0.51 (perfect=0.03); stddev/expected=0.0238
#32 -> 33: disruption=0.50 (perfect=0.03); stddev/expected=0.0194
#33 -> 34: disruption=0.50 (perfect=0.03); stddev/expected=0.0173
#34 -> 35: disruption=0.50 (perfect=0.03); stddev/expected=0.0223
#35 -> 36: disruption=0.50 (perfect=0.03); stddev/expected=0.0220
#36 -> 37: disruption=0.50 (perfect=0.03); stddev/expected=0.0237
#37 -> 38: disruption=0.50 (perfect=0.03); stddev/expected=0.0237
#38 -> 39: disruption=0.50 (perfect=0.03); stddev/expected=0.0251
#39 -> 40: disruption=0.50 (perfect=0.03); stddev/expected=0.0212
#40 -> 41: disruption=0.50 (perfect=0.02); stddev/expected=0.0267
#41 -> 42: disruption=0.50 (perfect=0.02); stddev/expected=0.0242
#42 -> 43: disruption=0.50 (perfect=0.02); stddev/expected=0.0222
#43 -> 44: disruption=0.50 (perfect=0.02); stddev/expected=0.0244
#44 -> 45: disruption=0.50 (perfect=0.02); stddev/expected=0.0231
#45 -> 46: disruption=0.50 (perfect=0.02); stddev/expected=0.0299
#46 -> 47: disruption=0.50 (perfect=0.02); stddev/expected=0.0263
#47 -> 48: disruption=0.50 (perfect=0.02); stddev/expected=0.0307
#48 -> 49: disruption=0.50 (perfect=0.02); stddev/expected=0.0253
#49 -> 50: disruption=0.50 (perfect=0.02); stddev/expected=0.0228
#50 -> 51: disruption=0.50 (perfect=0.02); stddev/expected=0.0273
#51 -> 52: disruption=0.50 (perfect=0.02); stddev/expected=0.0243
#52 -> 53: disruption=0.50 (perfect=0.02); stddev/expected=0.0268
#53 -> 54: disruption=0.50 (perfect=0.02); stddev/expected=0.0251
#54 -> 55: disruption=0.50 (perfect=0.02); stddev/expected=0.0297
#55 -> 56: disruption=0.50 (perfect=0.02); stddev/expected=0.0287
#56 -> 57: disruption=0.50 (perfect=0.02); stddev/expected=0.0299
#57 -> 58: disruption=0.50 (perfect=0.02); stddev/expected=0.0272
#58 -> 59: disruption=0.50 (perfect=0.02); stddev/expected=0.0295
#59 -> 60: disruption=0.50 (perfect=0.02); stddev/expected=0.0312
#60 -> 61: disruption=0.50 (perfect=0.02); stddev/expected=0.0361
#61 -> 62: disruption=0.50 (perfect=0.02); stddev/expected=0.0308
#62 -> 63: disruption=0.50 (perfect=0.02); stddev/expected=0.0283
#63 -> 64: disruption=0.50 (perfect=0.02); stddev/expected=0.0325
AT_CLEANUP

AT_SETUP([hrw multipath link selection])
AT_CHECK([[ovstest test-multipath 'eth_src,50,hrw,1,0,NXM_NX_REG0[]']],
  [0], [ignore])
# 1 ->  2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
# 2 ->  3: disruption=0.33 (perfect=0.33); stddev/expected=0.0033
# 3 ->  4: disruption=0.25 (perfect=0.25); stddev/expected=0.0076
# 4 ->  5: disruption=0.20 (perfect=0.20); stddev/expected=0.0059
# 5 ->  6: disruption=0.17 (perfect=0.17); stddev/expected=0.0030
# 6 ->  7: disruption=0.14 (perfect=0.14); stddev/expected=0.0124
# 7 ->  8: disruption=0.13 (perfect=0.12); stddev/expected=0.0072
# 8 ->  9: disruption=0.11 (perfect=0.11); stddev/expected=0.0074
# 9 -> 10: disruption=0.10 (perfect=0.10); stddev/expected=0.0161
#10 -> 11: disruption=0.09 (perfect=0.09); stddev/expected=0.0055
#11 -> 12: disruption=0.08 (perfect=0.08); stddev/expected=0.0092
#12 -> 13: disruption=0.08 (perfect=0.08); stddev/expected=0.0134
#13 -> 14: disruption=0.07 (perfect=0.07); stddev/expected=0.0124
#14 -> 15: disruption=0.07 (perfect=0.07); stddev/expected=0.0156
#15 -> 16: disruption=0.06 (perfect=0.06); stddev/expected=0.0182
#16 -> 17: disruption=0.06 (perfect=0.06); stddev/expected=0.0150
#17 -> 18: disruption=0.06 (perfect=0.06); stddev/expected=0.0109
#18 -> 19: disruption=0.05 (perfect=0.05); stddev/expected=0.0162
#19 -> 20: disruption=0.05 (perfect=0.05); stddev/expected=0.0149
#20 -> 21: disruption=0.05 (perfect=0.05); stddev/expected=0.0148
#21 -> 22: disruption=0.05 (perfect=0.05); stddev/expected=0.0230
#22 -> 23: disruption=0.04 (perfect=0.04); stddev/expected=0.0208
#23 -> 24: disruption=0.04 (perfect=0.04); stddev/expected=0.0210
#24 -> 25: disruption=0.04 (perfect=0.04); stddev/expected=0.0228
#25 -> 26: disruption=0.04 (perfect=0.04); stddev/expected=0.0155
#26 -> 27: disruption=0.04 (perfect=0.04); stddev/expected=0.0208
#27 -> 28: disruption=0.04 (perfect=0.04); stddev/expected=0.0218
#28 -> 29: disruption=0.03 (perfect=0.03); stddev/expected=0.0193
#29 -> 30: disruption=0.03 (perfect=0.03); stddev/expected=0.0169
#30 -> 31: disruption=0.03 (perfect=0.03); stddev/expected=0.0163
#31 -> 32: disruption=0.03 (perfect=0.03); stddev/expected=0.0192
#32 -> 33: disruption=0.03 (perfect=0.03); stddev/expected=0.0212
#33 -> 34: disruption=0.03 (perfect=0.03); stddev/expected=0.0240
#34 -> 35: disruption=0.03 (perfect=0.03); stddev/expected=0.0227
#35 -> 36: disruption=0.03 (perfect=0.03); stddev/expected=0.0230
#36 -> 37: disruption=0.03 (perfect=0.03); stddev/expected=0.0183
#37 -> 38: disruption=0.03 (perfect=0.03); stddev/expected=0.0227
#38 -> 39: disruption=0.03 (perfect=0.03); stddev/expected=0.0255
#39 -> 40: disruption=0.03 (perfect=0.03); stddev/expected=0.0247
#40 -> 41: disruption=0.02 (perfect=0.02); stddev/expected=0.0228
#41 -> 42: disruption=0.02 (perfect=0.02); stddev/expected=0.0247
#42 -> 43: disruption=0.02 (perfect=0.02); stddev/expected=0.0265
#43 -> 44: disruption=0.02 (perfect=0.02); stddev/expected=0.0250
#44 -> 45: disruption=0.02 (perfect=0.02); stddev/expected=0.0258
#45 -> 46: disruption=0.02 (perfect=0.02); stddev/expected=0.0196
#46 -> 47: disruption=0.02 (perfect=0.02); stddev/expected=0.0235
#47 -> 48: disruption=0.02 (perfect=0.02); stddev/expected=0.0314
#48 -> 49: disruption=0.02 (perfect=0.02); stddev/expected=0.0293
#49 -> 50: disruption=0.02 (perfect=0.02); stddev/expected=0.0241
#50 -> 51: disruption=0.02 (perfect=0.02); stddev/expected=0.0291
#51 -> 52: disruption=0.02 (perfect=0.02); stddev/expected=0.0304
#52 -> 53: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
#53 -> 54: disruption=0.02 (perfect=0.02); stddev/expected=0.0250
#54 -> 55: disruption=0.02 (perfect=0.02); stddev/expected=0.0290
#55 -> 56: disruption=0.02 (perfect=0.02); stddev/expected=0.0284
#56 -> 57: disruption=0.02 (perfect=0.02); stddev/expected=0.0272
#57 -> 58: disruption=0.02 (perfect=0.02); stddev/expected=0.0272
#58 -> 59: disruption=0.02 (perfect=0.02); stddev/expected=0.0304
#59 -> 60: disruption=0.02 (perfect=0.02); stddev/expected=0.0345
#60 -> 61: disruption=0.02 (perfect=0.02); stddev/expected=0.0251
#61 -> 62: disruption=0.02 (perfect=0.02); stddev/expected=0.0249
#62 -> 63: disruption=0.02 (perfect=0.02); stddev/expected=0.0285
#63 -> 64: disruption=0.02 (perfect=0.02); stddev/expected=0.0285
AT_CLEANUP

AT_SETUP([iter_hash multipath link selection])
AT_CHECK([[ovstest test-multipath 'eth_src,50,iter_hash,1,0,NXM_NX_REG0[]']],
  [0], [ignore])
# 1 ->  2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
# 2 ->  3: disruption=0.42 (perfect=0.33); stddev/expected=0.0034
# 3 ->  4: disruption=0.25 (perfect=0.25); stddev/expected=0.0082
# 4 ->  5: disruption=0.42 (perfect=0.20); stddev/expected=0.0073
# 5 ->  6: disruption=0.17 (perfect=0.17); stddev/expected=0.0040
# 6 ->  7: disruption=0.14 (perfect=0.14); stddev/expected=0.0069
# 7 ->  8: disruption=0.13 (perfect=0.12); stddev/expected=0.0131
# 8 ->  9: disruption=0.45 (perfect=0.11); stddev/expected=0.0093
# 9 -> 10: disruption=0.10 (perfect=0.10); stddev/expected=0.0127
#10 -> 11: disruption=0.09 (perfect=0.09); stddev/expected=0.0134
#11 -> 12: disruption=0.08 (perfect=0.08); stddev/expected=0.0101
#12 -> 13: disruption=0.08 (perfect=0.08); stddev/expected=0.0127
#13 -> 14: disruption=0.07 (perfect=0.07); stddev/expected=0.0115
#14 -> 15: disruption=0.07 (perfect=0.07); stddev/expected=0.0100
#15 -> 16: disruption=0.06 (perfect=0.06); stddev/expected=0.0111
#16 -> 17: disruption=0.47 (perfect=0.06); stddev/expected=0.0137
#17 -> 18: disruption=0.05 (perfect=0.06); stddev/expected=0.0204
#18 -> 19: disruption=0.05 (perfect=0.05); stddev/expected=0.0082
#19 -> 20: disruption=0.05 (perfect=0.05); stddev/expected=0.0124
#20 -> 21: disruption=0.05 (perfect=0.05); stddev/expected=0.0203
#21 -> 22: disruption=0.05 (perfect=0.05); stddev/expected=0.0196
#22 -> 23: disruption=0.04 (perfect=0.04); stddev/expected=0.0183
#23 -> 24: disruption=0.04 (perfect=0.04); stddev/expected=0.0212
#24 -> 25: disruption=0.04 (perfect=0.04); stddev/expected=0.0176
#25 -> 26: disruption=0.04 (perfect=0.04); stddev/expected=0.0173
#26 -> 27: disruption=0.04 (perfect=0.04); stddev/expected=0.0159
#27 -> 28: disruption=0.03 (perfect=0.04); stddev/expected=0.0168
#28 -> 29: disruption=0.03 (perfect=0.03); stddev/expected=0.0190
#29 -> 30: disruption=0.03 (perfect=0.03); stddev/expected=0.0305
#30 -> 31: disruption=0.03 (perfect=0.03); stddev/expected=0.0282
#31 -> 32: disruption=0.03 (perfect=0.03); stddev/expected=0.0255
#32 -> 33: disruption=0.49 (perfect=0.03); stddev/expected=0.0220
#33 -> 34: disruption=0.03 (perfect=0.03); stddev/expected=0.0188
#34 -> 35: disruption=0.03 (perfect=0.03); stddev/expected=0.0203
#35 -> 36: disruption=0.03 (perfect=0.03); stddev/expected=0.0207
#36 -> 37: disruption=0.03 (perfect=0.03); stddev/expected=0.0261
#37 -> 38: disruption=0.03 (perfect=0.03); stddev/expected=0.0226
#38 -> 39: disruption=0.03 (perfect=0.03); stddev/expected=0.0233
#39 -> 40: disruption=0.03 (perfect=0.03); stddev/expected=0.0161
#40 -> 41: disruption=0.03 (perfect=0.02); stddev/expected=0.0303
#41 -> 42: disruption=0.02 (perfect=0.02); stddev/expected=0.0249
#42 -> 43: disruption=0.02 (perfect=0.02); stddev/expected=0.0262
#43 -> 44: disruption=0.02 (perfect=0.02); stddev/expected=0.0260
#44 -> 45: disruption=0.02 (perfect=0.02); stddev/expected=0.0266
#45 -> 46: disruption=0.02 (perfect=0.02); stddev/expected=0.0287
#46 -> 47: disruption=0.02 (perfect=0.02); stddev/expected=0.0213
#47 -> 48: disruption=0.02 (perfect=0.02); stddev/expected=0.0301
#48 -> 49: disruption=0.02 (perfect=0.02); stddev/expected=0.0230
#49 -> 50: disruption=0.02 (perfect=0.02); stddev/expected=0.0248
#50 -> 51: disruption=0.02 (perfect=0.02); stddev/expected=0.0203
#51 -> 52: disruption=0.02 (perfect=0.02); stddev/expected=0.0235
#52 -> 53: disruption=0.02 (perfect=0.02); stddev/expected=0.0340
#53 -> 54: disruption=0.02 (perfect=0.02); stddev/expected=0.0264
#54 -> 55: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
#55 -> 56: disruption=0.02 (perfect=0.02); stddev/expected=0.0246
#56 -> 57: disruption=0.02 (perfect=0.02); stddev/expected=0.0270
#57 -> 58: disruption=0.02 (perfect=0.02); stddev/expected=0.0299
#58 -> 59: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
#59 -> 60: disruption=0.02 (perfect=0.02); stddev/expected=0.0275
#60 -> 61: disruption=0.02 (perfect=0.02); stddev/expected=0.0289
#61 -> 62: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
#62 -> 63: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
#63 -> 64: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
AT_CLEANUP

AT_SETUP([modulo_n multipath symmetric_l3 link selection])
AT_CHECK([[ovstest test-multipath 'symmetric_l3,50,modulo_n,1,0,NXM_NX_REG0[]']],
  [0], [ignore])
# 1 ->  2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
# 2 ->  3: disruption=0.66 (perfect=0.33); stddev/expected=0.0023
# 3 ->  4: disruption=0.75 (perfect=0.25); stddev/expected=0.0061
# 4 ->  5: disruption=0.80 (perfect=0.20); stddev/expected=0.0082
# 5 ->  6: disruption=0.83 (perfect=0.17); stddev/expected=0.0083
# 6 ->  7: disruption=0.86 (perfect=0.14); stddev/expected=0.0061
# 7 ->  8: disruption=0.88 (perfect=0.12); stddev/expected=0.0103
# 8 ->  9: disruption=0.89 (perfect=0.11); stddev/expected=0.0129
# 9 -> 10: disruption=0.90 (perfect=0.10); stddev/expected=0.0091
#10 -> 11: disruption=0.91 (perfect=0.09); stddev/expected=0.0114
#11 -> 12: disruption=0.91 (perfect=0.08); stddev/expected=0.0073
#12 -> 13: disruption=0.92 (perfect=0.08); stddev/expected=0.0165
#13 -> 14: disruption=0.93 (perfect=0.07); stddev/expected=0.0149
#14 -> 15: disruption=0.93 (perfect=0.07); stddev/expected=0.0127
#15 -> 16: disruption=0.94 (perfect=0.06); stddev/expected=0.0142
#16 -> 17: disruption=0.94 (perfect=0.06); stddev/expected=0.0098
#17 -> 18: disruption=0.94 (perfect=0.06); stddev/expected=0.0159
#18 -> 19: disruption=0.95 (perfect=0.05); stddev/expected=0.0121
#19 -> 20: disruption=0.95 (perfect=0.05); stddev/expected=0.0195
#20 -> 21: disruption=0.95 (perfect=0.05); stddev/expected=0.0120
#21 -> 22: disruption=0.95 (perfect=0.05); stddev/expected=0.0181
#22 -> 23: disruption=0.96 (perfect=0.04); stddev/expected=0.0222
#23 -> 24: disruption=0.96 (perfect=0.04); stddev/expected=0.0164
#24 -> 25: disruption=0.96 (perfect=0.04); stddev/expected=0.0146
#25 -> 26: disruption=0.96 (perfect=0.04); stddev/expected=0.0175
#26 -> 27: disruption=0.96 (perfect=0.04); stddev/expected=0.0231
#27 -> 28: disruption=0.96 (perfect=0.04); stddev/expected=0.0172
#28 -> 29: disruption=0.97 (perfect=0.03); stddev/expected=0.0211
#29 -> 30: disruption=0.97 (perfect=0.03); stddev/expected=0.0213
#30 -> 31: disruption=0.97 (perfect=0.03); stddev/expected=0.0253
#31 -> 32: disruption=0.97 (perfect=0.03); stddev/expected=0.0208
#32 -> 33: disruption=0.97 (perfect=0.03); stddev/expected=0.0223
#33 -> 34: disruption=0.97 (perfect=0.03); stddev/expected=0.0215
#34 -> 35: disruption=0.97 (perfect=0.03); stddev/expected=0.0201
#35 -> 36: disruption=0.97 (perfect=0.03); stddev/expected=0.0220
#36 -> 37: disruption=0.97 (perfect=0.03); stddev/expected=0.0221
#37 -> 38: disruption=0.97 (perfect=0.03); stddev/expected=0.0201
#38 -> 39: disruption=0.97 (perfect=0.03); stddev/expected=0.0215
#39 -> 40: disruption=0.97 (perfect=0.03); stddev/expected=0.0271
#40 -> 41: disruption=0.98 (perfect=0.02); stddev/expected=0.0272
#41 -> 42: disruption=0.98 (perfect=0.02); stddev/expected=0.0208
#42 -> 43: disruption=0.98 (perfect=0.02); stddev/expected=0.0226
#43 -> 44: disruption=0.98 (perfect=0.02); stddev/expected=0.0264
#44 -> 45: disruption=0.98 (perfect=0.02); stddev/expected=0.0233
#45 -> 46: disruption=0.98 (perfect=0.02); stddev/expected=0.0285
#46 -> 47: disruption=0.98 (perfect=0.02); stddev/expected=0.0246
#47 -> 48: disruption=0.98 (perfect=0.02); stddev/expected=0.0282
#48 -> 49: disruption=0.98 (perfect=0.02); stddev/expected=0.0233
#49 -> 50: disruption=0.98 (perfect=0.02); stddev/expected=0.0197
#50 -> 51: disruption=0.98 (perfect=0.02); stddev/expected=0.0317
#51 -> 52: disruption=0.98 (perfect=0.02); stddev/expected=0.0283
#52 -> 53: disruption=0.98 (perfect=0.02); stddev/expected=0.0282
#53 -> 54: disruption=0.98 (perfect=0.02); stddev/expected=0.0273
#54 -> 55: disruption=0.98 (perfect=0.02); stddev/expected=0.0283
#55 -> 56: disruption=0.98 (perfect=0.02); stddev/expected=0.0288
#56 -> 57: disruption=0.98 (perfect=0.02); stddev/expected=0.0263
#57 -> 58: disruption=0.98 (perfect=0.02); stddev/expected=0.0339
#58 -> 59: disruption=0.98 (perfect=0.02); stddev/expected=0.0262
#59 -> 60: disruption=0.98 (perfect=0.02); stddev/expected=0.0309
#60 -> 61: disruption=0.98 (perfect=0.02); stddev/expected=0.0285
#61 -> 62: disruption=0.98 (perfect=0.02); stddev/expected=0.0288
#62 -> 63: disruption=0.98 (perfect=0.02); stddev/expected=0.0298
#63 -> 64: disruption=0.98 (perfect=0.02); stddev/expected=0.0277
AT_CLEANUP

AT_SETUP([hash_threshold multipath symmetric_l3 link selection])
AT_CHECK([[ovstest test-multipath 'symmetric_l3,50,hash_threshold,1,0,NXM_NX_REG0[]']],
  [0], [ignore])
# 1 ->  2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
# 2 ->  3: disruption=0.50 (perfect=0.33); stddev/expected=0.0056
# 3 ->  4: disruption=0.50 (perfect=0.25); stddev/expected=0.0050
# 4 ->  5: disruption=0.50 (perfect=0.20); stddev/expected=0.0074
# 5 ->  6: disruption=0.50 (perfect=0.17); stddev/expected=0.0031
# 6 ->  7: disruption=0.50 (perfect=0.14); stddev/expected=0.0078
# 7 ->  8: disruption=0.50 (perfect=0.12); stddev/expected=0.0085
# 8 ->  9: disruption=0.50 (perfect=0.11); stddev/expected=0.0093
# 9 -> 10: disruption=0.50 (perfect=0.10); stddev/expected=0.0083
#10 -> 11: disruption=0.51 (perfect=0.09); stddev/expected=0.0110
#11 -> 12: disruption=0.50 (perfect=0.08); stddev/expected=0.0124
#12 -> 13: disruption=0.50 (perfect=0.08); stddev/expected=0.0143
#13 -> 14: disruption=0.50 (perfect=0.07); stddev/expected=0.0148
#14 -> 15: disruption=0.50 (perfect=0.07); stddev/expected=0.0099
#15 -> 16: disruption=0.50 (perfect=0.06); stddev/expected=0.0166
#16 -> 17: disruption=0.50 (perfect=0.06); stddev/expected=0.0099
#17 -> 18: disruption=0.50 (perfect=0.06); stddev/expected=0.0194
#18 -> 19: disruption=0.50 (perfect=0.05); stddev/expected=0.0169
#19 -> 20: disruption=0.50 (perfect=0.05); stddev/expected=0.0169
#20 -> 21: disruption=0.50 (perfect=0.05); stddev/expected=0.0185
#21 -> 22: disruption=0.50 (perfect=0.05); stddev/expected=0.0160
#22 -> 23: disruption=0.50 (perfect=0.04); stddev/expected=0.0236
#23 -> 24: disruption=0.50 (perfect=0.04); stddev/expected=0.0147
#24 -> 25: disruption=0.50 (perfect=0.04); stddev/expected=0.0195
#25 -> 26: disruption=0.50 (perfect=0.04); stddev/expected=0.0199
#26 -> 27: disruption=0.50 (perfect=0.04); stddev/expected=0.0227
#27 -> 28: disruption=0.50 (perfect=0.04); stddev/expected=0.0198
#28 -> 29: disruption=0.50 (perfect=0.03); stddev/expected=0.0216
#29 -> 30: disruption=0.50 (perfect=0.03); stddev/expected=0.0233
#30 -> 31: disruption=0.50 (perfect=0.03); stddev/expected=0.0266
#31 -> 32: disruption=0.51 (perfect=0.03); stddev/expected=0.0238
#32 -> 33: disruption=0.50 (perfect=0.03); stddev/expected=0.0194
#33 -> 34: disruption=0.50 (perfect=0.03); stddev/expected=0.0173
#34 -> 35: disruption=0.50 (perfect=0.03); stddev/expected=0.0223
#35 -> 36: disruption=0.50 (perfect=0.03); stddev/expected=0.0220
#36 -> 37: disruption=0.50 (perfect=0.03); stddev/expected=0.0237
#37 -> 38: disruption=0.50 (perfect=0.03); stddev/expected=0.0237
#38 -> 39: disruption=0.50 (perfect=0.03); stddev/expected=0.0251
#39 -> 40: disruption=0.50 (perfect=0.03); stddev/expected=0.0212
#40 -> 41: disruption=0.50 (perfect=0.02); stddev/expected=0.0267
#41 -> 42: disruption=0.50 (perfect=0.02); stddev/expected=0.0242
#42 -> 43: disruption=0.50 (perfect=0.02); stddev/expected=0.0222
#43 -> 44: disruption=0.50 (perfect=0.02); stddev/expected=0.0244
#44 -> 45: disruption=0.50 (perfect=0.02); stddev/expected=0.0231
#45 -> 46: disruption=0.50 (perfect=0.02); stddev/expected=0.0299
#46 -> 47: disruption=0.50 (perfect=0.02); stddev/expected=0.0263
#47 -> 48: disruption=0.50 (perfect=0.02); stddev/expected=0.0307
#48 -> 49: disruption=0.50 (perfect=0.02); stddev/expected=0.0253
#49 -> 50: disruption=0.50 (perfect=0.02); stddev/expected=0.0228
#50 -> 51: disruption=0.50 (perfect=0.02); stddev/expected=0.0273
#51 -> 52: disruption=0.50 (perfect=0.02); stddev/expected=0.0243
#52 -> 53: disruption=0.50 (perfect=0.02); stddev/expected=0.0268
#53 -> 54: disruption=0.50 (perfect=0.02); stddev/expected=0.0251
#54 -> 55: disruption=0.50 (perfect=0.02); stddev/expected=0.0297
#55 -> 56: disruption=0.50 (perfect=0.02); stddev/expected=0.0287
#56 -> 57: disruption=0.50 (perfect=0.02); stddev/expected=0.0299
#57 -> 58: disruption=0.50 (perfect=0.02); stddev/expected=0.0272
#58 -> 59: disruption=0.50 (perfect=0.02); stddev/expected=0.0295
#59 -> 60: disruption=0.50 (perfect=0.02); stddev/expected=0.0312
#60 -> 61: disruption=0.50 (perfect=0.02); stddev/expected=0.0361
#61 -> 62: disruption=0.50 (perfect=0.02); stddev/expected=0.0308
#62 -> 63: disruption=0.50 (perfect=0.02); stddev/expected=0.0283
#63 -> 64: disruption=0.50 (perfect=0.02); stddev/expected=0.0325
AT_CLEANUP

AT_SETUP([hrw multipath symmetric_l3 link selection])
AT_CHECK([[ovstest test-multipath 'symmetric_l3,50,hrw,1,0,NXM_NX_REG0[]']],
  [0], [ignore])
# 1 ->  2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
# 2 ->  3: disruption=0.33 (perfect=0.33); stddev/expected=0.0033
# 3 ->  4: disruption=0.25 (perfect=0.25); stddev/expected=0.0076
# 4 ->  5: disruption=0.20 (perfect=0.20); stddev/expected=0.0059
# 5 ->  6: disruption=0.17 (perfect=0.17); stddev/expected=0.0030
# 6 ->  7: disruption=0.14 (perfect=0.14); stddev/expected=0.0124
# 7 ->  8: disruption=0.13 (perfect=0.12); stddev/expected=0.0072
# 8 ->  9: disruption=0.11 (perfect=0.11); stddev/expected=0.0074
# 9 -> 10: disruption=0.10 (perfect=0.10); stddev/expected=0.0161
#10 -> 11: disruption=0.09 (perfect=0.09); stddev/expected=0.0055
#11 -> 12: disruption=0.08 (perfect=0.08); stddev/expected=0.0092
#12 -> 13: disruption=0.08 (perfect=0.08); stddev/expected=0.0134
#13 -> 14: disruption=0.07 (perfect=0.07); stddev/expected=0.0124
#14 -> 15: disruption=0.07 (perfect=0.07); stddev/expected=0.0156
#15 -> 16: disruption=0.06 (perfect=0.06); stddev/expected=0.0182
#16 -> 17: disruption=0.06 (perfect=0.06); stddev/expected=0.0150
#17 -> 18: disruption=0.06 (perfect=0.06); stddev/expected=0.0109
#18 -> 19: disruption=0.05 (perfect=0.05); stddev/expected=0.0162
#19 -> 20: disruption=0.05 (perfect=0.05); stddev/expected=0.0149
#20 -> 21: disruption=0.05 (perfect=0.05); stddev/expected=0.0148
#21 -> 22: disruption=0.05 (perfect=0.05); stddev/expected=0.0230
#22 -> 23: disruption=0.04 (perfect=0.04); stddev/expected=0.0208
#23 -> 24: disruption=0.04 (perfect=0.04); stddev/expected=0.0210
#24 -> 25: disruption=0.04 (perfect=0.04); stddev/expected=0.0228
#25 -> 26: disruption=0.04 (perfect=0.04); stddev/expected=0.0155
#26 -> 27: disruption=0.04 (perfect=0.04); stddev/expected=0.0208
#27 -> 28: disruption=0.04 (perfect=0.04); stddev/expected=0.0218
#28 -> 29: disruption=0.03 (perfect=0.03); stddev/expected=0.0193
#29 -> 30: disruption=0.03 (perfect=0.03); stddev/expected=0.0169
#30 -> 31: disruption=0.03 (perfect=0.03); stddev/expected=0.0163
#31 -> 32: disruption=0.03 (perfect=0.03); stddev/expected=0.0192
#32 -> 33: disruption=0.03 (perfect=0.03); stddev/expected=0.0212
#33 -> 34: disruption=0.03 (perfect=0.03); stddev/expected=0.0240
#34 -> 35: disruption=0.03 (perfect=0.03); stddev/expected=0.0227
#35 -> 36: disruption=0.03 (perfect=0.03); stddev/expected=0.0230
#36 -> 37: disruption=0.03 (perfect=0.03); stddev/expected=0.0183
#37 -> 38: disruption=0.03 (perfect=0.03); stddev/expected=0.0227
#38 -> 39: disruption=0.03 (perfect=0.03); stddev/expected=0.0255
#39 -> 40: disruption=0.03 (perfect=0.03); stddev/expected=0.0247
#40 -> 41: disruption=0.02 (perfect=0.02); stddev/expected=0.0228
#41 -> 42: disruption=0.02 (perfect=0.02); stddev/expected=0.0247
#42 -> 43: disruption=0.02 (perfect=0.02); stddev/expected=0.0265
#43 -> 44: disruption=0.02 (perfect=0.02); stddev/expected=0.0250
#44 -> 45: disruption=0.02 (perfect=0.02); stddev/expected=0.0258
#45 -> 46: disruption=0.02 (perfect=0.02); stddev/expected=0.0196
#46 -> 47: disruption=0.02 (perfect=0.02); stddev/expected=0.0235
#47 -> 48: disruption=0.02 (perfect=0.02); stddev/expected=0.0314
#48 -> 49: disruption=0.02 (perfect=0.02); stddev/expected=0.0293
#49 -> 50: disruption=0.02 (perfect=0.02); stddev/expected=0.0241
#50 -> 51: disruption=0.02 (perfect=0.02); stddev/expected=0.0291
#51 -> 52: disruption=0.02 (perfect=0.02); stddev/expected=0.0304
#52 -> 53: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
#53 -> 54: disruption=0.02 (perfect=0.02); stddev/expected=0.0250
#54 -> 55: disruption=0.02 (perfect=0.02); stddev/expected=0.0290
#55 -> 56: disruption=0.02 (perfect=0.02); stddev/expected=0.0284
#56 -> 57: disruption=0.02 (perfect=0.02); stddev/expected=0.0272
#57 -> 58: disruption=0.02 (perfect=0.02); stddev/expected=0.0272
#58 -> 59: disruption=0.02 (perfect=0.02); stddev/expected=0.0304
#59 -> 60: disruption=0.02 (perfect=0.02); stddev/expected=0.0345
#60 -> 61: disruption=0.02 (perfect=0.02); stddev/expected=0.0251
#61 -> 62: disruption=0.02 (perfect=0.02); stddev/expected=0.0249
#62 -> 63: disruption=0.02 (perfect=0.02); stddev/expected=0.0285
#63 -> 64: disruption=0.02 (perfect=0.02); stddev/expected=0.0285
AT_CLEANUP

AT_SETUP([iter_hash symmetric_l3 multipath link selection])
AT_CHECK([[ovstest test-multipath 'symmetric_l3,50,iter_hash,1,0,NXM_NX_REG0[]']],
  [0], [ignore])
# 1 ->  2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
# 2 ->  3: disruption=0.42 (perfect=0.33); stddev/expected=0.0034
# 3 ->  4: disruption=0.25 (perfect=0.25); stddev/expected=0.0082
# 4 ->  5: disruption=0.42 (perfect=0.20); stddev/expected=0.0073
# 5 ->  6: disruption=0.17 (perfect=0.17); stddev/expected=0.0040
# 6 ->  7: disruption=0.14 (perfect=0.14); stddev/expected=0.0069
# 7 ->  8: disruption=0.13 (perfect=0.12); stddev/expected=0.0131
# 8 ->  9: disruption=0.45 (perfect=0.11); stddev/expected=0.0093
# 9 -> 10: disruption=0.10 (perfect=0.10); stddev/expected=0.0127
#10 -> 11: disruption=0.09 (perfect=0.09); stddev/expected=0.0134
#11 -> 12: disruption=0.08 (perfect=0.08); stddev/expected=0.0101
#12 -> 13: disruption=0.08 (perfect=0.08); stddev/expected=0.0127
#13 -> 14: disruption=0.07 (perfect=0.07); stddev/expected=0.0115
#14 -> 15: disruption=0.07 (perfect=0.07); stddev/expected=0.0100
#15 -> 16: disruption=0.06 (perfect=0.06); stddev/expected=0.0111
#16 -> 17: disruption=0.47 (perfect=0.06); stddev/expected=0.0137
#17 -> 18: disruption=0.05 (perfect=0.06); stddev/expected=0.0204
#18 -> 19: disruption=0.05 (perfect=0.05); stddev/expected=0.0082
#19 -> 20: disruption=0.05 (perfect=0.05); stddev/expected=0.0124
#20 -> 21: disruption=0.05 (perfect=0.05); stddev/expected=0.0203
#21 -> 22: disruption=0.05 (perfect=0.05); stddev/expected=0.0196
#22 -> 23: disruption=0.04 (perfect=0.04); stddev/expected=0.0183
#23 -> 24: disruption=0.04 (perfect=0.04); stddev/expected=0.0212
#24 -> 25: disruption=0.04 (perfect=0.04); stddev/expected=0.0176
#25 -> 26: disruption=0.04 (perfect=0.04); stddev/expected=0.0173
#26 -> 27: disruption=0.04 (perfect=0.04); stddev/expected=0.0159
#27 -> 28: disruption=0.03 (perfect=0.04); stddev/expected=0.0168
#28 -> 29: disruption=0.03 (perfect=0.03); stddev/expected=0.0190
#29 -> 30: disruption=0.03 (perfect=0.03); stddev/expected=0.0305
#30 -> 31: disruption=0.03 (perfect=0.03); stddev/expected=0.0282
#31 -> 32: disruption=0.03 (perfect=0.03); stddev/expected=0.0255
#32 -> 33: disruption=0.49 (perfect=0.03); stddev/expected=0.0220
#33 -> 34: disruption=0.03 (perfect=0.03); stddev/expected=0.0188
#34 -> 35: disruption=0.03 (perfect=0.03); stddev/expected=0.0203
#35 -> 36: disruption=0.03 (perfect=0.03); stddev/expected=0.0207
#36 -> 37: disruption=0.03 (perfect=0.03); stddev/expected=0.0261
#37 -> 38: disruption=0.03 (perfect=0.03); stddev/expected=0.0226
#38 -> 39: disruption=0.03 (perfect=0.03); stddev/expected=0.0233
#39 -> 40: disruption=0.03 (perfect=0.03); stddev/expected=0.0161
#40 -> 41: disruption=0.03 (perfect=0.02); stddev/expected=0.0303
#41 -> 42: disruption=0.02 (perfect=0.02); stddev/expected=0.0249
#42 -> 43: disruption=0.02 (perfect=0.02); stddev/expected=0.0262
#43 -> 44: disruption=0.02 (perfect=0.02); stddev/expected=0.0260
#44 -> 45: disruption=0.02 (perfect=0.02); stddev/expected=0.0266
#45 -> 46: disruption=0.02 (perfect=0.02); stddev/expected=0.0287
#46 -> 47: disruption=0.02 (perfect=0.02); stddev/expected=0.0213
#47 -> 48: disruption=0.02 (perfect=0.02); stddev/expected=0.0301
#48 -> 49: disruption=0.02 (perfect=0.02); stddev/expected=0.0230
#49 -> 50: disruption=0.02 (perfect=0.02); stddev/expected=0.0248
#50 -> 51: disruption=0.02 (perfect=0.02); stddev/expected=0.0203
#51 -> 52: disruption=0.02 (perfect=0.02); stddev/expected=0.0235
#52 -> 53: disruption=0.02 (perfect=0.02); stddev/expected=0.0340
#53 -> 54: disruption=0.02 (perfect=0.02); stddev/expected=0.0264
#54 -> 55: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
#55 -> 56: disruption=0.02 (perfect=0.02); stddev/expected=0.0246
#56 -> 57: disruption=0.02 (perfect=0.02); stddev/expected=0.0270
#57 -> 58: disruption=0.02 (perfect=0.02); stddev/expected=0.0299
#58 -> 59: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
#59 -> 60: disruption=0.02 (perfect=0.02); stddev/expected=0.0275
#60 -> 61: disruption=0.02 (perfect=0.02); stddev/expected=0.0289
#61 -> 62: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
#62 -> 63: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
#63 -> 64: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
AT_CLEANUP