31 lines
677 B
Go
31 lines
677 B
Go
|
package speedtestdotnet
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
bits = 8
|
||
|
kb = uint64(1024)
|
||
|
mb = 1024 * kb
|
||
|
gb = 1024 * mb
|
||
|
tb = 1024 * gb
|
||
|
pb = 1024 * tb
|
||
|
tooDamnFast = "Too fast to test"
|
||
|
)
|
||
|
|
||
|
func HumanSpeed(bps uint64) string {
|
||
|
if bps > pb {
|
||
|
return tooDamnFast
|
||
|
} else if bps > tb {
|
||
|
return fmt.Sprintf("%.02f Tb/s", float64(bps)/float64(tb))
|
||
|
} else if bps > gb {
|
||
|
return fmt.Sprintf("%.02f Gb/s", float64(bps)/float64(gb))
|
||
|
} else if bps > mb {
|
||
|
return fmt.Sprintf("%.02f Mb/s", float64(bps)/float64(mb))
|
||
|
} else if bps > kb {
|
||
|
return fmt.Sprintf("%.02f Kb/s", float64(bps)/float64(kb))
|
||
|
}
|
||
|
return fmt.Sprintf("%d bps", bps)
|
||
|
}
|