Documentation
¶
Overview ¶
Package randomizer contains pseudo-random data generators, used by the Faker main package. It is concurrent safe, has 100% test coverage, benchmarks and examples. Can be used as a rand.* replacement.
RandWrapper encapsulates a rand.Rand but it is more user friendly and has more functions. It has 2 modes: * fast - for single-thread/goroutine performance requirements * safe - slower but safe for concurrent use (like rand.* it uses a mutex)
For more info and examples see https://github.com/bgadrian/fastfaker
Example ¶
gen := NewRandWrapper(false, nil)
gen.Seed(42)
fmt.Printf("Int8: %d\n", gen.Int8())
fmt.Printf("Int16: %d\n", gen.Int16())
fmt.Printf("Int32: %d\n", gen.Int32())
fmt.Printf("Int32: %d\n", gen.Int64())
fmt.Printf("Int64Positive: %d\n", gen.Int64Positive())
fmt.Printf("Uint8: %d\n", gen.Uint8())
fmt.Printf("Uint16: %d\n", gen.Uint16())
fmt.Printf("Uint32: %d\n", gen.Uint32())
fmt.Printf("Float32: %f\n", gen.Float32())
fmt.Printf("Float64: %f\n", gen.Float64())
Output: Int8: 49 Int16: 13387 Int32: -1805934616 Int32: -7297359450328151799 Int64Positive: 404153945743547657 Uint8: 97 Uint16: 23461 Uint32: 1276434112 Float32: 130343333431123176975039154477607157760.000000 Float64: 116198632802140183205174997036310832568880167563288775268797842968811055189411147761992698981182854609204521400932481006915558598725364731145245182600684556023951651432775097450784441328418806702862825300469152646818691585777068968631119723028318015329488476327072796506412228424374316456135062145352853356544.000000
Index ¶
- type RandWrapper
- func (f *RandWrapper) Float32() float32
- func (f *RandWrapper) Float32Range(min, max float32) float32
- func (f *RandWrapper) Float64() float64
- func (f *RandWrapper) Float64Range(min, max float64) float64
- func (f *RandWrapper) Float64Unary() float64
- func (f *RandWrapper) Int8() int8
- func (f *RandWrapper) Int16() int16
- func (f *RandWrapper) Int32() int32
- func (f *RandWrapper) Int32Range(min, max int32) int32
- func (f *RandWrapper) Int64() int64
- func (f *RandWrapper) Int64Positive() int64
- func (f *RandWrapper) Int64Range(min, max int64) int64
- func (f *RandWrapper) Intn(n int) int
- func (f *RandWrapper) Number(min int, max int) int
- func (f *RandWrapper) Read(p []byte) (n int, err error)
- func (f *RandWrapper) Seed(seed int64)
- func (f *RandWrapper) ShuffleInts(a []int)
- func (f *RandWrapper) Uint8() uint8
- func (f *RandWrapper) Uint16() uint16
- func (f *RandWrapper) Uint32() uint32
- func (f *RandWrapper) Uint64() uint64
- type Randomizer
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type RandWrapper ¶
type RandWrapper struct {
// contains filtered or unexported fields
}
RandWrapper encapsulates a rand.Rand and adds more features. Implements Randomizer. The only way to make it concurrent safe is to use NewRandWrapper(true, ...) Do not use this struct directly to avoid braking changes, use the Randomizer interface!
func (*RandWrapper) Float32 ¶
func (f *RandWrapper) Float32() float32
Float32 returns a random positive float number [0.000000000001, math.MaxFloat32)
func (*RandWrapper) Float32Range ¶
func (f *RandWrapper) Float32Range(min, max float32) float32
Float32Range will generate a random float32 value between min and max
func (*RandWrapper) Float64 ¶
func (f *RandWrapper) Float64() float64
Float64 returns a random positive float number [0.000000000001, math.MaxFloat64)
func (*RandWrapper) Float64Range ¶
func (f *RandWrapper) Float64Range(min, max float64) float64
Float64Range will generate a random float64 value between min and max
func (*RandWrapper) Float64Unary ¶
func (f *RandWrapper) Float64Unary() float64
Float64Unary returns, as a float64, a pseudo-random number in [0.0,1.0) from the default Source.
func (*RandWrapper) Int16 ¶
func (f *RandWrapper) Int16() int16
Int16 will generate a random int16 value
func (*RandWrapper) Int32 ¶
func (f *RandWrapper) Int32() int32
Int32 will generate a random int32 value [math.MinInt32, math.MaxInt32)
func (*RandWrapper) Int32Range ¶
func (f *RandWrapper) Int32Range(min, max int32) int32
Int32Range generates a random int32 between [min, max)
func (*RandWrapper) Int64 ¶
func (f *RandWrapper) Int64() int64
Int64 will generate a random int64 value [math.MinInt64, math.MaxInt64)
func (*RandWrapper) Int64Positive ¶
func (f *RandWrapper) Int64Positive() int64
Int64Positive returns a non-negative pseudo-random 63-bit integer as an int64 [0, math.Maxint64)
func (*RandWrapper) Int64Range ¶
func (f *RandWrapper) Int64Range(min, max int64) int64
Int64Range generates a random int64 between [min, max)
func (*RandWrapper) Intn ¶
func (f *RandWrapper) Intn(n int) int
Intn returns a random number between [0, n)
func (*RandWrapper) Number ¶
func (f *RandWrapper) Number(min int, max int) int
Number will generate a random number between given min And max
func (*RandWrapper) Read ¶
func (f *RandWrapper) Read(p []byte) (n int, err error)
Read generates len(p) random bytes from the default Source and writes them into p. It always returns len(p) and a nil error.
func (*RandWrapper) Seed ¶
func (f *RandWrapper) Seed(seed int64)
Seed uses the provided seed value to initialize the generator to a deterministic state.
func (*RandWrapper) ShuffleInts ¶
func (f *RandWrapper) ShuffleInts(a []int)
ShuffleInts will randomize a slice of ints
func (*RandWrapper) Uint8 ¶
func (f *RandWrapper) Uint8() uint8
Uint8 will generate a random uint8 value
func (*RandWrapper) Uint16 ¶
func (f *RandWrapper) Uint16() uint16
Uint16 will generate a random uint16 value
func (*RandWrapper) Uint32 ¶
func (f *RandWrapper) Uint32() uint32
Uint32 will generate a random uint32 value
func (*RandWrapper) Uint64 ¶
func (f *RandWrapper) Uint64() uint64
Uint64 will generate a random uint64 value
type Randomizer ¶
type Randomizer interface {
Seed(seed int64)
Number(min int, max int) int
Uint8() uint8
Uint16() uint16
Uint32() uint32
Uint64() uint64
Int8() int8
Int16() int16
Int32() int32
Int64() int64
Int64Positive() int64
Int32Range(min, max int32) int32
Int64Range(min, max int64) int64
Float32Range(min, max float32) float32
Float64Range(min, max float64) float64
ShuffleInts(a []int)
Intn(n int) int
Float32() float32
Float64() float64
Read(p []byte) (n int, err error)
Float64Unary() float64
}
Randomizer represents a base generator for the faker
func NewRandWrapper ¶
func NewRandWrapper(concurrentSafe bool, source rand.Source) Randomizer
NewRandWrapper returns a wrapper of a rand.Rand with extra features. All functions are concurrent safe only if the param concurrentSafe==true If source is nil a new source will be generated with a random seed.