From 1504bcaa1a5a1267ae38856a22e45e6706218d78 Mon Sep 17 00:00:00 2001 From: Raed Shomali Date: Sun, 10 May 2020 17:19:02 -0400 Subject: [PATCH] Add tests --- config_test.go | 40 ++++++++++++++++++++ gridder.go | 40 ++++---------------- gridder_test.go | 98 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 146 insertions(+), 32 deletions(-) create mode 100644 gridder_test.go diff --git a/config_test.go b/config_test.go index 274ff30..5836ca8 100644 --- a/config_test.go +++ b/config_test.go @@ -122,3 +122,43 @@ func TestStringConfig(t *testing.T) { assert.Equal(t, config2.GetRotate(), 1.0) assert.Equal(t, config2.GetColor(), color.White) } + +func TestFirstRectangleConfig(t *testing.T) { + config1 := getFirstRectangleConfig() + assert.Equal(t, config1, RectangleConfig{}) + + config2 := getFirstRectangleConfig(config1) + assert.Equal(t, config2, config1) +} + +func TestFirstCircleConfig(t *testing.T) { + config1 := getFirstCircleConfig() + assert.Equal(t, config1, CircleConfig{}) + + config2 := getFirstCircleConfig(config1) + assert.Equal(t, config2, config1) +} + +func TestFirstLineConfig(t *testing.T) { + config1 := getFirstLineConfig() + assert.Equal(t, config1, LineConfig{}) + + config2 := getFirstLineConfig(config1) + assert.Equal(t, config2, config1) +} + +func TestFirstPathConfig(t *testing.T) { + config1 := getFirstPathConfig() + assert.Equal(t, config1, PathConfig{}) + + config2 := getFirstPathConfig(config1) + assert.Equal(t, config2, config1) +} + +func TestFirstStringConfig(t *testing.T) { + config1 := getFirstStringConfig() + assert.Equal(t, config1, StringConfig{}) + + config2 := getFirstStringConfig(config1) + assert.Equal(t, config2, config1) +} diff --git a/gridder.go b/gridder.go index 3328fd2..953227b 100644 --- a/gridder.go +++ b/gridder.go @@ -69,11 +69,7 @@ func (g *Gridder) DrawRectangle(row int, column int, rectangleConfigs ...Rectang return err } - center, err := g.getCellCenter(row, column) - if err != nil { - return err - } - + center := g.getCellCenter(row, column) rectangleConfig := getFirstRectangleConfig(rectangleConfigs...) rectangleWidth := rectangleConfig.GetWidth() rectangleHeight := rectangleConfig.GetHeight() @@ -102,11 +98,7 @@ func (g *Gridder) DrawCircle(row int, column int, circleConfigs ...CircleConfig) return err } - center, err := g.getCellCenter(row, column) - if err != nil { - return err - } - + center := g.getCellCenter(row, column) circleConfig := getFirstCircleConfig(circleConfigs...) g.ctx.Push() @@ -134,16 +126,8 @@ func (g *Gridder) DrawPath(row1 int, column1 int, row2 int, column2 int, pathCon return err } - center1, err := g.getCellCenter(row1, column1) - if err != nil { - return err - } - - center2, err := g.getCellCenter(row2, column2) - if err != nil { - return err - } - + center1 := g.getCellCenter(row1, column1) + center2 := g.getCellCenter(row2, column2) pathConfig := getFirstPathConfig(pathConfigs...) g.ctx.Push() @@ -168,11 +152,7 @@ func (g *Gridder) DrawLine(row int, column int, lineConfigs ...LineConfig) error return err } - center, err := g.getCellCenter(row, column) - if err != nil { - return err - } - + center := g.getCellCenter(row, column) lineConfig := getFirstLineConfig(lineConfigs...) length := lineConfig.GetLength() @@ -203,11 +183,7 @@ func (g *Gridder) DrawString(row int, column int, text string, fontFace font.Fac return err } - center, err := g.getCellCenter(row, column) - if err != nil { - return err - } - + center := g.getCellCenter(row, column) stringConfig := getFirstStringConfig(stringConfigs...) g.ctx.Push() g.ctx.SetFontFace(fontFace) @@ -302,7 +278,7 @@ func (g *Gridder) getGridDimensions() (float64, float64) { return gridWidth, gridHeight } -func (g *Gridder) getCellCenter(row, column int) (*gg.Point, error) { +func (g *Gridder) getCellCenter(row, column int) *gg.Point { columns := float64(g.gridConfig.GetColumns()) rows := float64(g.gridConfig.GetRows()) @@ -311,7 +287,7 @@ func (g *Gridder) getCellCenter(row, column int) (*gg.Point, error) { x := float64(column)*(gridWidth/columns) + cellWidth/2 y := float64(row)*(gridHeight/rows) + cellHeight/2 - return &gg.Point{X: x, Y: y}, nil + return &gg.Point{X: x, Y: y} } func (g *Gridder) verifyInBounds(row, column int) error { diff --git a/gridder_test.go b/gridder_test.go new file mode 100644 index 0000000..21eb735 --- /dev/null +++ b/gridder_test.go @@ -0,0 +1,98 @@ +package gridder + +import ( + "image/color" + "testing" + + "github.com/golang/freetype/truetype" + "github.com/stretchr/testify/assert" + "golang.org/x/image/font/gofont/goregular" +) + +func TestNew(t *testing.T) { + _, err := New(ImageConfig{}, GridConfig{Rows: 0}) + assert.NotNil(t, err) + + _, err = New(ImageConfig{}, GridConfig{Rows: 10, Columns: 0}) + assert.NotNil(t, err) + + _, err = New(ImageConfig{}, GridConfig{Rows: 10, Columns: 10}) + assert.Nil(t, err) +} + +func TestPaintCell(t *testing.T) { + gridder, err := New(ImageConfig{}, GridConfig{Rows: 1, Columns: 1}) + assert.Nil(t, err) + + err = gridder.PaintCell(-1, -1, color.Black) + assert.NotNil(t, err) + + err = gridder.PaintCell(0, 0, color.Black) + assert.Nil(t, err) +} + +func TestDrawCircle(t *testing.T) { + gridder, err := New(ImageConfig{}, GridConfig{Rows: 1, Columns: 1}) + assert.Nil(t, err) + + err = gridder.DrawCircle(-1, -1) + assert.NotNil(t, err) + + err = gridder.DrawCircle(0, 0) + assert.Nil(t, err) +} + +func TestDrawRectangle(t *testing.T) { + gridder, err := New(ImageConfig{}, GridConfig{Rows: 1, Columns: 1}) + assert.Nil(t, err) + + err = gridder.DrawRectangle(-1, -1) + assert.NotNil(t, err) + + err = gridder.DrawRectangle(0, 0) + assert.Nil(t, err) +} + +func TestDrawLine(t *testing.T) { + gridder, err := New(ImageConfig{}, GridConfig{Rows: 1, Columns: 1}) + assert.Nil(t, err) + + err = gridder.DrawLine(-1, -1) + assert.NotNil(t, err) + + err = gridder.DrawLine(0, 0) + assert.Nil(t, err) +} + +func TestDrawPath(t *testing.T) { + gridder, err := New(ImageConfig{}, GridConfig{Rows: 1, Columns: 1}) + assert.Nil(t, err) + + err = gridder.DrawPath(-1, -1, -1, -1) + assert.NotNil(t, err) + + err = gridder.DrawPath(0, 0, 0, 0) + assert.Nil(t, err) +} + +func TestDrawString(t *testing.T) { + gridder, err := New(ImageConfig{}, GridConfig{Rows: 1, Columns: 1}) + assert.Nil(t, err) + + font, _ := truetype.Parse(goregular.TTF) + fontFace := truetype.NewFace(font, &truetype.Options{Size: 24}) + + err = gridder.DrawString(-1, -1, "Test", fontFace) + assert.NotNil(t, err) + + err = gridder.DrawString(0, 0, "Test", fontFace) + assert.Nil(t, err) +} + +func TestSave(t *testing.T) { + gridder, err := New(ImageConfig{}, GridConfig{Rows: 1, Columns: 1}) + assert.Nil(t, err) + + err = gridder.SavePNG() + assert.NotNil(t, err) +}