2017-05-14 15:21:30 -04:00
|
|
|
package seq
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
"time"
|
|
|
|
|
|
|
|
assert "github.com/blendlabs/go-assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestTimeSeqTimes(t *testing.T) {
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
|
|
|
seq := Times(time.Now(), time.Now(), time.Now())
|
|
|
|
assert.Equal(3, seq.Len())
|
|
|
|
}
|
|
|
|
|
|
|
|
func parseTime(str string) time.Time {
|
|
|
|
tv, _ := time.Parse("2006-01-02 15:04:05", str)
|
|
|
|
return tv
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestTimeSeqSort(t *testing.T) {
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
|
|
|
seq := Times(
|
|
|
|
parseTime("2016-05-14 12:00:00"),
|
|
|
|
parseTime("2017-05-14 12:00:00"),
|
|
|
|
parseTime("2015-05-14 12:00:00"),
|
|
|
|
parseTime("2017-05-13 12:00:00"),
|
|
|
|
)
|
|
|
|
|
|
|
|
sorted := seq.Sort()
|
|
|
|
assert.Equal(4, sorted.Len())
|
|
|
|
min, max := sorted.MinAndMax()
|
|
|
|
assert.Equal(parseTime("2015-05-14 12:00:00"), min)
|
|
|
|
assert.Equal(parseTime("2017-05-14 12:00:00"), max)
|
|
|
|
|
|
|
|
first, last := sorted.First(), sorted.Last()
|
|
|
|
assert.Equal(min, first)
|
|
|
|
assert.Equal(max, last)
|
|
|
|
}
|
|
|
|
|
2017-05-14 15:26:41 -04:00
|
|
|
func TestTimeSeqSortDescending(t *testing.T) {
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
|
|
|
seq := Times(
|
|
|
|
parseTime("2016-05-14 12:00:00"),
|
|
|
|
parseTime("2017-05-14 12:00:00"),
|
|
|
|
parseTime("2015-05-14 12:00:00"),
|
|
|
|
parseTime("2017-05-13 12:00:00"),
|
|
|
|
)
|
|
|
|
|
|
|
|
sorted := seq.SortDescending()
|
|
|
|
assert.Equal(4, sorted.Len())
|
|
|
|
min, max := sorted.MinAndMax()
|
|
|
|
assert.Equal(parseTime("2015-05-14 12:00:00"), min)
|
|
|
|
assert.Equal(parseTime("2017-05-14 12:00:00"), max)
|
|
|
|
|
|
|
|
first, last := sorted.First(), sorted.Last()
|
|
|
|
assert.Equal(max, first)
|
|
|
|
assert.Equal(min, last)
|
|
|
|
}
|
|
|
|
|
2017-05-14 15:21:30 -04:00
|
|
|
func TestTimeSeqDays(t *testing.T) {
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
|
|
|
seq := Times(
|
|
|
|
parseTime("2017-05-10 12:00:00"),
|
|
|
|
parseTime("2017-05-10 16:00:00"),
|
|
|
|
parseTime("2017-05-11 12:00:00"),
|
|
|
|
parseTime("2015-05-12 12:00:00"),
|
|
|
|
parseTime("2015-05-12 16:00:00"),
|
|
|
|
parseTime("2017-05-13 12:00:00"),
|
|
|
|
parseTime("2017-05-14 12:00:00"),
|
|
|
|
)
|
|
|
|
|
|
|
|
days := seq.Days()
|
|
|
|
assert.Equal(5, days.Len())
|
|
|
|
assert.Equal(10, days.First().Day())
|
|
|
|
assert.Equal(14, days.Last().Day())
|
|
|
|
}
|