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 }