🚧 Add utils.HourMinSecToSeconds func

This commit is contained in:
Dan Jones 2023-09-07 11:00:16 -05:00
commit a706d16c5a
2 changed files with 44 additions and 0 deletions

View file

@ -3,6 +3,8 @@ package utils
import ( import (
"fmt" "fmt"
p "path" p "path"
"strings"
t "time"
) )
func GetShortPath(path string) string { func GetShortPath(path string) string {
@ -11,3 +13,15 @@ func GetShortPath(path string) string {
dir = p.Base(dir) dir = p.Base(dir)
return fmt.Sprintf("%s/%s", dir, base) return fmt.Sprintf("%s/%s", dir, base)
} }
func HourMinSecToSeconds(time string) float64 {
parts := strings.Split(time, ":")
units := []string{"h", "m", "s"}
units = units[len(units)-len(parts):]
f := ""
for idx, part := range parts {
f = f + part + units[idx]
}
dur, _ := t.ParseDuration(f)
return dur.Seconds()
}

30
utils/utils_hms_test.go Normal file
View file

@ -0,0 +1,30 @@
package utils
import "testing"
func hmsTest(t *testing.T, time string, expected float64) {
found := HourMinSecToSeconds(time)
if found != expected {
t.Fatalf(`HourMinSecToSeconds("%s") = %v, want %v`, time, found, expected)
}
}
func TestJustSeconds(t *testing.T) {
hmsTest(t, "4.23", 4.23)
}
func TestMinuteSeconds(t *testing.T) {
hmsTest(t, "2:3.45", 123.45)
}
func TestHourMinuteSeconds(t *testing.T) {
hmsTest(t, "3:5:12.43", 11112.43)
}
func TestLeadingZeros(t *testing.T) {
hmsTest(t, "03:05:02.43", 11102.43)
}
func TestWholeSecond(t *testing.T) {
hmsTest(t, "4:2", 242)
}