From bdf7bff3135f0633be840fe8445a93a372d01e3a Mon Sep 17 00:00:00 2001 From: vicanso Date: Sat, 12 Feb 2022 14:11:40 +0800 Subject: [PATCH] test: add test for mark point --- mark_line.go | 4 +- mark_line_test.go | 2 +- mark_point.go | 4 +- mark_point_test.go | 105 +++++++++++++++++++++++++++++++++++++++++++++ series.go | 9 ++-- 5 files changed, 113 insertions(+), 11 deletions(-) create mode 100644 mark_point_test.go diff --git a/mark_line.go b/mark_line.go index 18f7366..b03df39 100644 --- a/mark_line.go +++ b/mark_line.go @@ -29,9 +29,9 @@ import ( ) func NewMarkLine(markLineTypes ...string) SeriesMarkLine { - data := make([]SeriesMarkLineData, len(markLineTypes)) + data := make([]SeriesMarkData, len(markLineTypes)) for index, t := range markLineTypes { - data[index] = SeriesMarkLineData{ + data[index] = SeriesMarkData{ Type: t, } } diff --git a/mark_line_test.go b/mark_line_test.go index 750ed6f..4930842 100644 --- a/mark_line_test.go +++ b/mark_line_test.go @@ -40,7 +40,7 @@ func TestNewMarkLine(t *testing.T) { ) assert.Equal(SeriesMarkLine{ - Data: []SeriesMarkLineData{ + Data: []SeriesMarkData{ { Type: SeriesMarkDataTypeMax, }, diff --git a/mark_point.go b/mark_point.go index 3f05445..acecdd5 100644 --- a/mark_point.go +++ b/mark_point.go @@ -29,9 +29,9 @@ import ( ) func NewMarkPoint(markPointTypes ...string) SeriesMarkPoint { - data := make([]SeriesMarkPointData, len(markPointTypes)) + data := make([]SeriesMarkData, len(markPointTypes)) for index, t := range markPointTypes { - data[index] = SeriesMarkPointData{ + data[index] = SeriesMarkData{ Type: t, } } diff --git a/mark_point_test.go b/mark_point_test.go new file mode 100644 index 0000000..b2ea72f --- /dev/null +++ b/mark_point_test.go @@ -0,0 +1,105 @@ +// 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 ( + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/wcharczuk/go-chart/v2" + "github.com/wcharczuk/go-chart/v2/drawing" +) + +func TestNewMarkPoint(t *testing.T) { + assert := assert.New(t) + + markPoint := NewMarkPoint( + SeriesMarkDataTypeMax, + SeriesMarkDataTypeMin, + SeriesMarkDataTypeAverage, + ) + + assert.Equal(SeriesMarkPoint{ + Data: []SeriesMarkData{ + { + Type: SeriesMarkDataTypeMax, + }, + { + Type: SeriesMarkDataTypeMin, + }, + { + Type: SeriesMarkDataTypeAverage, + }, + }, + }, markPoint) +} + +func TestMarkPointRender(t *testing.T) { + assert := assert.New(t) + + d, err := NewDraw(DrawOption{ + Width: 400, + Height: 300, + }, PaddingOption(chart.Box{ + Left: 20, + Right: 20, + })) + assert.Nil(err) + f, _ := chart.GetDefaultFont() + + markPointRender(&markPointRenderOption{ + Draw: d, + FillColor: drawing.ColorBlack, + Font: f, + Series: &Series{ + MarkPoint: NewMarkPoint( + SeriesMarkDataTypeMax, + SeriesMarkDataTypeMin, + ), + Data: NewSeriesDataFromValues([]float64{ + 1, + 3, + 5, + }), + }, + Points: []Point{ + { + X: 1, + Y: 50, + }, + { + X: 100, + Y: 100, + }, + { + X: 200, + Y: 200, + }, + }, + }) + data, err := d.Bytes() + assert.Nil(err) + fmt.Println(string(data)) + assert.Equal("\\n51", string(data)) +} diff --git a/series.go b/series.go index f8a7444..7876579 100644 --- a/series.go +++ b/series.go @@ -68,18 +68,15 @@ const ( SeriesMarkDataTypeAverage = "average" ) -type SeriesMarkPointData struct { +type SeriesMarkData struct { Type string } type SeriesMarkPoint struct { SymbolSize int - Data []SeriesMarkPointData -} -type SeriesMarkLineData struct { - Type string + Data []SeriesMarkData } type SeriesMarkLine struct { - Data []SeriesMarkLineData + Data []SeriesMarkData } type Series struct { index int