mirror of
https://github.com/Luzifer/promcertcheck.git
synced 2024-11-14 02:32:43 +00:00
64 lines
1.1 KiB
Go
64 lines
1.1 KiB
Go
|
package quantile
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func BenchmarkInsertTargeted(b *testing.B) {
|
||
|
b.ReportAllocs()
|
||
|
|
||
|
s := NewTargeted(Targets)
|
||
|
b.ResetTimer()
|
||
|
for i := float64(0); i < float64(b.N); i++ {
|
||
|
s.Insert(i)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func BenchmarkInsertTargetedSmallEpsilon(b *testing.B) {
|
||
|
s := NewTargeted(TargetsSmallEpsilon)
|
||
|
b.ResetTimer()
|
||
|
for i := float64(0); i < float64(b.N); i++ {
|
||
|
s.Insert(i)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func BenchmarkInsertBiased(b *testing.B) {
|
||
|
s := NewLowBiased(0.01)
|
||
|
b.ResetTimer()
|
||
|
for i := float64(0); i < float64(b.N); i++ {
|
||
|
s.Insert(i)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func BenchmarkInsertBiasedSmallEpsilon(b *testing.B) {
|
||
|
s := NewLowBiased(0.0001)
|
||
|
b.ResetTimer()
|
||
|
for i := float64(0); i < float64(b.N); i++ {
|
||
|
s.Insert(i)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func BenchmarkQuery(b *testing.B) {
|
||
|
s := NewTargeted(Targets)
|
||
|
for i := float64(0); i < 1e6; i++ {
|
||
|
s.Insert(i)
|
||
|
}
|
||
|
b.ResetTimer()
|
||
|
n := float64(b.N)
|
||
|
for i := float64(0); i < n; i++ {
|
||
|
s.Query(i / n)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func BenchmarkQuerySmallEpsilon(b *testing.B) {
|
||
|
s := NewTargeted(TargetsSmallEpsilon)
|
||
|
for i := float64(0); i < 1e6; i++ {
|
||
|
s.Insert(i)
|
||
|
}
|
||
|
b.ResetTimer()
|
||
|
n := float64(b.N)
|
||
|
for i := float64(0); i < n; i++ {
|
||
|
s.Query(i / n)
|
||
|
}
|
||
|
}
|