go.charczuk.com@v0.0.0-20240327042549-bc490516bd1a/sdk/rate/wait_test.go (about) 1 /* 2 3 Copyright (c) 2023 - Present. Will Charczuk. All rights reserved. 4 Use of this source code is governed by a MIT license that can be found in the LICENSE file at the root of the repository. 5 6 */ 7 8 package rate 9 10 import ( 11 "testing" 12 "time" 13 14 . "go.charczuk.com/sdk/assert" 15 ) 16 17 func Test_Wait_Calculate(t *testing.T) { 18 wait := Wait{2 * 1024, time.Second}.Calculate( 19 4*1024, 20 time.Second, 21 ) 22 ItsEqual(t, time.Second, wait) 23 24 wait = Wait{4 * 1024, time.Second}.Calculate(2*1024, time.Second) 25 ItsEqual(t, -500*time.Millisecond, wait) 26 27 // originally 4 kilobytes a second 28 // or 240 kilobytes in a minute (i.e 60 seconds, or 60 * 4) 29 wait = Wait{2 * 1024, time.Second}.Calculate(240*1024, time.Minute) 30 ItsEqual(t, time.Minute, wait, "THINK ABOUT IT. HOW MANY MINUTES PRODUCED 240kb") 31 32 wait = Wait{2 * 1024, time.Second}.Calculate(3*1024, time.Second) 33 ItsEqual(t, 500*time.Millisecond, wait) 34 }