31 lines
768 B
Go
31 lines
768 B
Go
|
|
package basic
|
||
|
|
|
||
|
|
import "testing"
|
||
|
|
|
||
|
|
func benchmarkOuterPlanetEventFamily(b *testing.B, plan outerPlanetEventPlan, cases []outerPlanetEventCase) {
|
||
|
|
samples := plan.samples()
|
||
|
|
var sink float64
|
||
|
|
b.ReportAllocs()
|
||
|
|
for i := 0; i < b.N; i++ {
|
||
|
|
for _, sample := range samples {
|
||
|
|
jd := outerPlanetEventSampleTTJD(sample)
|
||
|
|
for _, event := range cases {
|
||
|
|
sink += event.fn(jd)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
_ = sink
|
||
|
|
}
|
||
|
|
|
||
|
|
func BenchmarkOuterPlanetEventFamilies(b *testing.B) {
|
||
|
|
for _, plan := range outerPlanetEventPlans() {
|
||
|
|
plan := plan
|
||
|
|
b.Run(plan.planet+"PhaseFamily", func(b *testing.B) {
|
||
|
|
benchmarkOuterPlanetEventFamily(b, plan, plan.phaseCases)
|
||
|
|
})
|
||
|
|
b.Run(plan.planet+"RetrogradeFamily", func(b *testing.B) {
|
||
|
|
benchmarkOuterPlanetEventFamily(b, plan, plan.retroCases)
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|