some tests
parent
df4ffb58f4
commit
e0ab4bf8de
@ -0,0 +1,139 @@
|
|||||||
|
package rgbmatrix
|
||||||
|
|
||||||
|
import (
|
||||||
|
"image/color"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
. "gopkg.in/check.v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Test(t *testing.T) { TestingT(t) }
|
||||||
|
|
||||||
|
type CanvasSuite struct{}
|
||||||
|
|
||||||
|
var _ = Suite(&CanvasSuite{})
|
||||||
|
|
||||||
|
func (s *CanvasSuite) TestNewCanvas(c *C) {
|
||||||
|
canvas := NewCanvas(NewMatrixMock())
|
||||||
|
c.Assert(canvas, NotNil)
|
||||||
|
c.Assert(canvas.w, Equals, 64)
|
||||||
|
c.Assert(canvas.h, Equals, 32)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *CanvasSuite) TestRender(c *C) {
|
||||||
|
m := NewMatrixMock()
|
||||||
|
canvas := &Canvas{m: m}
|
||||||
|
canvas.Render()
|
||||||
|
|
||||||
|
c.Assert(m.called["Render"], Equals, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *CanvasSuite) TestColorModel(c *C) {
|
||||||
|
canvas := &Canvas{}
|
||||||
|
|
||||||
|
c.Assert(canvas.ColorModel(), Equals, color.RGBAModel)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *CanvasSuite) TestBounds(c *C) {
|
||||||
|
|
||||||
|
canvas := &Canvas{w: 10, h: 20}
|
||||||
|
|
||||||
|
b := canvas.Bounds()
|
||||||
|
c.Assert(b.Min.X, Equals, 0)
|
||||||
|
c.Assert(b.Min.Y, Equals, 0)
|
||||||
|
c.Assert(b.Max.X, Equals, 10)
|
||||||
|
c.Assert(b.Max.Y, Equals, 20)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *CanvasSuite) TestAt(c *C) {
|
||||||
|
m := NewMatrixMock()
|
||||||
|
canvas := &Canvas{w: 10, h: 20, m: m}
|
||||||
|
canvas.At(5, 15)
|
||||||
|
|
||||||
|
c.Assert(m.called["At"], Equals, 155)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *CanvasSuite) TestSet(c *C) {
|
||||||
|
m := NewMatrixMock()
|
||||||
|
canvas := &Canvas{w: 10, h: 20, m: m}
|
||||||
|
canvas.Set(5, 15, color.White)
|
||||||
|
|
||||||
|
c.Assert(m.called["Set"], Equals, 155)
|
||||||
|
c.Assert(m.colors[155], Equals, color.White)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *CanvasSuite) TestClear(c *C) {
|
||||||
|
m := NewMatrixMock()
|
||||||
|
|
||||||
|
canvas := &Canvas{w: 10, h: 20, m: m}
|
||||||
|
err := canvas.Clear()
|
||||||
|
c.Assert(err, IsNil)
|
||||||
|
|
||||||
|
for _, px := range m.colors {
|
||||||
|
c.Assert(px, Equals, color.Black)
|
||||||
|
}
|
||||||
|
|
||||||
|
c.Assert(m.called["Render"], Equals, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *CanvasSuite) TestClose(c *C) {
|
||||||
|
m := NewMatrixMock()
|
||||||
|
canvas := &Canvas{w: 10, h: 20, m: m}
|
||||||
|
err := canvas.Close()
|
||||||
|
c.Assert(err, IsNil)
|
||||||
|
|
||||||
|
for _, px := range m.colors {
|
||||||
|
c.Assert(px, Equals, color.Black)
|
||||||
|
}
|
||||||
|
|
||||||
|
c.Assert(m.called["Render"], Equals, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MatrixMock struct {
|
||||||
|
called map[string]interface{}
|
||||||
|
colors []color.Color
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewMatrixMock() *MatrixMock {
|
||||||
|
return &MatrixMock{
|
||||||
|
called: make(map[string]interface{}, 0),
|
||||||
|
colors: make([]color.Color, 200),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MatrixMock) Geometry() (width, height int) {
|
||||||
|
return 64, 32
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MatrixMock) Initialize() error {
|
||||||
|
m.called["Initialize"] = true
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MatrixMock) At(position int) color.Color {
|
||||||
|
m.called["At"] = position
|
||||||
|
return color.Black
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MatrixMock) Set(position int, c color.Color) {
|
||||||
|
m.called["Set"] = position
|
||||||
|
m.colors[position] = c
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MatrixMock) Apply(leds []color.Color) error {
|
||||||
|
for position, l := range leds {
|
||||||
|
m.Set(position, l)
|
||||||
|
}
|
||||||
|
|
||||||
|
return m.Render()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MatrixMock) Render() error {
|
||||||
|
m.called["Render"] = true
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *MatrixMock) Close() error {
|
||||||
|
m.called["Close"] = true
|
||||||
|
return nil
|
||||||
|
}
|
Loading…
Reference in New Issue