@@ -42,56 +42,55 @@ fn peek_does_not_change_the_decision() {
42
42
let lb = RateLimiter :: direct_with_clock ( Quota :: per_second ( nonzero ! ( 2u32 ) ) , & clock) ;
43
43
let ms = Duration :: from_millis ( 1 ) ;
44
44
45
+ // no key is always positive outcome
46
+ for _ in 0 ..10 {
47
+ clock. advance ( ms) ;
48
+ assert_eq ! ( Ok ( ( ) ) , lb. peek( ) , "Now: {:?}" , clock. now( ) ) ;
49
+ }
45
50
46
- // no key is always positive outcome
47
- for _ in 0 ..10 {
48
- clock. advance ( ms) ;
49
- assert_eq ! ( Ok ( ( ) ) , lb. peek( ) , "Now: {:?}" , clock. now( ) ) ;
50
- }
51
+ // use up our burst capacity (2 in the first second):
52
+ assert_eq ! ( Ok ( ( ) ) , lb. check( ) , "Now: {:?}" , clock. now( ) ) ;
51
53
52
- // use up our burst capacity (2 in the first second):
53
- assert_eq ! ( Ok ( ( ) ) , lb. check( ) , "Now: {:?}" , clock. now( ) ) ;
54
+ for _ in 0 ..10 {
55
+ clock. advance ( ms) ;
56
+ assert_eq ! ( Ok ( ( ) ) , lb. peek( ) , "Now: {:?}" , clock. now( ) ) ;
57
+ }
54
58
55
- for _ in 0 ..10 {
56
- clock. advance ( ms) ;
57
- assert_eq ! ( Ok ( ( ) ) , lb. peek( ) , "Now: {:?}" , clock. now( ) ) ;
58
- }
59
+ clock. advance ( ms) ;
60
+ assert_eq ! ( Ok ( ( ) ) , lb. check( ) , "Now: {:?}" , clock. now( ) ) ;
59
61
62
+ for _ in 0 ..10 {
60
63
clock. advance ( ms) ;
61
- assert_eq ! ( Ok ( ( ) ) , lb. check( ) , "Now: {:?}" , clock. now( ) ) ;
64
+ assert_ne ! ( Ok ( ( ) ) , lb. peek( ) , "Now: {:?}" , clock. now( ) ) ;
65
+ }
62
66
63
- for _ in 0 ..10 {
64
- clock. advance ( ms) ;
65
- assert_ne ! ( Ok ( ( ) ) , lb. peek( ) , "Now: {:?}" , clock. now( ) ) ;
66
- }
67
+ clock. advance ( ms) ;
68
+ assert_ne ! ( Ok ( ( ) ) , lb. check( ) , "Now: {:?}" , clock. now( ) ) ;
67
69
70
+ for _ in 0 ..10 {
68
71
clock. advance ( ms) ;
69
- assert_ne ! ( Ok ( ( ) ) , lb. check( ) , "Now: {:?}" , clock. now( ) ) ;
72
+ assert_ne ! ( Ok ( ( ) ) , lb. peek( ) , "Now: {:?}" , clock. now( ) ) ;
73
+ }
70
74
71
- for _ in 0 .. 10 {
72
- clock. advance ( ms) ;
73
- assert_ne ! ( Ok ( ( ) ) , lb. peek ( ) , "Now: {:?}" , clock. now( ) ) ;
74
- }
75
+ // should be ok again in 1s:
76
+ clock. advance ( ms * 1000 ) ;
77
+ assert_eq ! ( Ok ( ( ) ) , lb. check ( ) , "Now: {:?}" , clock. now( ) ) ;
78
+ clock . advance ( ms ) ;
75
79
76
- // should be ok again in 1s:
77
- clock. advance ( ms * 1000 ) ;
78
- assert_eq ! ( Ok ( ( ) ) , lb. check( ) , "Now: {:?}" , clock. now( ) ) ;
80
+ for _ in 0 ..10 {
79
81
clock. advance ( ms) ;
82
+ assert_eq ! ( Ok ( ( ) ) , lb. peek( ) , "Now: {:?}" , clock. now( ) ) ;
83
+ }
80
84
81
- for _ in 0 ..10 {
82
- clock. advance ( ms) ;
83
- assert_eq ! ( Ok ( ( ) ) , lb. peek( ) , "Now: {:?}" , clock. now( ) ) ;
84
- }
85
+ assert_eq ! ( Ok ( ( ) ) , lb. check( ) ) ;
85
86
86
- assert_eq ! ( Ok ( ( ) ) , lb. check( ) ) ;
87
+ clock. advance ( ms) ;
88
+ assert_ne ! ( Ok ( ( ) ) , lb. check( ) , "{:?}" , lb) ;
87
89
90
+ for _ in 0 ..10 {
88
91
clock. advance ( ms) ;
89
- assert_ne ! ( Ok ( ( ) ) , lb. check( ) , "{:?}" , lb) ;
90
-
91
- for _ in 0 ..10 {
92
- clock. advance ( ms) ;
93
- assert_ne ! ( Ok ( ( ) ) , lb. peek( ) , "Now: {:?}" , clock. now( ) ) ;
94
- }
92
+ assert_ne ! ( Ok ( ( ) ) , lb. peek( ) , "Now: {:?}" , clock. now( ) ) ;
93
+ }
95
94
}
96
95
97
96
#[ test]
0 commit comments