github.com/seeker-insurance/kit@v0.0.13/imath/operator/bitwise_test.go (about)

     1  package operator
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/seeker-insurance/kit/random"
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestBitAnd(t *testing.T) {
    11  	A, _ := random.Int64s(25)
    12  	B, _ := random.Int64s(25)
    13  	for i := range A {
    14  		a, b := int(A[i]), int(B[i])
    15  		assert.Equal(t, int(uint(a)&uint(b)), BitAnd(a, b))
    16  	}
    17  }
    18  
    19  func TestBitOr(t *testing.T) {
    20  	A, _ := random.Int64s(25)
    21  	B, _ := random.Int64s(25)
    22  	for i := range A {
    23  		a, b := int(A[i]), int(B[i])
    24  		assert.Equal(t, int(uint(a)|uint(b)), BitOr(a, b))
    25  	}
    26  }
    27  
    28  func TestBitXor(t *testing.T) {
    29  	A, _ := random.Int64s(25)
    30  	B, _ := random.Int64s(25)
    31  	for i := range A {
    32  		a, b := int(A[i]), int(B[i])
    33  		assert.Equal(t, int(uint(a)^uint(b)), BitXor(a, b))
    34  	}
    35  }
    36  
    37  func TestBitInvert(t *testing.T) {
    38  	A, _ := random.Int64s(25)
    39  	for i := range A {
    40  		a := int(A[i])
    41  		assert.Equal(t, int(^uint(a)), BitInvert(a))
    42  	}
    43  }