github.com/seeker-insurance/kit@v0.0.13/random/random_test.go (about)

     1  package random
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  const iterations = 250
    10  
    11  /*
    12  Note: it's not possible to test whether or not something is "really" random.
    13  These tests have a very, very small chance of failing by chance.
    14  You're more likely to win the lottery.
    15  */
    16  func TestRandomBytes(t *testing.T) {
    17  	var seen = make([][]byte, 0, iterations)
    18  	for i := 0; i < iterations; i++ {
    19  		b, err := RandomBytes(10)
    20  		assert.NoError(t, err)
    21  		for _, prev := range seen {
    22  			assert.NotEqual(t, prev, b, "should not repeat")
    23  		}
    24  		seen = append(seen, b)
    25  	}
    26  }
    27  
    28  func TestRandomString(t *testing.T) {
    29  	var seen = make([]string, 0, iterations)
    30  	for i := 0; i < iterations; i++ {
    31  		s, err := RandomString(10)
    32  		assert.NoError(t, err)
    33  		for _, prev := range seen {
    34  			assert.NotEqual(t, prev, s, "should not repeat")
    35  		}
    36  		seen = append(seen, s)
    37  	}
    38  }
    39  
    40  func TestInt64s(t *testing.T) {
    41  	var seen = make([][]int64, 0, iterations)
    42  	for i := 0; i < iterations; i++ {
    43  		s, err := Int64s(10)
    44  		assert.NoError(t, err)
    45  		for _, prev := range seen {
    46  			assert.NotEqual(t, prev, s, "should not repeat")
    47  		}
    48  		seen = append(seen, s)
    49  	}
    50  }
    51  
    52  func Test_uint64(t *testing.T) {
    53  	const (
    54  		b0 = 0x01
    55  		b1 = 0x02
    56  		b2 = 0x03
    57  		b3 = 0x04
    58  		b4 = 0x05
    59  		b5 = 0x06
    60  		b6 = 0x07
    61  		b7 = 0x08
    62  
    63  		want uint64 = b0<<000 + b1<<010 + b2<<020 +
    64  			b3<<030 + b4<<040 + b5<<050 + b6<<060 + b7<<070
    65  	)
    66  	got := _uint64([]byte{b0, b1, b2, b3, b4, b5, b6, b7})
    67  	assert.Equal(t, want, got)
    68  }