62 lines
990 B
Go
62 lines
990 B
Go
package grand_test
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"testing"
|
|
|
|
"xdx.jelly/xgcl/grand"
|
|
)
|
|
|
|
func TestRandZero(t *testing.T) {
|
|
randReader := grand.ReaderZero
|
|
buf := make([]byte, 100)
|
|
n, err := randReader.Read(buf)
|
|
if err != nil || n != 100 {
|
|
t.Log(n, err)
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
func TestRandFromBytes(t *testing.T) {
|
|
buf := make([]byte, 100)
|
|
_, _ = grand.ReaderOne.Read(buf)
|
|
fmt.Println(buf)
|
|
randReader := bytes.NewReader(buf)
|
|
|
|
buf2 := make([]byte, 51)
|
|
n, err := randReader.Read(buf2)
|
|
fmt.Println(n, err, buf2)
|
|
if err != nil || n != len(buf2) {
|
|
t.Log(n, err)
|
|
t.Fail()
|
|
}
|
|
for _, b := range buf2 {
|
|
if b != 1 {
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
n, err = randReader.Read(buf2)
|
|
fmt.Println(n, err, buf2)
|
|
if err != nil || n != len(buf2) {
|
|
t.Log(n, err)
|
|
t.Fail()
|
|
}
|
|
for _, b := range buf2 {
|
|
if b != 1 {
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
func TestInt(t *testing.T) {
|
|
for bits := 0; bits < 10000; bits++ {
|
|
n := grand.Int(bits)
|
|
if n.BitLen() != bits {
|
|
t.Fatalf("bits = %d, n = %x", bits, n)
|
|
}
|
|
}
|
|
}
|