123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package queue
- import (
- "errors"
- "math"
- "testing"
- "zero/core/logx"
- "zero/core/mathx"
- "github.com/stretchr/testify/assert"
- )
- var (
- proba = mathx.NewProba()
- failProba = 0.01
- )
- func init() {
- logx.Disable()
- }
- func TestGenerateName(t *testing.T) {
- pushers := []QueuePusher{
- &mockedPusher{name: "first"},
- &mockedPusher{name: "second"},
- &mockedPusher{name: "third"},
- }
- assert.Equal(t, "first,second,third", generateName(pushers))
- }
- func TestGenerateNameNil(t *testing.T) {
- var pushers []QueuePusher
- assert.Equal(t, "", generateName(pushers))
- }
- func calcMean(vals []int) float64 {
- if len(vals) == 0 {
- return 0
- }
- var result float64
- for _, val := range vals {
- result += float64(val)
- }
- return result / float64(len(vals))
- }
- func calcVariance(mean float64, vals []int) float64 {
- if len(vals) == 0 {
- return 0
- }
- var result float64
- for _, val := range vals {
- result += math.Pow(float64(val)-mean, 2)
- }
- return result / float64(len(vals))
- }
- type mockedPusher struct {
- name string
- count int
- }
- func (p *mockedPusher) Name() string {
- return p.name
- }
- func (p *mockedPusher) Push(s string) error {
- if proba.TrueOnProba(failProba) {
- return errors.New("dummy")
- }
- p.count++
- return nil
- }
|