Adding upstream version 2.1.2.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
c8c64afc61
commit
41a2f19f12
220 changed files with 19814 additions and 0 deletions
111
sma_series_test.go
Normal file
111
sma_series_test.go
Normal file
|
@ -0,0 +1,111 @@
|
|||
package chart
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/wcharczuk/go-chart/v2/testutil"
|
||||
)
|
||||
|
||||
type mockValuesProvider struct {
|
||||
X []float64
|
||||
Y []float64
|
||||
}
|
||||
|
||||
func (m mockValuesProvider) Len() int {
|
||||
return MinInt(len(m.X), len(m.Y))
|
||||
}
|
||||
|
||||
func (m mockValuesProvider) GetValues(index int) (x, y float64) {
|
||||
if index < 0 {
|
||||
panic("negative index at GetValue()")
|
||||
}
|
||||
if index >= MinInt(len(m.X), len(m.Y)) {
|
||||
panic("index is outside the length of m.X or m.Y")
|
||||
}
|
||||
x = m.X[index]
|
||||
y = m.Y[index]
|
||||
return
|
||||
}
|
||||
|
||||
func TestSMASeriesGetValue(t *testing.T) {
|
||||
// replaced new assertions helper
|
||||
|
||||
mockSeries := mockValuesProvider{
|
||||
LinearRange(1.0, 10.0),
|
||||
LinearRange(10, 1.0),
|
||||
}
|
||||
testutil.AssertEqual(t, 10, mockSeries.Len())
|
||||
|
||||
mas := &SMASeries{
|
||||
InnerSeries: mockSeries,
|
||||
Period: 10,
|
||||
}
|
||||
|
||||
var yvalues []float64
|
||||
for x := 0; x < mas.Len(); x++ {
|
||||
_, y := mas.GetValues(x)
|
||||
yvalues = append(yvalues, y)
|
||||
}
|
||||
|
||||
testutil.AssertEqual(t, 10.0, yvalues[0])
|
||||
testutil.AssertEqual(t, 9.5, yvalues[1])
|
||||
testutil.AssertEqual(t, 9.0, yvalues[2])
|
||||
testutil.AssertEqual(t, 8.5, yvalues[3])
|
||||
testutil.AssertEqual(t, 8.0, yvalues[4])
|
||||
testutil.AssertEqual(t, 7.5, yvalues[5])
|
||||
testutil.AssertEqual(t, 7.0, yvalues[6])
|
||||
testutil.AssertEqual(t, 6.5, yvalues[7])
|
||||
testutil.AssertEqual(t, 6.0, yvalues[8])
|
||||
}
|
||||
|
||||
func TestSMASeriesGetLastValueWindowOverlap(t *testing.T) {
|
||||
// replaced new assertions helper
|
||||
|
||||
mockSeries := mockValuesProvider{
|
||||
LinearRange(1.0, 10.0),
|
||||
LinearRange(10, 1.0),
|
||||
}
|
||||
testutil.AssertEqual(t, 10, mockSeries.Len())
|
||||
|
||||
mas := &SMASeries{
|
||||
InnerSeries: mockSeries,
|
||||
Period: 15,
|
||||
}
|
||||
|
||||
var yvalues []float64
|
||||
for x := 0; x < mas.Len(); x++ {
|
||||
_, y := mas.GetValues(x)
|
||||
yvalues = append(yvalues, y)
|
||||
}
|
||||
|
||||
lx, ly := mas.GetLastValues()
|
||||
testutil.AssertEqual(t, 10.0, lx)
|
||||
testutil.AssertEqual(t, 5.5, ly)
|
||||
testutil.AssertEqual(t, yvalues[len(yvalues)-1], ly)
|
||||
}
|
||||
|
||||
func TestSMASeriesGetLastValue(t *testing.T) {
|
||||
// replaced new assertions helper
|
||||
|
||||
mockSeries := mockValuesProvider{
|
||||
LinearRange(1.0, 100.0),
|
||||
LinearRange(100, 1.0),
|
||||
}
|
||||
testutil.AssertEqual(t, 100, mockSeries.Len())
|
||||
|
||||
mas := &SMASeries{
|
||||
InnerSeries: mockSeries,
|
||||
Period: 10,
|
||||
}
|
||||
|
||||
var yvalues []float64
|
||||
for x := 0; x < mas.Len(); x++ {
|
||||
_, y := mas.GetValues(x)
|
||||
yvalues = append(yvalues, y)
|
||||
}
|
||||
|
||||
lx, ly := mas.GetLastValues()
|
||||
testutil.AssertEqual(t, 100.0, lx)
|
||||
testutil.AssertEqual(t, 6, ly)
|
||||
testutil.AssertEqual(t, yvalues[len(yvalues)-1], ly)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue