feat: add unit test
This commit is contained in:
35
randomizer/rand.go
Normal file
35
randomizer/rand.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user