tests for some things that came up as regressions when building out examples.
This commit is contained in:
parent
230dd16308
commit
6d48c49c07
3 changed files with 104 additions and 3 deletions
12
chart.go
12
chart.go
|
@ -373,12 +373,20 @@ func (c Chart) getAnnotationAdjustedCanvasBox(r Renderer, canvasBox Box, xr, yr,
|
||||||
return canvasBox.OuterConstrain(c.Box(), annotationSeriesBox)
|
return canvasBox.OuterConstrain(c.Box(), annotationSeriesBox)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c Chart) getBackgroundStyle() Style {
|
||||||
|
return c.Background.WithDefaultsFrom(c.styleDefaultsBackground())
|
||||||
|
}
|
||||||
|
|
||||||
func (c Chart) drawBackground(r Renderer) {
|
func (c Chart) drawBackground(r Renderer) {
|
||||||
DrawBox(r, c.Box(), c.Background.WithDefaultsFrom(c.styleDefaultsBackground()))
|
DrawBox(r, c.Box(), c.getBackgroundStyle())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c Chart) getCanvasStyle() Style {
|
||||||
|
return c.Canvas.WithDefaultsFrom(c.styleDefaultsCanvas())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c Chart) drawCanvas(r Renderer, canvasBox Box) {
|
func (c Chart) drawCanvas(r Renderer, canvasBox Box) {
|
||||||
DrawBox(r, canvasBox, c.Canvas.WithDefaultsFrom(c.styleDefaultsCanvas()))
|
DrawBox(r, canvasBox, c.getCanvasStyle())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c Chart) drawAxes(r Renderer, canvasBox Box, xrange, yrange, yrangeAlt Range, xticks, yticks, yticksAlt []Tick) {
|
func (c Chart) drawAxes(r Renderer, canvasBox Box, xrange, yrange, yrangeAlt Range, xticks, yticks, yticksAlt []Tick) {
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/blendlabs/go-assert"
|
"github.com/blendlabs/go-assert"
|
||||||
|
"github.com/wcharczuk/go-chart/drawing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestChartGetDPI(t *testing.T) {
|
func TestChartGetDPI(t *testing.T) {
|
||||||
|
@ -123,6 +124,96 @@ func TestChartGetRanges(t *testing.T) {
|
||||||
assert.Equal(19.7, yra2.Max)
|
assert.Equal(19.7, yra2.Max)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestChartGetRangesUseTicks(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
// this test asserts that ticks should supercede manual ranges when generating the overall ranges.
|
||||||
|
|
||||||
|
c := Chart{
|
||||||
|
YAxis: YAxis{
|
||||||
|
Ticks: []Tick{
|
||||||
|
{0.0, "Zero"},
|
||||||
|
{1.0, "1.0"},
|
||||||
|
{2.0, "2.0"},
|
||||||
|
{3.0, "3.0"},
|
||||||
|
{4.0, "4.0"},
|
||||||
|
{5.0, "Five"},
|
||||||
|
},
|
||||||
|
Range: Range{
|
||||||
|
Min: -5.0,
|
||||||
|
Max: 5.0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Series: []Series{
|
||||||
|
ContinuousSeries{
|
||||||
|
XValues: []float64{-2.0, -1.0, 0, 1.0, 2.0},
|
||||||
|
YValues: []float64{1.0, 2.0, 3.0, 4.0, 4.5},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
xr, yr, yar := c.getRanges()
|
||||||
|
assert.Equal(-2.0, xr.Min)
|
||||||
|
assert.Equal(2.0, xr.Max)
|
||||||
|
assert.Equal(0.0, yr.Min)
|
||||||
|
assert.Equal(5.0, yr.Max)
|
||||||
|
assert.True(yar.IsZero(), yar.String())
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestChartGetRangesUseUserRanges(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
// this test asserts that ticks should supercede manual ranges when generating the overall ranges.
|
||||||
|
|
||||||
|
c := Chart{
|
||||||
|
YAxis: YAxis{
|
||||||
|
Range: Range{
|
||||||
|
Min: -5.0,
|
||||||
|
Max: 5.0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Series: []Series{
|
||||||
|
ContinuousSeries{
|
||||||
|
XValues: []float64{-2.0, -1.0, 0, 1.0, 2.0},
|
||||||
|
YValues: []float64{1.0, 2.0, 3.0, 4.0, 4.5},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
xr, yr, yar := c.getRanges()
|
||||||
|
assert.Equal(-2.0, xr.Min)
|
||||||
|
assert.Equal(2.0, xr.Max)
|
||||||
|
assert.Equal(-5.0, yr.Min)
|
||||||
|
assert.Equal(5.0, yr.Max)
|
||||||
|
assert.True(yar.IsZero(), yar.String())
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestChartGetBackgroundStyle(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
c := Chart{
|
||||||
|
Background: Style{
|
||||||
|
FillColor: drawing.ColorBlack,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
bs := c.getBackgroundStyle()
|
||||||
|
assert.Equal(bs.FillColor.String(), drawing.ColorBlack.String())
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestChartGetCanvasStyle(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
c := Chart{
|
||||||
|
Canvas: Style{
|
||||||
|
FillColor: drawing.ColorBlack,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
bs := c.getCanvasStyle()
|
||||||
|
assert.Equal(bs.FillColor.String(), drawing.ColorBlack.String())
|
||||||
|
}
|
||||||
|
|
||||||
func TestChartGetDefaultCanvasBox(t *testing.T) {
|
func TestChartGetDefaultCanvasBox(t *testing.T) {
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
|
4
range.go
4
range.go
|
@ -14,7 +14,9 @@ type Range struct {
|
||||||
|
|
||||||
// IsZero returns if the range has been set or not.
|
// IsZero returns if the range has been set or not.
|
||||||
func (r Range) IsZero() bool {
|
func (r Range) IsZero() bool {
|
||||||
return r.Min == 0 && r.Max == 0 && r.Domain == 0
|
return (r.Min == 0 || math.IsNaN(r.Min)) &&
|
||||||
|
(r.Max == 0 || math.IsNaN(r.Max)) &&
|
||||||
|
r.Domain == 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delta returns the difference between the min and max value.
|
// Delta returns the difference between the min and max value.
|
||||||
|
|
Loading…
Reference in a new issue