github.com/qiaogw/arrgo@v0.0.8/arithmetic_test.go (about)

     1  package arrgo
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestArrf_AddC(t *testing.T) {
     8  	arr := Arange(0, 10, 2)
     9  	add := arr.AddC(2)
    10  	if !add.Equal(Array([]float64{2, 4, 6, 8, 10})).AllTrues() {
    11  		t.Error("Expected [2,4,6,8,10], got ", add)
    12  	}
    13  }
    14  
    15  //测试nil
    16  func TestArrf_AddC_ShapeERROR(t *testing.T) {
    17  	var arr *Arrf = nil
    18  
    19  	defer func() {
    20  		var rec = recover()
    21  		if rec != SHAPE_ERROR {
    22  			t.Error("Expected Shape ERROR, got ", rec)
    23  		}
    24  	}()
    25  	arr.AddC(10)
    26  }
    27  
    28  //测试空array
    29  func TestArrf_AddC_ShapeERROR2(t *testing.T) {
    30  	var arr *Arrf = Array([]float64{})
    31  
    32  	defer func() {
    33  		var rec = recover()
    34  		if rec != SHAPE_ERROR {
    35  			t.Error("Expected Shape ERROR, got ", rec)
    36  		}
    37  	}()
    38  	arr.AddC(10)
    39  }
    40  
    41  func TestArrf_Add(t *testing.T) {
    42  	var a = Array([]float64{1, 2, 3, 4, 5, 6}, 2, 3)
    43  	var b = Array([]float64{6, 5, 4, 3, 2, 1}, 2, 3)
    44  	var c = a.Add(b)
    45  	if !c.Equal(Fill(7, 2, 3)).AllTrues() {
    46  		t.Error("Expected [[7,7,7],[7,7,7]], got ", c)
    47  	}
    48  }
    49  
    50  //func TestArrf_Add_NilException(t *testing.T) {
    51  //    var a = Array([]float64{1,2,3,4,5,6}, 2, 3)
    52  //
    53  //    defer func(){
    54  //       var rec = recover()
    55  //        if rec != SHAPE_ERROR {
    56  //            t.Error("Expected Shape ERROR, got ", rec)
    57  //        }
    58  //    }()
    59  //    a.Add(nil)
    60  //}
    61  
    62  func TestArrf_Add_NDimException(t *testing.T) {
    63  	var a = Array([]float64{1, 2, 3, 4, 5, 6})
    64  	var b = Array([]float64{1, 2, 3}, 3, 1)
    65  	defer func() {
    66  		var rec = recover()
    67  		if rec != SHAPE_ERROR {
    68  			t.Error("Expected Shape ERROR, got ", rec)
    69  		}
    70  	}()
    71  	a.Add(b)
    72  }
    73  
    74  func BenchmarkDotProd(b *testing.B) {
    75  	a := Array([]float64{1, 2, 3})
    76  	c := Array([]float64{4, 5, 6})
    77  	for i := 0; i < 100; i++ {
    78  		a.DotProd(c)
    79  	}
    80  }