mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-06-01 07:26:48 +00:00
codebase: Replace !errors.Is(err, target) with testify (#1931)
* tests: Replace !errors.Is(err, target) with testify equivalents * codebase: Manual !errors.Is(err, target) replacements * typo: Replace errMisMatchedEvent with errMismatchedEvent * tests: Enhance error messages for better output * tests: Refactor error assertions in various test cases to use require and improve clarity * misc linter: Fix assert should wording * tests: Simplify assertions in TestCreateSignals for clarity and conciseness * tests: Enhance assertion message in TestCreateSignals
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package kline
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"os"
|
||||
@@ -89,9 +88,7 @@ func TestCreateKline(t *testing.T) {
|
||||
|
||||
pair := currency.NewBTCUSD()
|
||||
_, err := CreateKline(nil, OneMin, pair, asset.Spot, "Binance")
|
||||
if !errors.Is(err, errInsufficientTradeData) {
|
||||
t.Fatalf("received: '%v' but expected '%v'", err, errInsufficientTradeData)
|
||||
}
|
||||
require.ErrorIs(t, err, errInsufficientTradeData)
|
||||
|
||||
tradeTotal := 24000
|
||||
trades := make([]order.TradeHistory, tradeTotal)
|
||||
@@ -107,9 +104,7 @@ func TestCreateKline(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = CreateKline(trades, 0, pair, asset.Spot, "Binance")
|
||||
if !errors.Is(err, ErrInvalidInterval) {
|
||||
t.Fatalf("received: '%v' but expected '%v'", err, ErrInvalidInterval)
|
||||
}
|
||||
require.ErrorIs(t, err, ErrInvalidInterval)
|
||||
|
||||
c, err := CreateKline(trades, OneMin, pair, asset.Spot, "Binance")
|
||||
if err != nil {
|
||||
@@ -801,14 +796,10 @@ func BenchmarkJustifyIntervalTimeStoringUnixValues2(b *testing.B) {
|
||||
|
||||
func TestConvertToNewInterval(t *testing.T) {
|
||||
_, err := (*Item)(nil).ConvertToNewInterval(OneMin)
|
||||
if !errors.Is(err, errNilKline) {
|
||||
t.Errorf("received '%v' expected '%v'", err, errNilKline)
|
||||
}
|
||||
assert.ErrorIs(t, err, errNilKline)
|
||||
|
||||
_, err = (&Item{}).ConvertToNewInterval(OneMin)
|
||||
if !errors.Is(err, ErrInvalidInterval) {
|
||||
t.Errorf("received '%v' expected '%v'", err, ErrInvalidInterval)
|
||||
}
|
||||
assert.ErrorIs(t, err, ErrInvalidInterval)
|
||||
|
||||
old := &Item{
|
||||
Exchange: "lol",
|
||||
@@ -844,18 +835,14 @@ func TestConvertToNewInterval(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = old.ConvertToNewInterval(0)
|
||||
if !errors.Is(err, ErrInvalidInterval) {
|
||||
t.Errorf("received '%v' expected '%v'", err, ErrInvalidInterval)
|
||||
}
|
||||
assert.ErrorIs(t, err, ErrInvalidInterval)
|
||||
|
||||
_, err = old.ConvertToNewInterval(OneMin)
|
||||
if !errors.Is(err, ErrCanOnlyUpscaleCandles) {
|
||||
t.Errorf("received '%v' expected '%v'", err, ErrCanOnlyUpscaleCandles)
|
||||
}
|
||||
assert.ErrorIs(t, err, ErrCanOnlyUpscaleCandles)
|
||||
|
||||
old.Interval = ThreeDay
|
||||
_, err = old.ConvertToNewInterval(OneWeek)
|
||||
if !errors.Is(err, ErrWholeNumberScaling) {
|
||||
t.Errorf("received '%v' expected '%v'", err, ErrWholeNumberScaling)
|
||||
}
|
||||
assert.ErrorIs(t, err, ErrWholeNumberScaling)
|
||||
|
||||
old.Interval = OneDay
|
||||
newInterval := ThreeDay
|
||||
@@ -889,9 +876,7 @@ func TestConvertToNewInterval(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = old.ConvertToNewInterval(OneMonth)
|
||||
if !errors.Is(err, ErrInsufficientCandleData) {
|
||||
t.Errorf("received '%v' expected '%v'", err, ErrInsufficientCandleData)
|
||||
}
|
||||
assert.ErrorIs(t, err, ErrInsufficientCandleData)
|
||||
|
||||
tn := time.Now().Truncate(time.Duration(OneDay))
|
||||
|
||||
@@ -946,9 +931,7 @@ func TestConvertToNewInterval(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = old.ConvertToNewInterval(newInterval)
|
||||
if !errors.Is(err, errCandleDataNotPadded) {
|
||||
t.Errorf("received '%v' expected '%v'", err, errCandleDataNotPadded)
|
||||
}
|
||||
assert.ErrorIs(t, err, errCandleDataNotPadded)
|
||||
|
||||
err = old.addPadding(tn, tn.AddDate(0, 0, 9), false)
|
||||
require.NoError(t, err)
|
||||
@@ -968,9 +951,7 @@ func TestAddPadding(t *testing.T) {
|
||||
|
||||
var k *Item
|
||||
err := k.addPadding(tn, tn.AddDate(0, 0, 5), false)
|
||||
if !errors.Is(err, errNilKline) {
|
||||
t.Fatalf("received '%v' expected '%v'", err, errNilKline)
|
||||
}
|
||||
require.ErrorIs(t, err, errNilKline)
|
||||
|
||||
k = &Item{}
|
||||
k.Candles = []Candle{
|
||||
@@ -984,9 +965,7 @@ func TestAddPadding(t *testing.T) {
|
||||
},
|
||||
}
|
||||
err = k.addPadding(tn, tn.AddDate(0, 0, 5), false)
|
||||
if !errors.Is(err, ErrInvalidInterval) {
|
||||
t.Fatalf("received '%v' expected '%v'", err, ErrInvalidInterval)
|
||||
}
|
||||
require.ErrorIs(t, err, ErrInvalidInterval)
|
||||
|
||||
k.Interval = OneDay
|
||||
k.Candles = []Candle{
|
||||
@@ -1008,9 +987,7 @@ func TestAddPadding(t *testing.T) {
|
||||
},
|
||||
}
|
||||
err = k.addPadding(tn.AddDate(0, 0, 5), tn, false)
|
||||
if !errors.Is(err, errCannotEstablishTimeWindow) {
|
||||
t.Fatalf("received '%v' expected '%v'", err, errCannotEstablishTimeWindow)
|
||||
}
|
||||
require.ErrorIs(t, err, errCannotEstablishTimeWindow)
|
||||
|
||||
k.Candles = []Candle{
|
||||
{
|
||||
@@ -1040,9 +1017,7 @@ func TestAddPadding(t *testing.T) {
|
||||
}
|
||||
|
||||
err = k.addPadding(tn, tn.AddDate(0, 0, 3), false)
|
||||
if !errors.Is(err, errCandleOpenTimeIsNotUTCAligned) {
|
||||
t.Fatalf("received '%v' expected '%v'", err, errCandleOpenTimeIsNotUTCAligned)
|
||||
}
|
||||
require.ErrorIs(t, err, errCandleOpenTimeIsNotUTCAligned)
|
||||
|
||||
k.Candles = []Candle{
|
||||
{
|
||||
@@ -1127,9 +1102,7 @@ func TestGetClosePriceAtTime(t *testing.T) {
|
||||
t.Errorf("received '%v' expected '%v'", price, 1337)
|
||||
}
|
||||
_, err = k.GetClosePriceAtTime(tt.Add(time.Minute))
|
||||
if !errors.Is(err, ErrNotFoundAtTime) {
|
||||
t.Errorf("received '%v' expected '%v'", err, ErrNotFoundAtTime)
|
||||
}
|
||||
assert.ErrorIs(t, err, ErrNotFoundAtTime)
|
||||
}
|
||||
|
||||
func TestDeployExchangeIntervals(t *testing.T) {
|
||||
@@ -1145,14 +1118,10 @@ func TestDeployExchangeIntervals(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err := exchangeIntervals.Construct(0)
|
||||
if !errors.Is(err, ErrInvalidInterval) {
|
||||
t.Errorf("received '%v' expected '%v'", err, ErrInvalidInterval)
|
||||
}
|
||||
assert.ErrorIs(t, err, ErrInvalidInterval)
|
||||
|
||||
_, err = exchangeIntervals.Construct(OneMin)
|
||||
if !errors.Is(err, ErrCannotConstructInterval) {
|
||||
t.Errorf("received '%v' expected '%v'", err, ErrCannotConstructInterval)
|
||||
}
|
||||
assert.ErrorIs(t, err, ErrCannotConstructInterval)
|
||||
|
||||
request, err := exchangeIntervals.Construct(OneWeek)
|
||||
assert.NoError(t, err)
|
||||
@@ -1214,16 +1183,12 @@ func TestGetIntervalResultLimit(t *testing.T) {
|
||||
|
||||
var e *ExchangeCapabilitiesEnabled
|
||||
_, err := e.GetIntervalResultLimit(OneMin)
|
||||
if !errors.Is(err, errExchangeCapabilitiesEnabledIsNil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, errExchangeCapabilitiesEnabledIsNil)
|
||||
}
|
||||
assert.ErrorIs(t, err, errExchangeCapabilitiesEnabledIsNil)
|
||||
|
||||
e = &ExchangeCapabilitiesEnabled{}
|
||||
e.Intervals = ExchangeIntervals{}
|
||||
_, err = e.GetIntervalResultLimit(OneDay)
|
||||
if !errors.Is(err, errIntervalNotSupported) {
|
||||
t.Errorf("received '%v' expected '%v'", err, errIntervalNotSupported)
|
||||
}
|
||||
assert.ErrorIs(t, err, errIntervalNotSupported)
|
||||
|
||||
e.Intervals = ExchangeIntervals{
|
||||
supported: map[Interval]uint64{
|
||||
@@ -1233,9 +1198,7 @@ func TestGetIntervalResultLimit(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = e.GetIntervalResultLimit(OneMin)
|
||||
if !errors.Is(err, errCannotFetchIntervalLimit) {
|
||||
t.Errorf("received '%v' expected '%v'", err, errCannotFetchIntervalLimit)
|
||||
}
|
||||
assert.ErrorIs(t, err, errCannotFetchIntervalLimit)
|
||||
|
||||
limit, err := e.GetIntervalResultLimit(OneDay)
|
||||
assert.NoError(t, err)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package kline
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"sync"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -15,53 +14,35 @@ import (
|
||||
func TestCreateKlineRequest(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, err := CreateKlineRequest("", currency.EMPTYPAIR, currency.EMPTYPAIR, 0, 0, 0, time.Time{}, time.Time{}, 0)
|
||||
if !errors.Is(err, ErrUnsetName) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, ErrUnsetName)
|
||||
}
|
||||
require.ErrorIs(t, err, ErrUnsetName)
|
||||
|
||||
_, err = CreateKlineRequest("name", currency.EMPTYPAIR, currency.EMPTYPAIR, 0, 0, 0, time.Time{}, time.Time{}, 0)
|
||||
if !errors.Is(err, currency.ErrCurrencyPairEmpty) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, currency.ErrCurrencyPairEmpty)
|
||||
}
|
||||
require.ErrorIs(t, err, currency.ErrCurrencyPairEmpty)
|
||||
|
||||
pair := currency.NewBTCUSDT()
|
||||
_, err = CreateKlineRequest("name", pair, currency.EMPTYPAIR, 0, 0, 0, time.Time{}, time.Time{}, 0)
|
||||
if !errors.Is(err, currency.ErrCurrencyPairEmpty) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, currency.ErrCurrencyPairEmpty)
|
||||
}
|
||||
require.ErrorIs(t, err, currency.ErrCurrencyPairEmpty)
|
||||
|
||||
pair2 := pair.Upper()
|
||||
_, err = CreateKlineRequest("name", pair, pair2, 0, 0, 0, time.Time{}, time.Time{}, 0)
|
||||
if !errors.Is(err, asset.ErrNotSupported) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, asset.ErrNotSupported)
|
||||
}
|
||||
require.ErrorIs(t, err, asset.ErrNotSupported)
|
||||
|
||||
_, err = CreateKlineRequest("name", pair, pair2, asset.Spot, 0, 0, time.Time{}, time.Time{}, 0)
|
||||
if !errors.Is(err, ErrInvalidInterval) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, ErrInvalidInterval)
|
||||
}
|
||||
require.ErrorIs(t, err, ErrInvalidInterval)
|
||||
|
||||
_, err = CreateKlineRequest("name", pair, pair2, asset.Spot, OneHour, 0, time.Time{}, time.Time{}, 0)
|
||||
if !errors.Is(err, ErrInvalidInterval) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, ErrInvalidInterval)
|
||||
}
|
||||
require.ErrorIs(t, err, ErrInvalidInterval)
|
||||
|
||||
_, err = CreateKlineRequest("name", pair, pair2, asset.Spot, OneHour, OneMin, time.Time{}, time.Time{}, 0)
|
||||
if !errors.Is(err, common.ErrDateUnset) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, common.ErrDateUnset)
|
||||
}
|
||||
require.ErrorIs(t, err, common.ErrDateUnset)
|
||||
|
||||
start := time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC)
|
||||
_, err = CreateKlineRequest("name", pair, pair2, asset.Spot, OneHour, OneMin, start, time.Time{}, 0)
|
||||
if !errors.Is(err, common.ErrDateUnset) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, common.ErrDateUnset)
|
||||
}
|
||||
require.ErrorIs(t, err, common.ErrDateUnset)
|
||||
|
||||
end := start.AddDate(0, 0, 1)
|
||||
_, err = CreateKlineRequest("name", pair, pair2, asset.Spot, OneHour, OneMin, start, end, 0)
|
||||
if !errors.Is(err, errInvalidSpecificEndpointLimit) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, errInvalidSpecificEndpointLimit)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidSpecificEndpointLimit)
|
||||
|
||||
r, err := CreateKlineRequest("name", pair, pair2, asset.Spot, OneHour, OneMin, start, end, 1)
|
||||
require.NoError(t, err)
|
||||
@@ -119,9 +100,7 @@ func TestGetRanges(t *testing.T) {
|
||||
|
||||
var r *Request
|
||||
_, err := r.GetRanges(100)
|
||||
if !errors.Is(err, errNilRequest) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, errNilRequest)
|
||||
}
|
||||
require.ErrorIs(t, err, errNilRequest)
|
||||
|
||||
r, err = CreateKlineRequest("name", pair, pair, asset.Spot, OneHour, OneMin, start, end, 1)
|
||||
require.NoError(t, err)
|
||||
@@ -195,20 +174,14 @@ func TestRequest_ProcessResponse(t *testing.T) {
|
||||
|
||||
var r *Request
|
||||
_, err := r.ProcessResponse(nil)
|
||||
if !errors.Is(err, errNilRequest) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, errNilRequest)
|
||||
}
|
||||
require.ErrorIs(t, err, errNilRequest)
|
||||
|
||||
r = &Request{}
|
||||
_, err = r.ProcessResponse(nil)
|
||||
if !errors.Is(err, ErrNoTimeSeriesDataToConvert) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, ErrNoTimeSeriesDataToConvert)
|
||||
}
|
||||
require.ErrorIs(t, err, ErrNoTimeSeriesDataToConvert)
|
||||
|
||||
_, err = CreateKlineRequest("name", pair, pair, asset.Spot, OneHour, OneHour, start, end, 0)
|
||||
if !errors.Is(err, errInvalidSpecificEndpointLimit) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidSpecificEndpointLimit)
|
||||
|
||||
// no conversion
|
||||
r, err = CreateKlineRequest("name", pair, pair, asset.Spot, OneHour, OneHour, start, end, 1)
|
||||
@@ -310,15 +283,11 @@ func TestExtendedRequest_ProcessResponse(t *testing.T) {
|
||||
|
||||
var rExt *ExtendedRequest
|
||||
_, err := rExt.ProcessResponse(nil)
|
||||
if !errors.Is(err, errNilRequest) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, errNilRequest)
|
||||
}
|
||||
require.ErrorIs(t, err, errNilRequest)
|
||||
|
||||
rExt = &ExtendedRequest{}
|
||||
_, err = rExt.ProcessResponse(nil)
|
||||
if !errors.Is(err, ErrNoTimeSeriesDataToConvert) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, ErrNoTimeSeriesDataToConvert)
|
||||
}
|
||||
require.ErrorIs(t, err, ErrNoTimeSeriesDataToConvert)
|
||||
|
||||
// no conversion
|
||||
r, err := CreateKlineRequest("name", pair, pair, asset.Spot, OneHour, OneHour, start, end, 1)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package kline
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
@@ -19,38 +18,26 @@ func TestGetAverageTrueRange(t *testing.T) {
|
||||
|
||||
var ohlc *OHLC
|
||||
_, err := ohlc.GetAverageTrueRange(0)
|
||||
if !errors.Is(err, errNilOHLC) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNilOHLC)
|
||||
}
|
||||
require.ErrorIs(t, err, errNilOHLC)
|
||||
|
||||
ohlc = &OHLC{}
|
||||
_, err = ohlc.GetAverageTrueRange(0)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetAverageTrueRange(9)
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
ohlc.High = append(ohlc.High, 1337)
|
||||
_, err = ohlc.GetAverageTrueRange(9)
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
ohlc.Low = append(ohlc.Low, 1337)
|
||||
_, err = ohlc.GetAverageTrueRange(9)
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
ohlc.Close = append(ohlc.Close, 1337)
|
||||
_, err = ohlc.GetAverageTrueRange(9)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetAverageTrueRange(1)
|
||||
require.NoError(t, err)
|
||||
@@ -65,36 +52,24 @@ func TestGetBollingerBands(t *testing.T) {
|
||||
|
||||
var ohlc *OHLC
|
||||
_, err := ohlc.GetBollingerBands(0, 0, 0, 5)
|
||||
if !errors.Is(err, errNilOHLC) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNilOHLC)
|
||||
}
|
||||
require.ErrorIs(t, err, errNilOHLC)
|
||||
|
||||
ohlc = &OHLC{}
|
||||
_, err = ohlc.GetBollingerBands(0, 0, 0, 5)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetBollingerBands(9, 0, 0, 5)
|
||||
if !errors.Is(err, errInvalidDeviationMultiplier) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidDeviationMultiplier)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidDeviationMultiplier)
|
||||
|
||||
_, err = ohlc.GetBollingerBands(9, 1, 0, 5)
|
||||
if !errors.Is(err, errInvalidDeviationMultiplier) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidDeviationMultiplier)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidDeviationMultiplier)
|
||||
|
||||
_, err = ohlc.GetBollingerBands(9, 1, 1, 5)
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
ohlc.Close = append(ohlc.Close, 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337)
|
||||
_, err = ohlc.GetBollingerBands(10, 1, 1, 5)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetBollingerBands(9, 1, 1, 5)
|
||||
require.NoError(t, err)
|
||||
@@ -109,48 +84,32 @@ func TestGetCorrelationCoefficient(t *testing.T) {
|
||||
|
||||
var ohlc *OHLC
|
||||
_, err := ohlc.GetCorrelationCoefficient(nil, 0)
|
||||
if !errors.Is(err, errNilOHLC) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNilOHLC)
|
||||
}
|
||||
require.ErrorIs(t, err, errNilOHLC)
|
||||
|
||||
ohlc = &OHLC{}
|
||||
_, err = ohlc.GetCorrelationCoefficient(nil, 0)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetCorrelationCoefficient(nil, 1)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetCorrelationCoefficient(nil, 2)
|
||||
if !errors.Is(err, errNilOHLC) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNilOHLC)
|
||||
}
|
||||
require.ErrorIs(t, err, errNilOHLC)
|
||||
|
||||
_, err = ohlc.GetCorrelationCoefficient(&OHLC{}, 9)
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
ohlc.Close = append(ohlc.Close, 1337, 1337)
|
||||
|
||||
_, err = ohlc.GetCorrelationCoefficient(&OHLC{}, 9)
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
_, err = ohlc.GetCorrelationCoefficient(&OHLC{Close: []float64{1337}}, 2)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
ohlc.Close = append(ohlc.Close, 1337)
|
||||
_, err = ohlc.GetCorrelationCoefficient(&OHLC{Close: []float64{1337, 1337}}, 2)
|
||||
if !errors.Is(err, errInvalidDataSetLengths) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidDataSetLengths)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidDataSetLengths)
|
||||
|
||||
_, err = ohlc.GetCorrelationCoefficient(&OHLC{Close: []float64{1337, 1337, 1337}}, 2)
|
||||
require.NoError(t, err)
|
||||
@@ -165,25 +124,17 @@ func TestGetSimpleMovingAverage(t *testing.T) {
|
||||
|
||||
var ohlc *OHLC
|
||||
_, err := ohlc.GetSimpleMovingAverage(nil, 0)
|
||||
if !errors.Is(err, errNilOHLC) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNilOHLC)
|
||||
}
|
||||
require.ErrorIs(t, err, errNilOHLC)
|
||||
|
||||
ohlc = &OHLC{}
|
||||
_, err = ohlc.GetSimpleMovingAverage(nil, 0)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetSimpleMovingAverage(nil, 9)
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
_, err = ohlc.GetSimpleMovingAverage([]float64{1337}, 9)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetSimpleMovingAverage([]float64{1337, 1337}, 2)
|
||||
require.NoError(t, err)
|
||||
@@ -198,25 +149,17 @@ func TestGetExponentialMovingAverage(t *testing.T) {
|
||||
|
||||
var ohlc *OHLC
|
||||
_, err := ohlc.GetExponentialMovingAverage(nil, 0)
|
||||
if !errors.Is(err, errNilOHLC) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNilOHLC)
|
||||
}
|
||||
require.ErrorIs(t, err, errNilOHLC)
|
||||
|
||||
ohlc = &OHLC{}
|
||||
_, err = ohlc.GetExponentialMovingAverage(nil, 0)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetExponentialMovingAverage(nil, 9)
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
_, err = ohlc.GetExponentialMovingAverage([]float64{1337}, 9)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetExponentialMovingAverage([]float64{1337, 1337, 1337}, 2)
|
||||
require.NoError(t, err)
|
||||
@@ -231,40 +174,26 @@ func TestGetMovingAverageConvergenceDivergence(t *testing.T) {
|
||||
|
||||
var ohlc *OHLC
|
||||
_, err := ohlc.GetMovingAverageConvergenceDivergence(nil, 0, 0, 0)
|
||||
if !errors.Is(err, errNilOHLC) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNilOHLC)
|
||||
}
|
||||
require.ErrorIs(t, err, errNilOHLC)
|
||||
|
||||
ohlc = &OHLC{}
|
||||
_, err = ohlc.GetMovingAverageConvergenceDivergence(nil, 0, 0, 0)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetMovingAverageConvergenceDivergence(nil, 1, 0, 0)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetMovingAverageConvergenceDivergence(nil, 1, 1, 0)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetMovingAverageConvergenceDivergence(nil, 1, 2, 0)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetMovingAverageConvergenceDivergence(nil, 1, 2, 1)
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
_, err = ohlc.GetMovingAverageConvergenceDivergence([]float64{1337}, 1, 2, 2)
|
||||
if !errors.Is(err, errNotEnoughData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNotEnoughData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNotEnoughData)
|
||||
|
||||
_, err = ohlc.GetMovingAverageConvergenceDivergence([]float64{1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337}, 1, 2, 1)
|
||||
require.NoError(t, err)
|
||||
@@ -279,50 +208,34 @@ func TestGetMoneyFlowIndex(t *testing.T) {
|
||||
|
||||
var ohlc *OHLC
|
||||
_, err := ohlc.GetMoneyFlowIndex(0)
|
||||
if !errors.Is(err, errNilOHLC) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNilOHLC)
|
||||
}
|
||||
require.ErrorIs(t, err, errNilOHLC)
|
||||
|
||||
ohlc = &OHLC{}
|
||||
_, err = ohlc.GetMoneyFlowIndex(0)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetMoneyFlowIndex(9)
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
ohlc.High = append(ohlc.High, 1337, 1337, 1337, 1337, 1337, 1337)
|
||||
_, err = ohlc.GetMoneyFlowIndex(9)
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
ohlc.Low = append(ohlc.Low, 1337, 1337, 1337, 1337, 1337, 1337)
|
||||
_, err = ohlc.GetMoneyFlowIndex(9)
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
ohlc.Close = append(ohlc.Close, 1337, 1337, 1337, 1337, 1337, 1337)
|
||||
_, err = ohlc.GetMoneyFlowIndex(9)
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
ohlc.Volume = append(ohlc.Volume, 1337, 1337, 1337, 1337, 1337)
|
||||
_, err = ohlc.GetMoneyFlowIndex(5)
|
||||
if !errors.Is(err, errInvalidDataSetLengths) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidDataSetLengths)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidDataSetLengths)
|
||||
|
||||
ohlc.Volume = append(ohlc.Volume, 1337)
|
||||
_, err = ohlc.GetMoneyFlowIndex(6)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetMoneyFlowIndex(3)
|
||||
require.NoError(t, err)
|
||||
@@ -341,21 +254,15 @@ func TestGetOnBalanceVolume(t *testing.T) {
|
||||
|
||||
var ohlc *OHLC
|
||||
_, err := ohlc.GetOnBalanceVolume()
|
||||
if !errors.Is(err, errNilOHLC) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNilOHLC)
|
||||
}
|
||||
require.ErrorIs(t, err, errNilOHLC)
|
||||
|
||||
ohlc = &OHLC{}
|
||||
_, err = ohlc.GetOnBalanceVolume()
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
ohlc.Close = append(ohlc.Close, 1337, 1337, 1337, 1337, 1337, 1337)
|
||||
_, err = ohlc.GetOnBalanceVolume()
|
||||
if !errors.Is(err, errNoData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNoData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
|
||||
ohlc.Volume = append(ohlc.Volume, 0.00000001)
|
||||
_, err = ohlc.GetOnBalanceVolume()
|
||||
@@ -371,25 +278,17 @@ func TestGetRelativeStrengthIndex(t *testing.T) {
|
||||
|
||||
var ohlc *OHLC
|
||||
_, err := ohlc.GetRelativeStrengthIndex(nil, 0)
|
||||
if !errors.Is(err, errNilOHLC) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNilOHLC)
|
||||
}
|
||||
require.ErrorIs(t, err, errNilOHLC)
|
||||
|
||||
ohlc = &OHLC{}
|
||||
_, err = ohlc.GetRelativeStrengthIndex(nil, 0)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
_, err = ohlc.GetRelativeStrengthIndex(nil, 9)
|
||||
if !errors.Is(err, errNotEnoughData) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errNotEnoughData)
|
||||
}
|
||||
require.ErrorIs(t, err, errNotEnoughData)
|
||||
|
||||
_, err = ohlc.GetRelativeStrengthIndex([]float64{1337, 1337, 1337}, 9)
|
||||
if !errors.Is(err, errInvalidPeriod) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, errInvalidPeriod)
|
||||
}
|
||||
require.ErrorIs(t, err, errInvalidPeriod)
|
||||
|
||||
wrap := Item{Candles: []Candle{{Close: 1337}, {Close: 1337}, {Close: 1337}}}
|
||||
_, err = wrap.GetRelativeStrengthIndexOnClose(2)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package kline
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"math"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var accuracy10dp = 1 / math.Pow10(10)
|
||||
@@ -142,10 +142,8 @@ var expectVWAPs = []float64{245.05046666666664, 245.00156932123465, 245.07320400
|
||||
func TestGetVWAPs(t *testing.T) {
|
||||
t.Parallel()
|
||||
candles := Item{}
|
||||
if _, err := candles.GetVWAPs(); !errors.Is(err, errNoData) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err := candles.GetVWAPs()
|
||||
require.ErrorIs(t, err, errNoData)
|
||||
candles.Candles = vwapdataset
|
||||
vwap, err := candles.GetVWAPs()
|
||||
assert.NoError(t, err, "GetVWAPs should not error")
|
||||
|
||||
Reference in New Issue
Block a user