mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-06-05 23:16:53 +00:00
GHA: Add additional checks for common issues (#1922)
* GHA, tests: Add additional checks for common issues These checks include: - Ensuring that all testify funcs use their formatted variants (e.g., `assert.Equalf(t, expected, actual)` instead of `assert.Equal(t, expected, actual)`). - Replacing `%s` with %q - Enforcing consistent usage of should/must wording for testify assert/require messages * Add support for checking backticked string format specifiers and fix issues * tests: Fix error comparisons * tests: Replace errors.Is(err, nil) usage with testify and automate check * refactor: Rename ExtractPort to ExtractPortOrDefault * tests: Replace assert with require for error handling in multiple test files * tests: Replace assert with require for error handling and improve assertions in data tests * tests: Fix typo in assertion message for StreamVol test * OKX: Fix GetOpenInterestAndVolumeStrike test with instrument selection and improved assertions * OKX: Revert intentional error check * Improve error message for expiry time check in GetOpenInterestAndVolumeStrike test
This commit is contained in:
@@ -205,7 +205,7 @@ func (k *Item) addPadding(start, exclusiveEnd time.Time, purgeOnPartial bool) er
|
||||
padded[x].Time = start
|
||||
case !k.Candles[target].Time.Equal(start):
|
||||
if k.Candles[target].Time.Before(start) {
|
||||
return fmt.Errorf("%w '%s' should be '%s' at '%s' interval",
|
||||
return fmt.Errorf("%w %q should be %q at %q interval",
|
||||
errCandleOpenTimeIsNotUTCAligned,
|
||||
k.Candles[target].Time,
|
||||
start.Add(k.Interval.Duration()),
|
||||
|
||||
@@ -77,9 +77,7 @@ func TestValidateData(t *testing.T) {
|
||||
}
|
||||
|
||||
err = validateData(trade4)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if trade4[0].TID != "1" || trade4[1].TID != "2" || trade4[2].TID != "3" {
|
||||
t.Error("trade history sorted incorrectly")
|
||||
@@ -651,9 +649,8 @@ func TestVerifyResultsHaveData(t *testing.T) {
|
||||
tt2 := tt1.Add(OneDay.Duration())
|
||||
tt3 := tt2.Add(OneDay.Duration()) // end date no longer inclusive
|
||||
dateRanges, err := CalculateCandleDateRanges(tt1, tt3, OneDay, 0)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if dateRanges.HasDataAtDate(tt1) {
|
||||
t.Error("unexpected true value")
|
||||
}
|
||||
@@ -666,9 +663,7 @@ func TestVerifyResultsHaveData(t *testing.T) {
|
||||
Time: tt2,
|
||||
},
|
||||
})
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if !dateRanges.HasDataAtDate(tt1) {
|
||||
t.Error("expected true")
|
||||
@@ -682,9 +677,8 @@ func TestVerifyResultsHaveData(t *testing.T) {
|
||||
Low: 1337,
|
||||
},
|
||||
})
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if dateRanges.HasDataAtDate(tt1) {
|
||||
t.Error("expected false")
|
||||
}
|
||||
@@ -696,17 +690,15 @@ func TestDataSummary(t *testing.T) {
|
||||
tt2 := time.Now().Round(OneDay.Duration())
|
||||
tt3 := time.Now().Add(time.Hour * 24).Round(OneDay.Duration())
|
||||
dateRanges, err := CalculateCandleDateRanges(tt1, tt2, OneDay, 0)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
result := dateRanges.DataSummary(false)
|
||||
if len(result) != 1 {
|
||||
t.Errorf("expected %v received %v", 1, len(result))
|
||||
}
|
||||
dateRanges, err = CalculateCandleDateRanges(tt1, tt3, OneDay, 0)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
dateRanges.Ranges[0].Intervals[0].HasData = true
|
||||
result = dateRanges.DataSummary(true)
|
||||
if len(result) != 2 {
|
||||
@@ -724,9 +716,8 @@ func TestHasDataAtDate(t *testing.T) {
|
||||
tt2 := tt1.Add(OneDay.Duration())
|
||||
tt3 := tt2.Add(OneDay.Duration()) // end date no longer inclusive
|
||||
dateRanges, err := CalculateCandleDateRanges(tt1, tt3, OneDay, 0)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if dateRanges.HasDataAtDate(tt2) {
|
||||
t.Error("unexpected true value")
|
||||
}
|
||||
@@ -741,9 +732,7 @@ func TestHasDataAtDate(t *testing.T) {
|
||||
Close: 1337,
|
||||
},
|
||||
})
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if !dateRanges.HasDataAtDate(tt2) {
|
||||
t.Error("unexpected false value")
|
||||
@@ -871,9 +860,8 @@ func TestConvertToNewInterval(t *testing.T) {
|
||||
old.Interval = OneDay
|
||||
newInterval := ThreeDay
|
||||
newCandle, err := old.ConvertToNewInterval(newInterval)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if len(newCandle.Candles) != 1 {
|
||||
t.Error("expected one candle")
|
||||
}
|
||||
@@ -894,9 +882,8 @@ func TestConvertToNewInterval(t *testing.T) {
|
||||
Volume: 111,
|
||||
})
|
||||
newCandle, err = old.ConvertToNewInterval(newInterval)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if len(newCandle.Candles) != 1 {
|
||||
t.Error("expected one candle")
|
||||
}
|
||||
@@ -964,14 +951,10 @@ func TestConvertToNewInterval(t *testing.T) {
|
||||
}
|
||||
|
||||
err = old.addPadding(tn, tn.AddDate(0, 0, 9), false)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
newCandle, err = old.ConvertToNewInterval(newInterval)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if len(newCandle.Candles) != 3 {
|
||||
t.Errorf("received '%v' expected '%v'", len(newCandle.Candles), 3)
|
||||
@@ -1089,9 +1072,7 @@ func TestAddPadding(t *testing.T) {
|
||||
}
|
||||
|
||||
err = k.addPadding(tn, tn.AddDate(0, 0, 3), false)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if len(k.Candles) != 3 {
|
||||
t.Fatalf("received '%v' expected '%v'", len(k.Candles), 3)
|
||||
@@ -1107,9 +1088,7 @@ func TestAddPadding(t *testing.T) {
|
||||
})
|
||||
|
||||
err = k.addPadding(tn, tn.AddDate(0, 0, 6), false)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if len(k.Candles) != 6 {
|
||||
t.Fatalf("received '%v' expected '%v'", len(k.Candles), 6)
|
||||
@@ -1119,9 +1098,7 @@ func TestAddPadding(t *testing.T) {
|
||||
k.Candles = nil
|
||||
|
||||
err = k.addPadding(tn, tn.AddDate(0, 0, 6), false)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if len(k.Candles) != 6 {
|
||||
t.Errorf("received '%v' expected '%v'", len(k.Candles), 6)
|
||||
@@ -1144,9 +1121,8 @@ func TestGetClosePriceAtTime(t *testing.T) {
|
||||
},
|
||||
}
|
||||
price, err := k.GetClosePriceAtTime(tt)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if price != 1337 {
|
||||
t.Errorf("received '%v' expected '%v'", price, 1337)
|
||||
}
|
||||
@@ -1179,9 +1155,7 @@ func TestDeployExchangeIntervals(t *testing.T) {
|
||||
}
|
||||
|
||||
request, err := exchangeIntervals.Construct(OneWeek)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if request != OneWeek {
|
||||
t.Errorf("received '%v' expected '%v'", request, OneWeek)
|
||||
@@ -1190,9 +1164,7 @@ func TestDeployExchangeIntervals(t *testing.T) {
|
||||
exchangeIntervals = DeployExchangeIntervals(IntervalCapacity{Interval: OneWeek}, IntervalCapacity{Interval: OneDay})
|
||||
|
||||
request, err = exchangeIntervals.Construct(OneMonth)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if request != OneDay {
|
||||
t.Errorf("received '%v' expected '%v'", request, OneDay)
|
||||
@@ -1204,14 +1176,11 @@ func TestSetHasDataFromCandles(t *testing.T) {
|
||||
ohc := getOneHour()
|
||||
localEnd := ohc[len(ohc)-1].Time.Add(OneHour.Duration())
|
||||
i, err := CalculateCandleDateRanges(ohc[0].Time, localEnd, OneHour, 100000)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
err = i.SetHasDataFromCandles(ohc)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if !i.Start.Equal(ohc[0].Time) {
|
||||
t.Errorf("received '%v' expected '%v'", i.Start.Time, ohc[0].Time)
|
||||
}
|
||||
@@ -1224,14 +1193,11 @@ func TestSetHasDataFromCandles(t *testing.T) {
|
||||
Candles: ohc[2:],
|
||||
}
|
||||
err = k.addPadding(i.Start.Time, i.End.Time, false)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
err = i.SetHasDataFromCandles(k.Candles)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if !i.Start.Equal(k.Candles[0].Time) {
|
||||
t.Errorf("received '%v' expected '%v'", i.Start.Time, k.Candles[0].Time)
|
||||
}
|
||||
@@ -1272,9 +1238,7 @@ func TestGetIntervalResultLimit(t *testing.T) {
|
||||
}
|
||||
|
||||
limit, err := e.GetIntervalResultLimit(OneDay)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if limit != 100000 {
|
||||
t.Errorf("received '%v' expected '%v'", limit, 100000)
|
||||
@@ -1282,9 +1246,7 @@ func TestGetIntervalResultLimit(t *testing.T) {
|
||||
|
||||
e.GlobalResultLimit = 1337
|
||||
limit, err = e.GetIntervalResultLimit(OneMin)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Errorf("received '%v' expected '%v'", err, nil)
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
|
||||
if limit != 1337 {
|
||||
t.Errorf("received '%v' expected '%v'", limit, 1337)
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/thrasher-corp/gocryptotrader/common"
|
||||
"github.com/thrasher-corp/gocryptotrader/currency"
|
||||
"github.com/thrasher-corp/gocryptotrader/exchanges/asset"
|
||||
@@ -63,9 +64,7 @@ func TestCreateKlineRequest(t *testing.T) {
|
||||
}
|
||||
|
||||
r, err := CreateKlineRequest("name", pair, pair2, asset.Spot, OneHour, OneMin, start, end, 1)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if r.Exchange != "name" {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", r.Exchange, "name")
|
||||
@@ -104,9 +103,7 @@ func TestCreateKlineRequest(t *testing.T) {
|
||||
end = end.Round(0)
|
||||
end = end.Add(time.Second * 30)
|
||||
r, err = CreateKlineRequest("name", pair, pair2, asset.Spot, OneHour, OneMin, start, end, 1)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if !r.End.Equal(end.Add(OneHour.Duration() - (time.Second * 30))) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", r.End, end.Add(OneHour.Duration()-(time.Second*30)))
|
||||
@@ -127,14 +124,10 @@ func TestGetRanges(t *testing.T) {
|
||||
}
|
||||
|
||||
r, err = CreateKlineRequest("name", pair, pair, asset.Spot, OneHour, OneMin, start, end, 1)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
holder, err := r.GetRanges(100)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if len(holder.Ranges) != 15 {
|
||||
t.Fatalf("received: '%v', but expected '%v'", len(holder.Ranges), 15)
|
||||
@@ -219,14 +212,10 @@ func TestRequest_ProcessResponse(t *testing.T) {
|
||||
|
||||
// no conversion
|
||||
r, err = CreateKlineRequest("name", pair, pair, asset.Spot, OneHour, OneHour, start, end, 1)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
holder, err := r.ProcessResponse(getOneHour())
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if len(holder.Candles) != 24 {
|
||||
t.Fatalf("received: '%v', but expected '%v'", len(holder.Candles), 24)
|
||||
@@ -234,14 +223,10 @@ func TestRequest_ProcessResponse(t *testing.T) {
|
||||
|
||||
// with conversion
|
||||
r, err = CreateKlineRequest("name", pair, pair, asset.Spot, OneHour, OneMin, start, end, 1)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
holder, err = r.ProcessResponse(getOneMinute())
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if len(holder.Candles) != 24 {
|
||||
t.Fatalf("received: '%v', but expected '%v'", len(holder.Candles), 24)
|
||||
@@ -251,9 +236,7 @@ func TestRequest_ProcessResponse(t *testing.T) {
|
||||
end = time.Now().UTC()
|
||||
start = end.AddDate(0, 0, -5).Truncate(time.Duration(OneDay))
|
||||
r, err = CreateKlineRequest("name", pair, pair, asset.Spot, OneDay, OneDay, start, end, 1)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if !r.PartialCandle {
|
||||
t.Fatalf("received: '%v', but expected '%v'", r.PartialCandle, true)
|
||||
@@ -269,9 +252,7 @@ func TestRequest_ProcessResponse(t *testing.T) {
|
||||
}
|
||||
|
||||
sweetItem, err := r.ProcessResponse(hasIncomplete)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if sweetItem.Candles[len(sweetItem.Candles)-1].ValidationIssues != PartialCandle {
|
||||
t.Fatalf("received: '%v', but expected '%v'", "no issues", PartialCandle)
|
||||
@@ -286,9 +267,7 @@ func TestRequest_ProcessResponse(t *testing.T) {
|
||||
}
|
||||
|
||||
sweetItem, err = r.ProcessResponse(missingIncomplete)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if sweetItem.Candles[len(sweetItem.Candles)-1].ValidationIssues == PartialCandle {
|
||||
t.Fatalf("received: '%v', but expected '%v'", sweetItem.Candles[len(sweetItem.Candles)-1].ValidationIssues, "no issues")
|
||||
@@ -296,23 +275,17 @@ func TestRequest_ProcessResponse(t *testing.T) {
|
||||
|
||||
// end date far into the dark depths of future reality
|
||||
r, err = CreateKlineRequest("name", pair, pair, asset.Spot, OneDay, OneDay, start, end.AddDate(1, 0, 0), 1)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
sweetItem, err = r.ProcessResponse(hasIncomplete)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if sweetItem.Candles[len(sweetItem.Candles)-1].ValidationIssues != PartialCandle {
|
||||
t.Fatalf("received: '%v', but expected '%v'", "no issues", PartialCandle)
|
||||
}
|
||||
|
||||
sweetItem, err = r.ProcessResponse(missingIncomplete)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if len(sweetItem.Candles) != 5 {
|
||||
t.Fatalf("received: '%v', but expected '%v'", len(sweetItem.Candles), 5)
|
||||
@@ -349,21 +322,16 @@ func TestExtendedRequest_ProcessResponse(t *testing.T) {
|
||||
|
||||
// no conversion
|
||||
r, err := CreateKlineRequest("name", pair, pair, asset.Spot, OneHour, OneHour, start, end, 1)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
r.ProcessedCandles = ohc
|
||||
dates, err := r.GetRanges(100)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
rExt = &ExtendedRequest{r, dates}
|
||||
|
||||
holder, err := rExt.ProcessResponse(ohc)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if len(holder.Candles) != 24 {
|
||||
t.Fatalf("received: '%v', but expected '%v'", len(holder.Candles), 24)
|
||||
@@ -372,21 +340,15 @@ func TestExtendedRequest_ProcessResponse(t *testing.T) {
|
||||
// with conversion
|
||||
ohc = getOneMinute()
|
||||
r, err = CreateKlineRequest("name", pair, pair, asset.Spot, OneHour, OneMin, start, end, 1)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
dates, err = r.GetRanges(100)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
r.IsExtended = true
|
||||
rExt = &ExtendedRequest{r, dates}
|
||||
holder, err = rExt.ProcessResponse(ohc)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v', but expected '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
if len(holder.Candles) != 24 {
|
||||
t.Fatalf("received: '%v', but expected '%v'", len(holder.Candles), 24)
|
||||
|
||||
@@ -3,6 +3,8 @@ package kline
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestGetOHLC(t *testing.T) {
|
||||
@@ -51,15 +53,11 @@ func TestGetAverageTrueRange(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = ohlc.GetAverageTrueRange(1)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
wrap := Item{Candles: []Candle{{High: 1337, Low: 1337, Close: 1337}}}
|
||||
_, err = wrap.GetAverageTrueRange(1)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestGetBollingerBands(t *testing.T) {
|
||||
@@ -99,15 +97,11 @@ func TestGetBollingerBands(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = ohlc.GetBollingerBands(9, 1, 1, 5)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
wrap := Item{Candles: []Candle{{Close: 1337}, {Close: 1337}, {Close: 1337}, {Close: 1337}, {Close: 1337}, {Close: 1337}, {Close: 1337}, {Close: 1337}, {Close: 1337}}}
|
||||
_, err = wrap.GetBollingerBands(9, 1, 1, 5)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestGetCorrelationCoefficient(t *testing.T) {
|
||||
@@ -159,15 +153,11 @@ func TestGetCorrelationCoefficient(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = ohlc.GetCorrelationCoefficient(&OHLC{Close: []float64{1337, 1337, 1337}}, 2)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
wrap := Item{Candles: []Candle{{Close: 1337}, {Close: 1337}, {Close: 1337}}}
|
||||
_, err = wrap.GetCorrelationCoefficient(&Item{Candles: []Candle{{Close: 1337}, {Close: 1337}, {Close: 1337}}}, 2)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestGetSimpleMovingAverage(t *testing.T) {
|
||||
@@ -196,15 +186,11 @@ func TestGetSimpleMovingAverage(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = ohlc.GetSimpleMovingAverage([]float64{1337, 1337}, 2)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
wrap := Item{Candles: []Candle{{Close: 1337}, {Close: 1337}}}
|
||||
_, err = wrap.GetSimpleMovingAverageOnClose(2)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestGetExponentialMovingAverage(t *testing.T) {
|
||||
@@ -233,15 +219,11 @@ func TestGetExponentialMovingAverage(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = ohlc.GetExponentialMovingAverage([]float64{1337, 1337, 1337}, 2)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
wrap := Item{Candles: []Candle{{Close: 1337}, {Close: 1337}, {Close: 1337}}}
|
||||
_, err = wrap.GetExponentialMovingAverageOnClose(2)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestGetMovingAverageConvergenceDivergence(t *testing.T) {
|
||||
@@ -285,15 +267,11 @@ func TestGetMovingAverageConvergenceDivergence(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = ohlc.GetMovingAverageConvergenceDivergence([]float64{1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337}, 1, 2, 1)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
wrap := Item{Candles: []Candle{{Close: 1337}, {Close: 1337}, {Close: 1337}, {Close: 1337}, {Close: 1337}, {Close: 1337}, {Close: 1337}, {Close: 1337}}}
|
||||
_, err = wrap.GetMovingAverageConvergenceDivergenceOnClose(1, 2, 1)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestGetMoneyFlowIndex(t *testing.T) {
|
||||
@@ -347,9 +325,7 @@ func TestGetMoneyFlowIndex(t *testing.T) {
|
||||
}
|
||||
|
||||
_, err = ohlc.GetMoneyFlowIndex(3)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
wrap := Item{Candles: []Candle{
|
||||
{Close: 1337, High: 1337, Low: 1337, Volume: 1337},
|
||||
@@ -357,9 +333,7 @@ func TestGetMoneyFlowIndex(t *testing.T) {
|
||||
{Close: 1337, High: 1337, Low: 1337, Volume: 1337},
|
||||
}}
|
||||
_, err = wrap.GetMoneyFlowIndex(2)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestGetOnBalanceVolume(t *testing.T) {
|
||||
@@ -385,15 +359,11 @@ func TestGetOnBalanceVolume(t *testing.T) {
|
||||
|
||||
ohlc.Volume = append(ohlc.Volume, 0.00000001)
|
||||
_, err = ohlc.GetOnBalanceVolume()
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
wrap := Item{Candles: []Candle{{Close: 1337, Volume: 1337}}}
|
||||
_, err = wrap.GetOnBalanceVolume()
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestGetRelativeStrengthIndex(t *testing.T) {
|
||||
@@ -423,7 +393,5 @@ func TestGetRelativeStrengthIndex(t *testing.T) {
|
||||
|
||||
wrap := Item{Candles: []Candle{{Close: 1337}, {Close: 1337}, {Close: 1337}}}
|
||||
_, err = wrap.GetRelativeStrengthIndexOnClose(2)
|
||||
if !errors.Is(err, nil) {
|
||||
t.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user