gorgonia.org/gorgonia@v0.9.17/equalities_test.go (about)

     1  package gorgonia
     2  
     3  import "testing"
     4  
     5  var scalarEqualities = []struct {
     6  	a, b Scalar
     7  	eq   bool
     8  }{
     9  	{NewF64(1), NewF64(1), true},
    10  	{NewF64(1), NewF64(0), false},
    11  	{NewF64(1), NewF32(1), false},
    12  
    13  	{NewF32(1), NewF32(1), true},
    14  	{NewF32(1), NewF32(0), false},
    15  	{NewF32(1), NewI(1), false},
    16  
    17  	{NewI(1), NewI(1), true},
    18  	{NewI(1), NewI(0), false},
    19  	{NewI(1), NewI64(1), false},
    20  
    21  	{NewI64(1), NewI64(1), true},
    22  	{NewI64(1), NewI64(0), false},
    23  	{NewI64(1), NewI32(1), false},
    24  
    25  	{NewI32(1), NewI32(1), true},
    26  	{NewI32(1), NewI32(0), false},
    27  	{NewI32(1), NewU8(1), false},
    28  
    29  	{NewU8(1), NewU8(1), true},
    30  	{NewU8(1), NewU8(0), false},
    31  	{NewU8(1), NewB(true), false},
    32  
    33  	{NewB(true), NewB(true), true},
    34  	{NewB(true), NewB(false), false},
    35  	{NewB(true), NewF64(1), false},
    36  }
    37  
    38  func TestScalarEq(t *testing.T) {
    39  	for _, seq := range scalarEqualities {
    40  		if (scalarEq(seq.a, seq.b) && !seq.eq) || (!scalarEq(seq.a, seq.b) && seq.eq) {
    41  			t.Errorf("expected %v(%v) and %v(%v) to be %v", seq.a, TypeOf(seq.a), seq.b, TypeOf(seq.b), seq.eq)
    42  		}
    43  	}
    44  }