feat: add unit test

This commit is contained in:
2019-09-20 01:24:50 +02:00
parent ced985da52
commit 779cd1da6e
7 changed files with 270 additions and 6 deletions

35
randomizer/rand.go Normal file
View File

@@ -0,0 +1,35 @@
package randomizer
import "math/rand"
type Random interface {
Int() int
}
func init(){}
type rndGenerator func(n int) int
type Randomizer struct {
fn rndGenerator
}
func NewRandomizer(fn rndGenerator) *Randomizer {
return &Randomizer{fn: fn}
}
func (r *Randomizer) Int(n int) int {
return r.fn(n)
}
func Rand(rand int) int {
return randGen(rand)
}
func realRand(n int) int { return int(rand.Intn(n)) }
func fakeRand(n int) func(_ int) int {
return func(_ int)int { return n}
}
var randGen = NewRandomizer(realRand).Int
func FakeRandomizer(n int) {
randGen = NewRandomizer(fakeRand(n)).Int
}