github.com/andy2046/gopie@v0.7.0/pkg/randomsequence/randomseq_test.go (about)

     1  package randomsequence_test
     2  
     3  import (
     4  	bt "github.com/andy2046/bitmap"
     5  	. "github.com/andy2046/gopie/pkg/randomsequence"
     6  	"testing"
     7  	"time"
     8  )
     9  
    10  func TestUnique(t *testing.T) {
    11  	size := uint64(^uint32(0) >> 10) // by right the size is 4294967295 but it is too slow
    12  	t.Log("sample size is", size)
    13  	btmap := bt.New(size + 1)
    14  	seed := uint32(time.Now().UTC().UnixNano() >> 32)
    15  	rnd := New(seed, seed+1)
    16  	for i := uint64(0); i <= size; i++ {
    17  		n := rnd.Next()
    18  		if btmap.GetBit(uint64(n)) {
    19  			t.Fatal("dup")
    20  		}
    21  		btmap.SetBit(uint64(n), true)
    22  	}
    23  }