github.com/MicahParks/go-ad@v0.0.8/ad_test.go (about) 1 package ad_test 2 3 import ( 4 "math/big" 5 "testing" 6 7 "github.com/MicahParks/go-ad" 8 ) 9 10 func BenchmarkAD_Calculate(b *testing.B) { 11 var adLine *ad.AD 12 for i := range open { 13 input := ad.Input{ 14 Close: closePrices[i], 15 Low: low[i], 16 High: high[i], 17 Volume: volume[i], 18 } 19 20 if adLine == nil { 21 adLine, _ = ad.New(input) 22 } else { 23 _ = adLine.Calculate(input) 24 } 25 } 26 } 27 28 func BenchmarkBigAD_Calculate(b *testing.B) { 29 var adLine *ad.BigAD 30 for i := range bigOpen { 31 input := ad.BigInput{ 32 Close: bigClose[i], 33 Low: bigLow[i], 34 High: bigHigh[i], 35 Volume: bigVolume[i], 36 } 37 38 if adLine == nil { 39 adLine, _ = ad.NewBig(input) 40 } else { 41 _ = adLine.Calculate(input) 42 } 43 } 44 } 45 46 func TestAD_Calculate(t *testing.T) { 47 var adLine *ad.AD 48 var result float64 49 for i := range open { 50 input := ad.Input{ 51 Close: closePrices[i], 52 Low: low[i], 53 High: high[i], 54 Volume: volume[i], 55 } 56 57 if adLine == nil { 58 adLine, result = ad.New(input) 59 } else { 60 result = adLine.Calculate(input) 61 } 62 if result != adResults[i] { 63 t.FailNow() 64 } 65 } 66 } 67 68 func TestBigAD_Calculate(t *testing.T) { 69 var adLine *ad.BigAD 70 var result *big.Float 71 for i := range bigOpen { 72 input := ad.BigInput{ 73 Close: bigClose[i], 74 Low: bigLow[i], 75 High: bigHigh[i], 76 Volume: bigVolume[i], 77 } 78 79 if adLine == nil { 80 adLine, result = ad.NewBig(input) 81 } else { 82 result = adLine.Calculate(input) 83 } 84 if result.Cmp(bigADResults[i]) != 0 { 85 t.FailNow() 86 } 87 } 88 }