Skip to content

Commit

Permalink
Add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
raed-shomali committed May 10, 2020
1 parent d850b5e commit 1504bca
Show file tree
Hide file tree
Showing 3 changed files with 146 additions and 32 deletions.
40 changes: 40 additions & 0 deletions config_test.go
Expand Up @@ -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)
}
40 changes: 8 additions & 32 deletions gridder.go
Expand Up @@ -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()
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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()
Expand All @@ -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()

Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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())

Expand All @@ -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 {
Expand Down
98 changes: 98 additions & 0 deletions 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)
}

0 comments on commit 1504bca

Please sign in to comment.