evcc-io/tariff/fixed/timerange_test.go
2022-12-29 10:14:24 +01:00

49 lines
1.2 KiB
Go

package fixed
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestParseTimeRange(t *testing.T) {
d, err := ParseTimeRanges(" 7:00 - 12:30 ")
assert.NoError(t, err)
assert.Equal(t, []TimeRange{{HourMin{7, 0}, HourMin{12, 30}}}, d, "hour:min range")
d, err = ParseTimeRanges("8-10")
assert.NoError(t, err)
assert.Equal(t, []TimeRange{{HourMin{8, 0}, HourMin{10, 0}}}, d, "hour range")
d, err = ParseTimeRanges("8-10,20-22:30")
assert.NoError(t, err)
assert.Equal(t, []TimeRange{
{HourMin{8, 0}, HourMin{10, 0}},
{HourMin{20, 0}, HourMin{22, 30}},
}, d)
}
func TestTimeRangeContains(t *testing.T) {
tr := TimeRange{
From: HourMin{1, 0},
To: HourMin{2, 0},
}
assert.False(t, tr.Contains(HourMin{0, 0}))
assert.True(t, tr.Contains(HourMin{1, 0}))
assert.True(t, tr.Contains(HourMin{1, 59}))
assert.False(t, tr.Contains(HourMin{2, 0}))
assert.False(t, tr.Contains(HourMin{3, 0}))
}
func TestTimeRangeOpenEndContains(t *testing.T) {
tr := TimeRange{
From: HourMin{1, 0},
}
assert.False(t, tr.Contains(HourMin{0, 0}))
assert.True(t, tr.Contains(HourMin{1, 0}))
assert.True(t, tr.Contains(HourMin{1, 59}))
assert.True(t, tr.Contains(HourMin{2, 0}))
assert.True(t, tr.Contains(HourMin{23, 0}))
}