handle zero values with error.
This commit is contained in:
parent
7163f89845
commit
7ae42ee2e1
3 changed files with 63 additions and 10 deletions
14
pie_chart.go
14
pie_chart.go
|
|
@ -2,6 +2,7 @@ package chart
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
"github.com/golang/freetype/truetype"
|
||||
|
|
@ -88,7 +89,10 @@ func (pc PieChart) Render(rp RendererProvider, w io.Writer) error {
|
|||
pc.drawBackground(r)
|
||||
pc.drawCanvas(r, canvasBox)
|
||||
|
||||
finalValues := pc.finalizeValues(pc.Values)
|
||||
finalValues, err := pc.finalizeValues(pc.Values)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
pc.drawSlices(r, canvasBox, finalValues)
|
||||
pc.drawTitle(r)
|
||||
for _, a := range pc.Elements {
|
||||
|
|
@ -158,8 +162,12 @@ func (pc PieChart) drawSlices(r Renderer, canvasBox Box, values []Value) {
|
|||
}
|
||||
}
|
||||
|
||||
func (pc PieChart) finalizeValues(values []Value) []Value {
|
||||
return Values(values).Normalize()
|
||||
func (pc PieChart) finalizeValues(values []Value) ([]Value, error) {
|
||||
finalValues := Values(values).Normalize()
|
||||
if len(finalValues) == 0 {
|
||||
return nil, fmt.Errorf("pie chart must contain at least (1) non-zero value")
|
||||
}
|
||||
return finalValues, nil
|
||||
}
|
||||
|
||||
func (pc PieChart) getDefaultCanvasBox() Box {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue