added benchmarking, as per #5

This commit is contained in:
gorhill 2013-09-02 10:34:47 -04:00
parent 5442b2bfef
commit 164843d2d0
1 changed files with 40 additions and 0 deletions

View File

@ -132,6 +132,8 @@ func TestExpressions(t *testing.T) {
} }
} }
/******************************************************************************/
func TestZero(t *testing.T) { func TestZero(t *testing.T) {
from, _ := time.Parse("2006-01-02", "2013-08-31") from, _ := time.Parse("2006-01-02", "2013-08-31")
next := cronexpr.MustParse("* * * * * 1980").Next(from) next := cronexpr.MustParse("* * * * * 1980").Next(from)
@ -150,6 +152,8 @@ func TestZero(t *testing.T) {
} }
} }
/******************************************************************************/
func TestNextN(t *testing.T) { func TestNextN(t *testing.T) {
expected := []string{ expected := []string{
"Sat, 30 Nov 2013 00:00:00", "Sat, 30 Nov 2013 00:00:00",
@ -172,3 +176,39 @@ func TestNextN(t *testing.T) {
} }
} }
} }
/******************************************************************************/
var benchmarkExpressions = []string{
"* * * * *",
"@hourly",
"@weekly",
"@yearly",
"30 3 15W 3/3 *",
"30 0 0 1-31/5 Oct-Dec * 2000,2006,2008,2013-2015",
"0 0 0 * Feb-Nov/2 thu#3 2000-2050",
}
var benchmarkExpressionsLen = len(benchmarkExpressions)
func BenchmarkParse(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = cronexpr.MustParse(benchmarkExpressions[i%benchmarkExpressionsLen])
}
}
func BenchmarkNext(b *testing.B) {
exprs := make([]*cronexpr.Expression, benchmarkExpressionsLen)
for i := 0; i < benchmarkExpressionsLen; i++ {
exprs[i] = cronexpr.MustParse(benchmarkExpressions[i])
}
from := time.Now()
b.ResetTimer()
for i := 0; i < b.N; i++ {
expr := exprs[i%benchmarkExpressionsLen]
next := expr.Next(from)
next = expr.Next(next)
next = expr.Next(next)
next = expr.Next(next)
next = expr.Next(next)
}
}