From debd56f49471fee30efcff9a15beaf7822c67a8d Mon Sep 17 00:00:00 2001 From: Will Charczuk Date: Mon, 11 Jul 2016 23:32:31 -0700 Subject: [PATCH] bug fixes and refinements. --- annotation_series_test.go | 12 ++++++------ chart.go | 15 +++++++++------ range_test.go | 11 +++++++++-- tick.go | 2 +- tick_test.go | 2 +- vector_renderer_test.go | 6 +++--- yaxis.go | 4 ++-- 7 files changed, 31 insertions(+), 21 deletions(-) diff --git a/annotation_series_test.go b/annotation_series_test.go index 772f6e0..db95ad8 100644 --- a/annotation_series_test.go +++ b/annotation_series_test.go @@ -55,9 +55,9 @@ func TestAnnotationSeriesMeasure(t *testing.T) { box := as.Measure(r, cb, xrange, yrange, sd) assert.False(box.IsZero()) - assert.Equal(-5.0, box.Top) + assert.Equal(-3.0, box.Top) assert.Equal(5.0, box.Left) - assert.Equal(146.0, box.Right) //the top,left annotation sticks up 5px and out ~44px. + assert.Equal(147.0, box.Right) //the top,left annotation sticks up 5px and out ~44px. assert.Equal(115.0, box.Bottom) } @@ -114,10 +114,10 @@ func TestAnnotationSeriesRender(t *testing.T) { assert.True(isRaster) assert.NotNil(rr) - c := rr.i.At(39, 70) + c := rr.i.At(38, 70) converted, isRGBA := color.RGBAModel.Convert(c).(color.RGBA) assert.True(isRGBA) - assert.Equal(3, converted.R) - assert.Equal(3, converted.G) - assert.Equal(3, converted.B) + assert.Equal(0, converted.R) + assert.Equal(0, converted.G) + assert.Equal(0, converted.B) } diff --git a/chart.go b/chart.go index f1eb630..6c80c32 100644 --- a/chart.go +++ b/chart.go @@ -144,7 +144,7 @@ func (c Chart) getRanges() (xrange, yrange, yrangeAlt Range) { } else { xrange.Min = globalMinX xrange.Max = globalMaxX - xrange.Min, xrange.Max = xrange.GetRoundedRangeBounds() + //xrange.Min, xrange.Max = xrange.GetRoundedRangeBounds() } if !c.YAxis.Range.IsZero() { @@ -285,11 +285,14 @@ func (c Chart) getAxisAdjustedCanvasBox(r Renderer, canvasBox Box, xr, yr, yra R return newBox } -func (c Chart) setRangeDomains(canvasBox Box, xrange, yrange, yrangeAlt Range) (Range, Range, Range) { - xrange.Domain = canvasBox.Width - yrange.Domain = canvasBox.Height - yrangeAlt.Domain = canvasBox.Height - return xrange, yrange, yrangeAlt +func (c Chart) setRangeDomains(canvasBox Box, xr, yr, yra Range) (xr2, yr2, yra2 Range) { + xr2.Min, xr2.Max = xr.Min, xr.Max + xr2.Domain = canvasBox.Width + yr2.Min, yr2.Max = yr.Min, yr.Max + yr2.Domain = canvasBox.Height + yra2.Min, yra2.Max = yra.Min, yra.Max + yra2.Domain = canvasBox.Height + return } func (c Chart) hasAnnotationSeries() bool { diff --git a/range_test.go b/range_test.go index 217730e..f71f955 100644 --- a/range_test.go +++ b/range_test.go @@ -8,8 +8,15 @@ import ( func TestRangeTranslate(t *testing.T) { assert := assert.New(t) - values := []float64{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0} + values := []float64{1.0, 2.0, 2.5, 2.7, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0} r := Range{Domain: 1000} r.Min, r.Max = MinAndMax(values...) - assert.Equal(428, r.Translate(5.0)) + + // delta = ~7.0 + // value = ~5.0 + // domain = ~1000 + // 5/8 * 1000 ~= + assert.Equal(0, r.Translate(1.0)) + assert.Equal(1000, r.Translate(8.0)) + assert.Equal(572, r.Translate(5.0)) } diff --git a/tick.go b/tick.go index 1947bb4..ace38ad 100644 --- a/tick.go +++ b/tick.go @@ -3,7 +3,7 @@ package chart // GenerateTicksWithStep generates a set of ticks. func GenerateTicksWithStep(ra Range, step float64, vf ValueFormatter) []Tick { var ticks []Tick - min, max := ra.GetRoundedRangeBounds() + min, max := ra.Min, ra.Max for cursor := min; cursor <= max; cursor += step { ticks = append(ticks, Tick{ Value: cursor, diff --git a/tick_test.go b/tick_test.go index b13330f..8d75f01 100644 --- a/tick_test.go +++ b/tick_test.go @@ -10,5 +10,5 @@ func TestGenerateTicksWithStep(t *testing.T) { assert := assert.New(t) ticks := GenerateTicksWithStep(Range{Min: 1.0, Max: 10.0, Domain: 100}, 1.0, FloatValueFormatter) - assert.Len(ticks, 9) + assert.Len(ticks, 10) } diff --git a/vector_renderer_test.go b/vector_renderer_test.go index ecb5aca..17495ca 100644 --- a/vector_renderer_test.go +++ b/vector_renderer_test.go @@ -46,7 +46,7 @@ func TestVectorRendererMeasureText(t *testing.T) { vr.SetFont(f) vr.SetFontSize(12.0) - w, h := vr.MeasureText("Ljp") - assert.Equal(21, w) - assert.Equal(15, h) + tb := vr.MeasureText("Ljp") + assert.Equal(21, tb.Width) + assert.Equal(15, tb.Height) } diff --git a/yaxis.go b/yaxis.go index 8d1008a..0eb7c66 100644 --- a/yaxis.go +++ b/yaxis.go @@ -122,10 +122,10 @@ func (ya YAxis) Render(r Renderer, canvasBox Box, ra Range, ticks []Tick) { var tx int if ya.AxisType == YAxisPrimary { lx = canvasBox.Right - tx = canvasBox.Right + DefaultYAxisMargin + tx = lx + DefaultYAxisMargin } else if ya.AxisType == YAxisSecondary { lx = canvasBox.Left - tx = canvasBox.Left - DefaultYAxisMargin + tx = lx - DefaultYAxisMargin } r.MoveTo(lx, canvasBox.Bottom)