astro/basic/outer_planet_event_benchmark_test.go

31 lines
768 B
Go
Raw Normal View History

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)
})
}
}