diff --git a/bar_chart_test.go b/bar_chart_test.go
index bca69d0..2351e1a 100644
--- a/bar_chart_test.go
+++ b/bar_chart_test.go
@@ -23,6 +23,7 @@
package charts
import (
+ "fmt"
"testing"
"github.com/stretchr/testify/assert"
@@ -43,6 +44,8 @@ func TestBarChartRender(t *testing.T) {
result := basicRenderResult{
xRange: &Range{
+ Min: 0,
+ Max: 4,
divideCount: 4,
Size: width,
Boundary: true,
@@ -59,7 +62,7 @@ func TestBarChartRender(t *testing.T) {
}
f, _ := chart.GetDefaultFont()
- barChartRender(barChartOption{
+ markPointOptions, err := barChartRender(barChartOption{
Font: f,
SeriesList: SeriesList{
{
@@ -67,6 +70,9 @@ func TestBarChartRender(t *testing.T) {
Show: true,
Color: drawing.ColorBlue,
},
+ MarkLine: NewMarkLine(
+ SeriesMarkDataTypeMin,
+ ),
Data: []SeriesData{
{
Value: 20,
@@ -89,8 +95,39 @@ func TestBarChartRender(t *testing.T) {
}),
},
}, &result)
+ assert.Nil(err)
+ assert.Equal(2, len(markPointOptions))
+ assert.Equal([]Point{
+ {
+ X: 28,
+ Y: 240,
+ },
+ {
+ X: 128,
+ Y: 120,
+ },
+ {
+ X: 228,
+ Y: 30,
+ },
+ }, markPointOptions[0].Points)
+ assert.Equal([]Point{
+ {
+ X: 70,
+ Y: 60,
+ },
+ {
+ X: 170,
+ Y: 210,
+ },
+ {
+ X: 270,
+ Y: 90,
+ },
+ }, markPointOptions[1].Points)
data, err := d.Bytes()
assert.Nil(err)
- assert.Equal("", string(data))
+ fmt.Println(string(data))
+ assert.Equal("", string(data))
}
diff --git a/line_chart_test.go b/line_chart_test.go
new file mode 100644
index 0000000..62d0a40
--- /dev/null
+++ b/line_chart_test.go
@@ -0,0 +1,96 @@
+// MIT License
+
+// Copyright (c) 2022 Tree Xie
+
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+
+// The above copyright notice and this permission notice shall be included in all
+// copies or substantial portions of the Software.
+
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
+
+package charts
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/wcharczuk/go-chart/v2"
+ "github.com/wcharczuk/go-chart/v2/drawing"
+)
+
+func TestLineChartRender(t *testing.T) {
+ assert := assert.New(t)
+
+ width := 400
+ height := 300
+ d, err := NewDraw(DrawOption{
+ Width: width,
+ Height: height,
+ })
+ assert.Nil(err)
+
+ result := basicRenderResult{
+ xRange: &Range{
+ Min: 0,
+ Max: 4,
+ divideCount: 4,
+ Size: width,
+ Boundary: true,
+ },
+ yRangeList: []*Range{
+ {
+ divideCount: 6,
+ Max: 100,
+ Min: 0,
+ Size: height,
+ },
+ },
+ d: d,
+ }
+ f, _ := chart.GetDefaultFont()
+ lineChartRender(lineChartOption{
+ Font: f,
+ SeriesList: SeriesList{
+ {
+ Label: SeriesLabel{
+ Show: true,
+ Color: drawing.ColorBlue,
+ },
+ MarkLine: NewMarkLine(
+ SeriesMarkDataTypeAverage,
+ ),
+ Data: []SeriesData{
+ {
+ Value: 20,
+ },
+ {
+ Value: 60,
+ },
+ {
+ Value: 90,
+ },
+ },
+ },
+ NewSeriesFromValues([]float64{
+ 40,
+ 60,
+ 70,
+ }),
+ },
+ }, &result)
+ data, err := d.Bytes()
+ assert.Nil(err)
+ assert.Equal("", string(data))
+}