diff options
author | Martin Ashby <martin@martin-laptop.lan> | 2018-05-18 21:09:14 +0100 |
---|---|---|
committer | Martin Ashby <martin@martin-laptop.lan> | 2018-05-18 21:09:14 +0100 |
commit | b3e76b0207bc4232b4b72626f8c4c802dcc63802 (patch) | |
tree | 91ae10d4a80b1f458d1711a947ca71651baad5ab /Unicorn_test.go | |
parent | c2faad3ac834f622956787c87713ccf6ab9b61e0 (diff) | |
download | unicornpaint-b3e76b0207bc4232b4b72626f8c4c802dcc63802.tar.gz unicornpaint-b3e76b0207bc4232b4b72626f8c4c802dcc63802.tar.bz2 unicornpaint-b3e76b0207bc4232b4b72626f8c4c802dcc63802.tar.xz unicornpaint-b3e76b0207bc4232b4b72626f8c4c802dcc63802.zip |
Server ported to go, 50%, just need to do the actual unicorn implementation.
Diffstat (limited to 'Unicorn_test.go')
-rw-r--r-- | Unicorn_test.go | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/Unicorn_test.go b/Unicorn_test.go new file mode 100644 index 0000000..4b06a73 --- /dev/null +++ b/Unicorn_test.go @@ -0,0 +1,80 @@ +package main + +import ( + "reflect" + "testing" + "time" +) + +func TestGetUnicorn(t *testing.T) { + +} + +func TestFakeUnicorn(t *testing.T) { + unicorn, err := NewFake(uint8(16), uint8(16)) + if err != nil { + t.Errorf("Got an error making a fake unicorn, shouldn't happen") + } + defer unicorn.Close() + + // Check simple functions + if unicorn.GetHeight() != 16 { + t.Errorf("Height was wrong, expecting 16") + } + if unicorn.GetWidth() != 16 { + t.Errorf("Width was wrong, expecting 16") + } + // Pixels should be black to start with + pixels := unicorn.GetPixels() + for x := uint8(0); x < 16; x++ { + for y := uint8(0); y < 16; y++ { + if !reflect.DeepEqual(pixels[x][y], []uint8{0, 0, 0}) { + t.Errorf("Expecting black pixels to start with") + } + } + } + + // Should be able to set a pixel, no others should change + unicorn.SetPixel(0, 0, uint8(255), uint8(255), uint8(255)) + pixels = unicorn.GetPixels() + if !reflect.DeepEqual(pixels[0][0], []uint8{255, 255, 255}) { + t.Errorf("Pixel wasn't set when it should be") + } + for x := uint8(0); x < 16; x++ { + for y := uint8(0); y < 16; y++ { + if x == 0 && y == 0 { + continue + } + if !reflect.DeepEqual(pixels[x][y], []uint8{0, 0, 0}) { + t.Errorf("Expecting black pixels to start with") + } + } + } + + // Should be able to set a second pixel + unicorn.SetPixel(3, 4, uint8(4), uint8(5), uint8(6)) + pixels = unicorn.GetPixels() + for x := uint8(0); x < 16; x++ { + for y := uint8(0); y < 16; y++ { + checkcolor := []uint8{0, 0, 0} + if x == 0 && y == 0 { + checkcolor = []uint8{255, 255, 255} + } else if x == 3 && y == 4 { + checkcolor = []uint8{4, 5, 6} + } + if !reflect.DeepEqual(pixels[x][y], checkcolor) { + t.Errorf("Got incorrect pixel color at %d %d", x, y) + } + } + } + + unicorn.Show() + time.Sleep(time.Duration(500) * time.Millisecond) + unicorn.SetPixel(10, 10, uint8(255), uint8(255), uint8(0)) + unicorn.Show() + time.Sleep(time.Duration(500) * time.Millisecond) + + unicorn.SetPixel(0, 15, uint8(255), uint8(0), uint8(0)) + unicorn.Show() + time.Sleep(time.Duration(500) * time.Millisecond) +} |