github.com/ncw/rclone@v1.48.1-0.20190724201158-a35aa1360e3e/fs/bwtimetable_test.go (about) 1 package fs 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/spf13/pflag" 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 ) 11 12 // Check it satisfies the interface 13 var _ pflag.Value = (*BwTimetable)(nil) 14 15 func TestBwTimetableSet(t *testing.T) { 16 for _, test := range []struct { 17 in string 18 want BwTimetable 19 err bool 20 }{ 21 {"", BwTimetable{}, true}, 22 {"bad,bad", BwTimetable{}, true}, 23 {"bad bad", BwTimetable{}, true}, 24 {"bad", BwTimetable{}, true}, 25 {"1000X", BwTimetable{}, true}, 26 {"2401,666", BwTimetable{}, true}, 27 {"1061,666", BwTimetable{}, true}, 28 {"bad-10:20,666", BwTimetable{}, true}, 29 {"Mon-bad,666", BwTimetable{}, true}, 30 {"Mon-10:20,bad", BwTimetable{}, true}, 31 { 32 "0", 33 BwTimetable{ 34 BwTimeSlot{DayOfTheWeek: 0, HHMM: 0, Bandwidth: 0}, 35 }, 36 false, 37 }, 38 { 39 "666", 40 BwTimetable{ 41 BwTimeSlot{DayOfTheWeek: 0, HHMM: 0, Bandwidth: 666 * 1024}, 42 }, 43 false, 44 }, 45 { 46 "10:20,666", 47 BwTimetable{ 48 BwTimeSlot{DayOfTheWeek: 0, HHMM: 1020, Bandwidth: 666 * 1024}, 49 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1020, Bandwidth: 666 * 1024}, 50 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1020, Bandwidth: 666 * 1024}, 51 BwTimeSlot{DayOfTheWeek: 3, HHMM: 1020, Bandwidth: 666 * 1024}, 52 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1020, Bandwidth: 666 * 1024}, 53 BwTimeSlot{DayOfTheWeek: 5, HHMM: 1020, Bandwidth: 666 * 1024}, 54 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1020, Bandwidth: 666 * 1024}, 55 }, 56 false, 57 }, 58 { 59 "11:00,333 13:40,666 23:50,10M 23:59,off", 60 BwTimetable{ 61 BwTimeSlot{DayOfTheWeek: 0, HHMM: 1100, Bandwidth: 333 * 1024}, 62 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1100, Bandwidth: 333 * 1024}, 63 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1100, Bandwidth: 333 * 1024}, 64 BwTimeSlot{DayOfTheWeek: 3, HHMM: 1100, Bandwidth: 333 * 1024}, 65 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1100, Bandwidth: 333 * 1024}, 66 BwTimeSlot{DayOfTheWeek: 5, HHMM: 1100, Bandwidth: 333 * 1024}, 67 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1100, Bandwidth: 333 * 1024}, 68 BwTimeSlot{DayOfTheWeek: 0, HHMM: 1340, Bandwidth: 666 * 1024}, 69 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1340, Bandwidth: 666 * 1024}, 70 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1340, Bandwidth: 666 * 1024}, 71 BwTimeSlot{DayOfTheWeek: 3, HHMM: 1340, Bandwidth: 666 * 1024}, 72 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1340, Bandwidth: 666 * 1024}, 73 BwTimeSlot{DayOfTheWeek: 5, HHMM: 1340, Bandwidth: 666 * 1024}, 74 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1340, Bandwidth: 666 * 1024}, 75 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2350, Bandwidth: 10 * 1024 * 1024}, 76 BwTimeSlot{DayOfTheWeek: 1, HHMM: 2350, Bandwidth: 10 * 1024 * 1024}, 77 BwTimeSlot{DayOfTheWeek: 2, HHMM: 2350, Bandwidth: 10 * 1024 * 1024}, 78 BwTimeSlot{DayOfTheWeek: 3, HHMM: 2350, Bandwidth: 10 * 1024 * 1024}, 79 BwTimeSlot{DayOfTheWeek: 4, HHMM: 2350, Bandwidth: 10 * 1024 * 1024}, 80 BwTimeSlot{DayOfTheWeek: 5, HHMM: 2350, Bandwidth: 10 * 1024 * 1024}, 81 BwTimeSlot{DayOfTheWeek: 6, HHMM: 2350, Bandwidth: 10 * 1024 * 1024}, 82 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2359, Bandwidth: -1}, 83 BwTimeSlot{DayOfTheWeek: 1, HHMM: 2359, Bandwidth: -1}, 84 BwTimeSlot{DayOfTheWeek: 2, HHMM: 2359, Bandwidth: -1}, 85 BwTimeSlot{DayOfTheWeek: 3, HHMM: 2359, Bandwidth: -1}, 86 BwTimeSlot{DayOfTheWeek: 4, HHMM: 2359, Bandwidth: -1}, 87 BwTimeSlot{DayOfTheWeek: 5, HHMM: 2359, Bandwidth: -1}, 88 BwTimeSlot{DayOfTheWeek: 6, HHMM: 2359, Bandwidth: -1}, 89 }, 90 false, 91 }, 92 { 93 "Mon-11:00,333 Tue-13:40,666 Fri-00:00,10M Sat-10:00,off Sun-23:00,666", 94 BwTimetable{ 95 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1100, Bandwidth: 333 * 1024}, 96 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1340, Bandwidth: 666 * 1024}, 97 BwTimeSlot{DayOfTheWeek: 5, HHMM: 0000, Bandwidth: 10 * 1024 * 1024}, 98 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1000, Bandwidth: -1}, 99 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2300, Bandwidth: 666 * 1024}, 100 }, 101 false, 102 }, 103 { 104 "Mon-11:00,333 Tue-13:40,666 Fri-00:00,10M 00:01,off Sun-23:00,666", 105 BwTimetable{ 106 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1100, Bandwidth: 333 * 1024}, 107 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1340, Bandwidth: 666 * 1024}, 108 BwTimeSlot{DayOfTheWeek: 5, HHMM: 0000, Bandwidth: 10 * 1024 * 1024}, 109 BwTimeSlot{DayOfTheWeek: 0, HHMM: 1, Bandwidth: -1}, 110 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1, Bandwidth: -1}, 111 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1, Bandwidth: -1}, 112 BwTimeSlot{DayOfTheWeek: 3, HHMM: 1, Bandwidth: -1}, 113 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1, Bandwidth: -1}, 114 BwTimeSlot{DayOfTheWeek: 5, HHMM: 1, Bandwidth: -1}, 115 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1, Bandwidth: -1}, 116 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2300, Bandwidth: 666 * 1024}, 117 }, 118 false, 119 }, 120 } { 121 tt := BwTimetable{} 122 err := tt.Set(test.in) 123 if test.err { 124 require.Error(t, err) 125 } else { 126 require.NoError(t, err) 127 } 128 assert.Equal(t, test.want, tt) 129 } 130 } 131 132 func TestBwTimetableLimitAt(t *testing.T) { 133 for _, test := range []struct { 134 tt BwTimetable 135 now time.Time 136 want BwTimeSlot 137 }{ 138 { 139 BwTimetable{}, 140 time.Date(2017, time.April, 20, 15, 0, 0, 0, time.UTC), 141 BwTimeSlot{DayOfTheWeek: 0, HHMM: 0, Bandwidth: -1}, 142 }, 143 { 144 BwTimetable{ 145 BwTimeSlot{DayOfTheWeek: 0, HHMM: 1100, Bandwidth: 333 * 1024}, 146 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1100, Bandwidth: 333 * 1024}, 147 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1100, Bandwidth: 333 * 1024}, 148 BwTimeSlot{DayOfTheWeek: 3, HHMM: 1100, Bandwidth: 333 * 1024}, 149 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1100, Bandwidth: 333 * 1024}, 150 BwTimeSlot{DayOfTheWeek: 5, HHMM: 1100, Bandwidth: 333 * 1024}, 151 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1100, Bandwidth: 333 * 1024}, 152 }, 153 time.Date(2017, time.April, 20, 15, 0, 0, 0, time.UTC), 154 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1100, Bandwidth: 333 * 1024}, 155 }, 156 { 157 BwTimetable{ 158 BwTimeSlot{DayOfTheWeek: 0, HHMM: 1100, Bandwidth: 333 * 1024}, 159 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1100, Bandwidth: 333 * 1024}, 160 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1100, Bandwidth: 333 * 1024}, 161 BwTimeSlot{DayOfTheWeek: 3, HHMM: 1100, Bandwidth: 333 * 1024}, 162 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1100, Bandwidth: 333 * 1024}, 163 BwTimeSlot{DayOfTheWeek: 5, HHMM: 1100, Bandwidth: 333 * 1024}, 164 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1100, Bandwidth: 333 * 1024}, 165 BwTimeSlot{DayOfTheWeek: 0, HHMM: 1300, Bandwidth: 666 * 1024}, 166 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1300, Bandwidth: 666 * 1024}, 167 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1300, Bandwidth: 666 * 1024}, 168 BwTimeSlot{DayOfTheWeek: 3, HHMM: 1300, Bandwidth: 666 * 1024}, 169 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1300, Bandwidth: 666 * 1024}, 170 BwTimeSlot{DayOfTheWeek: 5, HHMM: 1300, Bandwidth: 666 * 1024}, 171 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1300, Bandwidth: 666 * 1024}, 172 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2301, Bandwidth: 1024 * 1024}, 173 BwTimeSlot{DayOfTheWeek: 1, HHMM: 2301, Bandwidth: 1024 * 1024}, 174 BwTimeSlot{DayOfTheWeek: 2, HHMM: 2301, Bandwidth: 1024 * 1024}, 175 BwTimeSlot{DayOfTheWeek: 3, HHMM: 2301, Bandwidth: 1024 * 1024}, 176 BwTimeSlot{DayOfTheWeek: 4, HHMM: 2301, Bandwidth: 1024 * 1024}, 177 BwTimeSlot{DayOfTheWeek: 5, HHMM: 2301, Bandwidth: 1024 * 1024}, 178 BwTimeSlot{DayOfTheWeek: 6, HHMM: 2301, Bandwidth: 1024 * 1024}, 179 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2350, Bandwidth: -1}, 180 BwTimeSlot{DayOfTheWeek: 1, HHMM: 2350, Bandwidth: -1}, 181 BwTimeSlot{DayOfTheWeek: 2, HHMM: 2350, Bandwidth: -1}, 182 BwTimeSlot{DayOfTheWeek: 3, HHMM: 2350, Bandwidth: -1}, 183 BwTimeSlot{DayOfTheWeek: 4, HHMM: 2350, Bandwidth: -1}, 184 BwTimeSlot{DayOfTheWeek: 5, HHMM: 2350, Bandwidth: -1}, 185 BwTimeSlot{DayOfTheWeek: 6, HHMM: 2350, Bandwidth: -1}, 186 }, 187 time.Date(2017, time.April, 20, 10, 15, 0, 0, time.UTC), 188 BwTimeSlot{DayOfTheWeek: 3, HHMM: 2350, Bandwidth: -1}, 189 }, 190 { 191 BwTimetable{ 192 BwTimeSlot{DayOfTheWeek: 0, HHMM: 1100, Bandwidth: 333 * 1024}, 193 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1100, Bandwidth: 333 * 1024}, 194 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1100, Bandwidth: 333 * 1024}, 195 BwTimeSlot{DayOfTheWeek: 3, HHMM: 1100, Bandwidth: 333 * 1024}, 196 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1100, Bandwidth: 333 * 1024}, 197 BwTimeSlot{DayOfTheWeek: 5, HHMM: 1100, Bandwidth: 333 * 1024}, 198 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1100, Bandwidth: 333 * 1024}, 199 BwTimeSlot{DayOfTheWeek: 0, HHMM: 1300, Bandwidth: 666 * 1024}, 200 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1300, Bandwidth: 666 * 1024}, 201 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1300, Bandwidth: 666 * 1024}, 202 BwTimeSlot{DayOfTheWeek: 3, HHMM: 1300, Bandwidth: 666 * 1024}, 203 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1300, Bandwidth: 666 * 1024}, 204 BwTimeSlot{DayOfTheWeek: 5, HHMM: 1300, Bandwidth: 666 * 1024}, 205 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1300, Bandwidth: 666 * 1024}, 206 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2301, Bandwidth: 1024 * 1024}, 207 BwTimeSlot{DayOfTheWeek: 1, HHMM: 2301, Bandwidth: 1024 * 1024}, 208 BwTimeSlot{DayOfTheWeek: 2, HHMM: 2301, Bandwidth: 1024 * 1024}, 209 BwTimeSlot{DayOfTheWeek: 3, HHMM: 2301, Bandwidth: 1024 * 1024}, 210 BwTimeSlot{DayOfTheWeek: 4, HHMM: 2301, Bandwidth: 1024 * 1024}, 211 BwTimeSlot{DayOfTheWeek: 5, HHMM: 2301, Bandwidth: 1024 * 1024}, 212 BwTimeSlot{DayOfTheWeek: 6, HHMM: 2301, Bandwidth: 1024 * 1024}, 213 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2350, Bandwidth: -1}, 214 BwTimeSlot{DayOfTheWeek: 1, HHMM: 2350, Bandwidth: -1}, 215 BwTimeSlot{DayOfTheWeek: 2, HHMM: 2350, Bandwidth: -1}, 216 BwTimeSlot{DayOfTheWeek: 3, HHMM: 2350, Bandwidth: -1}, 217 BwTimeSlot{DayOfTheWeek: 4, HHMM: 2350, Bandwidth: -1}, 218 BwTimeSlot{DayOfTheWeek: 5, HHMM: 2350, Bandwidth: -1}, 219 BwTimeSlot{DayOfTheWeek: 6, HHMM: 2350, Bandwidth: -1}, 220 }, 221 time.Date(2017, time.April, 20, 11, 0, 0, 0, time.UTC), 222 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1100, Bandwidth: 333 * 1024}, 223 }, 224 { 225 BwTimetable{ 226 BwTimeSlot{DayOfTheWeek: 0, HHMM: 1100, Bandwidth: 333 * 1024}, 227 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1100, Bandwidth: 333 * 1024}, 228 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1100, Bandwidth: 333 * 1024}, 229 BwTimeSlot{DayOfTheWeek: 3, HHMM: 1100, Bandwidth: 333 * 1024}, 230 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1100, Bandwidth: 333 * 1024}, 231 BwTimeSlot{DayOfTheWeek: 5, HHMM: 1100, Bandwidth: 333 * 1024}, 232 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1100, Bandwidth: 333 * 1024}, 233 BwTimeSlot{DayOfTheWeek: 0, HHMM: 1300, Bandwidth: 666 * 1024}, 234 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1300, Bandwidth: 666 * 1024}, 235 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1300, Bandwidth: 666 * 1024}, 236 BwTimeSlot{DayOfTheWeek: 3, HHMM: 1300, Bandwidth: 666 * 1024}, 237 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1300, Bandwidth: 666 * 1024}, 238 BwTimeSlot{DayOfTheWeek: 5, HHMM: 1300, Bandwidth: 666 * 1024}, 239 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1300, Bandwidth: 666 * 1024}, 240 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2301, Bandwidth: 1024 * 1024}, 241 BwTimeSlot{DayOfTheWeek: 1, HHMM: 2301, Bandwidth: 1024 * 1024}, 242 BwTimeSlot{DayOfTheWeek: 2, HHMM: 2301, Bandwidth: 1024 * 1024}, 243 BwTimeSlot{DayOfTheWeek: 3, HHMM: 2301, Bandwidth: 1024 * 1024}, 244 BwTimeSlot{DayOfTheWeek: 4, HHMM: 2301, Bandwidth: 1024 * 1024}, 245 BwTimeSlot{DayOfTheWeek: 5, HHMM: 2301, Bandwidth: 1024 * 1024}, 246 BwTimeSlot{DayOfTheWeek: 6, HHMM: 2301, Bandwidth: 1024 * 1024}, 247 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2350, Bandwidth: -1}, 248 BwTimeSlot{DayOfTheWeek: 1, HHMM: 2350, Bandwidth: -1}, 249 BwTimeSlot{DayOfTheWeek: 2, HHMM: 2350, Bandwidth: -1}, 250 BwTimeSlot{DayOfTheWeek: 3, HHMM: 2350, Bandwidth: -1}, 251 BwTimeSlot{DayOfTheWeek: 4, HHMM: 2350, Bandwidth: -1}, 252 BwTimeSlot{DayOfTheWeek: 5, HHMM: 2350, Bandwidth: -1}, 253 BwTimeSlot{DayOfTheWeek: 6, HHMM: 2350, Bandwidth: -1}, 254 }, 255 time.Date(2017, time.April, 20, 13, 1, 0, 0, time.UTC), 256 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1300, Bandwidth: 666 * 1024}, 257 }, 258 { 259 BwTimetable{ 260 BwTimeSlot{DayOfTheWeek: 0, HHMM: 1100, Bandwidth: 333 * 1024}, 261 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1100, Bandwidth: 333 * 1024}, 262 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1100, Bandwidth: 333 * 1024}, 263 BwTimeSlot{DayOfTheWeek: 3, HHMM: 1100, Bandwidth: 333 * 1024}, 264 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1100, Bandwidth: 333 * 1024}, 265 BwTimeSlot{DayOfTheWeek: 5, HHMM: 1100, Bandwidth: 333 * 1024}, 266 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1100, Bandwidth: 333 * 1024}, 267 BwTimeSlot{DayOfTheWeek: 0, HHMM: 1300, Bandwidth: 666 * 1024}, 268 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1300, Bandwidth: 666 * 1024}, 269 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1300, Bandwidth: 666 * 1024}, 270 BwTimeSlot{DayOfTheWeek: 3, HHMM: 1300, Bandwidth: 666 * 1024}, 271 BwTimeSlot{DayOfTheWeek: 4, HHMM: 1300, Bandwidth: 666 * 1024}, 272 BwTimeSlot{DayOfTheWeek: 5, HHMM: 1300, Bandwidth: 666 * 1024}, 273 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1300, Bandwidth: 666 * 1024}, 274 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2301, Bandwidth: 1024 * 1024}, 275 BwTimeSlot{DayOfTheWeek: 1, HHMM: 2301, Bandwidth: 1024 * 1024}, 276 BwTimeSlot{DayOfTheWeek: 2, HHMM: 2301, Bandwidth: 1024 * 1024}, 277 BwTimeSlot{DayOfTheWeek: 3, HHMM: 2301, Bandwidth: 1024 * 1024}, 278 BwTimeSlot{DayOfTheWeek: 4, HHMM: 2301, Bandwidth: 1024 * 1024}, 279 BwTimeSlot{DayOfTheWeek: 5, HHMM: 2301, Bandwidth: 1024 * 1024}, 280 BwTimeSlot{DayOfTheWeek: 6, HHMM: 2301, Bandwidth: 1024 * 1024}, 281 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2350, Bandwidth: -1}, 282 BwTimeSlot{DayOfTheWeek: 1, HHMM: 2350, Bandwidth: -1}, 283 BwTimeSlot{DayOfTheWeek: 2, HHMM: 2350, Bandwidth: -1}, 284 BwTimeSlot{DayOfTheWeek: 3, HHMM: 2350, Bandwidth: -1}, 285 BwTimeSlot{DayOfTheWeek: 4, HHMM: 2350, Bandwidth: -1}, 286 BwTimeSlot{DayOfTheWeek: 5, HHMM: 2350, Bandwidth: -1}, 287 BwTimeSlot{DayOfTheWeek: 6, HHMM: 2350, Bandwidth: -1}, 288 }, 289 time.Date(2017, time.April, 20, 23, 59, 0, 0, time.UTC), 290 BwTimeSlot{DayOfTheWeek: 4, HHMM: 2350, Bandwidth: -1}, 291 }, 292 { 293 BwTimetable{ 294 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1100, Bandwidth: 333 * 1024}, 295 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1340, Bandwidth: 666 * 1024}, 296 BwTimeSlot{DayOfTheWeek: 5, HHMM: 0000, Bandwidth: 10 * 1024 * 1024}, 297 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1000, Bandwidth: -1}, 298 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2300, Bandwidth: 666 * 1024}, 299 }, 300 time.Date(2017, time.April, 20, 23, 59, 0, 0, time.UTC), 301 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1340, Bandwidth: 666 * 1024}, 302 }, 303 { 304 BwTimetable{ 305 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1100, Bandwidth: 333 * 1024}, 306 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1340, Bandwidth: 666 * 1024}, 307 BwTimeSlot{DayOfTheWeek: 5, HHMM: 0000, Bandwidth: 10 * 1024 * 1024}, 308 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1000, Bandwidth: -1}, 309 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2300, Bandwidth: 666 * 1024}, 310 }, 311 time.Date(2017, time.April, 21, 23, 59, 0, 0, time.UTC), 312 BwTimeSlot{DayOfTheWeek: 5, HHMM: 0000, Bandwidth: 10 * 1024 * 1024}, 313 }, 314 { 315 BwTimetable{ 316 BwTimeSlot{DayOfTheWeek: 1, HHMM: 1100, Bandwidth: 333 * 1024}, 317 BwTimeSlot{DayOfTheWeek: 2, HHMM: 1340, Bandwidth: 666 * 1024}, 318 BwTimeSlot{DayOfTheWeek: 5, HHMM: 0000, Bandwidth: 10 * 1024 * 1024}, 319 BwTimeSlot{DayOfTheWeek: 6, HHMM: 1000, Bandwidth: -1}, 320 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2300, Bandwidth: 666 * 1024}, 321 }, 322 time.Date(2017, time.April, 17, 10, 59, 0, 0, time.UTC), 323 BwTimeSlot{DayOfTheWeek: 0, HHMM: 2300, Bandwidth: 666 * 1024}, 324 }, 325 } { 326 slot := test.tt.LimitAt(test.now) 327 assert.Equal(t, test.want, slot) 328 } 329 }