Gisle Aune
3 years ago
5 changed files with 72 additions and 21 deletions
-
1internal/drivers/hue/bridge.go
-
28internal/drivers/hue/state.go
-
6models/eventhandler.go
-
2models/timeofday.go
-
40models/timeofday_test.go
@ -0,0 +1,40 @@ |
|||
package models |
|||
|
|||
import ( |
|||
"fmt" |
|||
"testing" |
|||
) |
|||
|
|||
func tod(s string) TimeOfDay { |
|||
tod, err := ParseTimeOfDay(s) |
|||
if err != nil { |
|||
panic(err) |
|||
} |
|||
|
|||
return tod |
|||
} |
|||
|
|||
func TestTimeOfDay_IsBetween(t *testing.T) { |
|||
table := []struct{ |
|||
Value TimeOfDay |
|||
From TimeOfDay |
|||
To TimeOfDay |
|||
Expected bool |
|||
}{ |
|||
{ tod("16:13:11"), tod("07"), tod("21:30"), true }, |
|||
{ tod("16:13:31"), tod("21:30"), tod("07"), false }, |
|||
{ tod("23:15:32"), tod("21:30"), tod("07"), true }, |
|||
{ tod("04:13:57"), tod("21:30"), tod("07"), true }, |
|||
{ tod("16:14:43"), tod("15:30"), tod("16:00"), false }, |
|||
{ tod("16:14:43"), tod("15:30"), tod("16:15"), true }, |
|||
} |
|||
|
|||
for i, row := range table { |
|||
t.Run(fmt.Sprintf("row_%d", i), func (t *testing.T) { |
|||
if row.Value.IsBetween(row.From, row.To) != row.Expected { |
|||
t.Log(row.Value, row.From, row.To) |
|||
t.Fail() |
|||
} |
|||
}) |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue