You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
310 lines
4.7 KiB
310 lines
4.7 KiB
package time_arrow
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func Test_isInWeekOfDay(t *testing.T) {
|
|
ti, err := time.Parse("2006-01-02 15:04:05", "2020-06-08 00:00:00")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
ok := isInWeekOfDay(ti, TimeArrow{
|
|
DayOfWeek: []int{
|
|
1,
|
|
3,
|
|
},
|
|
})
|
|
if !ok {
|
|
t.Fatal("error")
|
|
}
|
|
ok = isInWeekOfDay(ti, TimeArrow{
|
|
DayOfWeek: []int{
|
|
6,
|
|
3,
|
|
2,
|
|
},
|
|
})
|
|
if ok {
|
|
t.Fatal("error")
|
|
}
|
|
ok = isInWeekOfDay(ti, TimeArrow{})
|
|
if ok {
|
|
t.Fatal("error")
|
|
}
|
|
}
|
|
|
|
func Test_timeCompletion(t *testing.T) {
|
|
if timeCompletion("12") != "12:00:00" {
|
|
t.Fatal("error")
|
|
}
|
|
if timeCompletion("17:00") != "17:00:00" {
|
|
t.Fatal("error")
|
|
}
|
|
}
|
|
|
|
func Test_isInTimeOfDay(t *testing.T) {
|
|
ti, err := time.Parse("2006-01-02 15:04:05", "2020-06-08 17:18:00")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
ok := isInTimeOfDay(ti, TimeArrow{
|
|
TimesOnDay: []string{
|
|
"1:21",
|
|
"1:21-2:22",
|
|
"17:00-18:00",
|
|
},
|
|
})
|
|
if !ok {
|
|
t.Fatal("error")
|
|
}
|
|
ok = isInTimeOfDay(ti, TimeArrow{
|
|
TimesOnDay: []string{
|
|
"17:00-17:10",
|
|
"18:00-19:00",
|
|
},
|
|
})
|
|
if ok {
|
|
t.Fatal("error")
|
|
}
|
|
}
|
|
|
|
func Test_isInDateSlice(t *testing.T) {
|
|
ti, err := time.Parse("2006-01-02 15:04:05", "2020-06-08 17:18:00")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
ok := isInDateSlice(ti, TimeArrow{
|
|
DateSlice: []DateSlice{},
|
|
})
|
|
|
|
if ok {
|
|
t.Fatal("error")
|
|
}
|
|
|
|
ok = isInDateSlice(ti, TimeArrow{
|
|
DateSlice: []DateSlice{
|
|
{
|
|
Start: "2020-06-05 17:18",
|
|
End: "2020-06-07",
|
|
},
|
|
},
|
|
})
|
|
|
|
if ok {
|
|
t.Fatal("error")
|
|
}
|
|
|
|
ok = isInDateSlice(ti, TimeArrow{
|
|
DateSlice: []DateSlice{
|
|
{
|
|
Start: "2020-06-05 17:18",
|
|
End: "2020-06-07",
|
|
},
|
|
{
|
|
Start: "2020-06-07 17:18",
|
|
End: "2020-06-09",
|
|
},
|
|
},
|
|
})
|
|
|
|
if !ok {
|
|
t.Fatal("error")
|
|
}
|
|
}
|
|
|
|
func Test_isInExpandTags(t *testing.T) {
|
|
ok := isInExpandTags(TimeArrow{
|
|
ExpandTags: []string{},
|
|
}, "一号场")
|
|
|
|
if !ok {
|
|
t.Fatal("error")
|
|
}
|
|
|
|
ok = isInExpandTags(TimeArrow{
|
|
ExpandTags: []string{
|
|
"一号场",
|
|
"二号场",
|
|
"四号场",
|
|
},
|
|
}, "一号场")
|
|
|
|
if !ok {
|
|
t.Fatal("error")
|
|
}
|
|
|
|
ok = isInExpandTags(TimeArrow{
|
|
ExpandTags: []string{
|
|
"一号场",
|
|
"二号场",
|
|
"四号场",
|
|
},
|
|
}, "三号场")
|
|
|
|
if ok {
|
|
t.Fatal("error")
|
|
}
|
|
|
|
}
|
|
|
|
func TestGetHitTimeArrow(t *testing.T) {
|
|
tas := TimeArrows{
|
|
{
|
|
Type: TimeArrowTypeDayOfWeek,
|
|
DayOfWeek: []int{
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
},
|
|
ExpandTags: []string{
|
|
"一号场",
|
|
"二号场",
|
|
"三号场",
|
|
"四号场",
|
|
},
|
|
ExpandValue: 0,
|
|
Weights: 0,
|
|
},
|
|
{
|
|
Type: TimeArrowTypeDayOfWeek,
|
|
DayOfWeek: []int{
|
|
6,
|
|
0,
|
|
},
|
|
ExpandTags: []string{
|
|
"一号场",
|
|
"二号场",
|
|
"四号场",
|
|
},
|
|
ExpandValue: 30,
|
|
Weights: 1,
|
|
},
|
|
{
|
|
Type: TimeArrowTypeDayOfWeek,
|
|
DayOfWeek: []int{
|
|
6,
|
|
0,
|
|
},
|
|
ExpandTags: []string{
|
|
"三号场",
|
|
},
|
|
ExpandValue: 60,
|
|
Weights: 1,
|
|
},
|
|
{
|
|
Type: TimeArrowTypeDayOfMonth,
|
|
DayOfMonth: []int{
|
|
3,
|
|
5,
|
|
},
|
|
ExpandValue: 12,
|
|
Weights: 2,
|
|
},
|
|
{
|
|
Type: TimeArrowTypeDateSlice,
|
|
DateSlice: []DateSlice{
|
|
{
|
|
Start: "2020-04-05",
|
|
End: "2020-05-05",
|
|
},
|
|
{
|
|
Start: "2020-06-07 17:18",
|
|
End: "2020-06-09",
|
|
},
|
|
},
|
|
ExpandValue: 5,
|
|
Weights: 3,
|
|
},
|
|
{
|
|
Type: TimeArrowTypeDateSlice,
|
|
DateSlice: []DateSlice{
|
|
{
|
|
Start: "2020-04-05",
|
|
End: "2020-05-05",
|
|
},
|
|
{
|
|
Start: "2020-06-07 17:18",
|
|
End: "2020-06-09",
|
|
},
|
|
},
|
|
TimesOnDay: []string{
|
|
"18-19",
|
|
},
|
|
ExpandValue: 180,
|
|
Weights: 4,
|
|
},
|
|
}
|
|
|
|
GetData = func(group string) (arrows TimeArrows, e error) {
|
|
return tas, nil
|
|
}
|
|
|
|
ti, err := time.Parse("2006-01-02 15:04:05", "2020-06-01 17:18:00")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
result, err := GetHitTimeArrow(ti, "", "一号场")
|
|
if err != nil || result == nil {
|
|
t.Fatal("error")
|
|
panic(err)
|
|
}
|
|
|
|
if result.ExpandValue.(int) != 0 {
|
|
t.Fatal("error")
|
|
}
|
|
|
|
ti = ti.AddDate(0, 0, -1)
|
|
result, err = GetHitTimeArrow(ti, "", "一号场")
|
|
if err != nil || result == nil {
|
|
t.Fatal("error")
|
|
panic(err)
|
|
}
|
|
|
|
if result.ExpandValue.(int) != 30 {
|
|
t.Fatal("error", result.ExpandValue.(int))
|
|
}
|
|
result, err = GetHitTimeArrow(ti, "", "三号场")
|
|
if err != nil || result == nil {
|
|
t.Fatal("error")
|
|
panic(err)
|
|
}
|
|
|
|
if result.ExpandValue.(int) != 60 {
|
|
t.Fatal("error")
|
|
}
|
|
|
|
ti, err = time.Parse("2006-01-02 15:04:05", "2020-04-11 17:18:00")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
result, err = GetHitTimeArrow(ti, "", "三号场")
|
|
if err != nil || result == nil {
|
|
t.Fatal("error")
|
|
panic(err)
|
|
}
|
|
|
|
if result.ExpandValue.(int) != 5 {
|
|
t.Fatal("error")
|
|
}
|
|
|
|
ti = ti.Add(time.Hour)
|
|
result, err = GetHitTimeArrow(ti, "", "三号场")
|
|
if err != nil || result == nil {
|
|
t.Fatal("error")
|
|
panic(err)
|
|
}
|
|
|
|
if result.ExpandValue.(int) != 180 {
|
|
t.Fatal("error")
|
|
}
|
|
|
|
}
|