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  }