Skip to content

Commit fd8ef76

Browse files
committed
Move "ws2812" tests to pixbuf tests
These were never really driving the actual LEDs, which would be tricky to test.
1 parent 44704e3 commit fd8ef76

File tree

2 files changed

+72
-82
lines changed

2 files changed

+72
-82
lines changed

lua_tests/mispec_ws2812.lua renamed to lua_tests/mispec_pixbuf_1.lua

Lines changed: 31 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -10,67 +10,61 @@ local function initBuffer(buffer, ...)
1010
return buffer
1111
end
1212

13-
local function equalsBuffer(buffer1, buffer2)
14-
return eq(buffer1:dump(), buffer2:dump())
15-
end
16-
17-
18-
describe('WS2812 buffers', function(it)
13+
describe('pixbuf tests part 1', function(it)
1914

2015
it:should('initialize a buffer', function()
21-
buffer = ws2812.newBuffer(9, 3)
16+
buffer = pixbuf.newBuffer(9, pixbuf.TYPE_GRB)
2217
ko(buffer == nil)
2318
ok(eq(buffer:size(), 9), "check size")
2419
ok(eq(buffer:dump(), string.char(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)), "initialize with 0")
2520

26-
failwith("should be a positive integer", ws2812.newBuffer, 9, 0)
27-
failwith("should be a positive integer", ws2812.newBuffer, 9, -1)
28-
failwith("should be a positive integer", ws2812.newBuffer, 0, 3)
29-
failwith("should be a positive integer", ws2812.newBuffer, -1, 3)
21+
failwith("must be a valid pixbuf type", pixbuf.newBuffer, 9, -1)
22+
failwith("should be a positive integer", pixbuf.newBuffer, 0, pixbuf.TYPE_GRB)
23+
failwith("should be a positive integer", pixbuf.newBuffer, -1, pixbuf.TYPE_GRB)
3024
end)
3125

3226
it:should('have correct size', function()
33-
buffer = ws2812.newBuffer(9, 3)
27+
buffer = pixbuf.newBuffer(9, pixbuf.TYPE_GRB)
3428
ok(eq(buffer:size(), 9), "check size")
35-
buffer = ws2812.newBuffer(9, 22)
29+
buffer = pixbuf.newBuffer(9, pixbuf.TYPE_RGBW)
3630
ok(eq(buffer:size(), 9), "check size")
37-
buffer = ws2812.newBuffer(13, 1)
31+
buffer = pixbuf.newBuffer(13, pixbuf.TYPE_IBGR)
3832
ok(eq(buffer:size(), 13), "check size")
3933
end)
4034

4135
it:should('fill a buffer with one color', function()
42-
buffer = ws2812.newBuffer(3, 3)
36+
buffer = pixbuf.newBuffer(3, pixbuf.TYPE_GRB)
4337
buffer:fill(1,222,55)
4438
ok(eq(buffer:dump(), string.char(1,222,55,1,222,55,1,222,55)), "RGB")
45-
buffer = ws2812.newBuffer(3, 4)
39+
buffer = pixbuf.newBuffer(3, pixbuf.TYPE_GRBW)
4640
buffer:fill(1,222,55, 77)
4741
ok(eq(buffer:dump(), string.char(1,222,55,77,1,222,55,77,1,222,55,77)), "RGBW")
4842
end)
4943

5044
it:should('replace correctly', function()
51-
buffer = ws2812.newBuffer(5, 3)
45+
buffer = pixbuf.newBuffer(5, pixbuf.TYPE_GRB)
5246
buffer:replace(string.char(3,255,165,33,0,244,12,87,255))
5347
ok(eq(buffer:dump(), string.char(3,255,165,33,0,244,12,87,255,0,0,0,0,0,0)), "RGBW")
5448

55-
buffer = ws2812.newBuffer(5, 3)
49+
buffer = pixbuf.newBuffer(5, pixbuf.TYPE_GRB)
5650
buffer:replace(string.char(3,255,165,33,0,244,12,87,255), 2)
5751
ok(eq(buffer:dump(), string.char(0,0,0,3,255,165,33,0,244,12,87,255,0,0,0)), "RGBW")
5852

59-
buffer = ws2812.newBuffer(5, 3)
53+
buffer = pixbuf.newBuffer(5, pixbuf.TYPE_GRB)
6054
buffer:replace(string.char(3,255,165,33,0,244,12,87,255), -5)
6155
ok(eq(buffer:dump(), string.char(3,255,165,33,0,244,12,87,255,0,0,0,0,0,0)), "RGBW")
6256

63-
failwith("Does not fit into destination", function() buffer:replace(string.char(3,255,165,33,0,244,12,87,255), 4) end)
57+
failwith("does not fit into destination", function() buffer:replace(string.char(3,255,165,33,0,244,12,87,255), 4) end)
6458
end)
6559

6660
it:should('replace correctly issue #2921', function()
67-
local buffer = ws2812.newBuffer(5, 3)
61+
local buffer = pixbuf.newBuffer(5, pixbuf.TYPE_GRB)
6862
buffer:replace(string.char(3,255,165,33,0,244,12,87,255), -7)
6963
ok(eq(buffer:dump(), string.char(3,255,165,33,0,244,12,87,255,0,0,0,0,0,0)), "RGBW")
7064
end)
7165

7266
it:should('get/set correctly', function()
73-
buffer = ws2812.newBuffer(3, 4)
67+
buffer = pixbuf.newBuffer(3, pixbuf.TYPE_GRBW)
7468
buffer:fill(1,222,55,13)
7569
ok(eq({buffer:get(2)},{1,222,55,13}))
7670
buffer:set(2, 4,53,99,0)
@@ -87,34 +81,34 @@ describe('WS2812 buffers', function(it)
8781
end)
8882

8983
it:should('fade correctly', function()
90-
buffer = ws2812.newBuffer(1, 3)
84+
buffer = pixbuf.newBuffer(1, pixbuf.TYPE_RGB)
9185
buffer:fill(1,222,55)
9286
buffer:fade(2)
9387
ok(buffer:dump() == string.char(0,111,27), "RGB")
9488
buffer:fill(1,222,55)
95-
buffer:fade(3, ws2812.FADE_OUT)
96-
ok(buffer:dump() == string.char(0,222/3,55/3), "RGB")
89+
buffer:fade(3, pixbuf.FADE_OUT)
90+
ok(buffer:dump() == string.char(0,math.floor(222/3),math.floor(55/3)), "RGB")
9791
buffer:fill(1,222,55)
98-
buffer:fade(3, ws2812.FADE_IN)
92+
buffer:fade(3, pixbuf.FADE_IN)
9993
ok(buffer:dump() == string.char(3,255,165), "RGB")
100-
buffer = ws2812.newBuffer(1, 4)
94+
buffer = pixbuf.newBuffer(1, pixbuf.TYPE_RGBW)
10195
buffer:fill(1,222,55, 77)
102-
buffer:fade(2, ws2812.FADE_OUT)
96+
buffer:fade(2, pixbuf.FADE_OUT)
10397
ok(eq(buffer:dump(), string.char(0,111,27,38)), "RGBW")
10498
end)
10599

106100
it:should('mix correctly issue #1736', function()
107-
buffer1 = ws2812.newBuffer(1, 3)
108-
buffer2 = ws2812.newBuffer(1, 3)
101+
buffer1 = pixbuf.newBuffer(1, pixbuf.TYPE_GRB)
102+
buffer2 = pixbuf.newBuffer(1, pixbuf.TYPE_GRB)
109103
buffer1:fill(10,22,54)
110104
buffer2:fill(10,27,55)
111105
buffer1:mix(256/8*7,buffer1,256/8,buffer2)
112106
ok(eq({buffer1:get(1)}, {10,23,54}))
113107
end)
114108

115109
it:should('mix saturation correctly ', function()
116-
buffer1 = ws2812.newBuffer(1, 3)
117-
buffer2 = ws2812.newBuffer(1, 3)
110+
buffer1 = pixbuf.newBuffer(1, pixbuf.TYPE_GRB)
111+
buffer2 = pixbuf.newBuffer(1, pixbuf.TYPE_GRB)
118112

119113
buffer1:fill(10,22,54)
120114
buffer2:fill(10,27,55)
@@ -133,17 +127,17 @@ describe('WS2812 buffers', function(it)
133127
end)
134128

135129
it:should('mix with strings correctly ', function()
136-
buffer1 = ws2812.newBuffer(1, 3)
137-
buffer2 = ws2812.newBuffer(1, 3)
130+
buffer1 = pixbuf.newBuffer(1, pixbuf.TYPE_GRB)
131+
buffer2 = pixbuf.newBuffer(1, pixbuf.TYPE_GRB)
138132

139133
buffer1:fill(10,22,54)
140134
buffer2:fill(10,27,55)
141-
buffer1:mix(-257,buffer1:dump(),255,buffer2:dump())
135+
buffer1:mix(-257,buffer1,255,buffer2)
142136
ok(eq({buffer1:get(1)}, {0,5,1}))
143137
end)
144-
138+
145139
it:should('power', function()
146-
buffer = ws2812.newBuffer(2, 4)
140+
buffer = pixbuf.newBuffer(2, pixbuf.TYPE_GRBW)
147141
buffer:fill(10,22,54,234)
148142
ok(eq(buffer:power(), 2*(10+22+54+234)))
149143
end)

lua_tests/mispec_ws2812_2.lua renamed to lua_tests/mispec_pixbuf_2.lua

Lines changed: 41 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -10,138 +10,134 @@ local function initBuffer(buffer, ...)
1010
return buffer
1111
end
1212

13-
local function equalsBuffer(buffer1, buffer2)
14-
return eq(buffer1:dump(), buffer2:dump())
15-
end
16-
17-
18-
describe('WS2812 buffers', function(it)
13+
describe('pixbuf tests part 2', function(it)
1914

2015
it:should('shift LOGICAL', function()
2116

22-
buffer1 = ws2812.newBuffer(4, 4)
23-
buffer2 = ws2812.newBuffer(4, 4)
17+
buffer1 = pixbuf.newBuffer(4, pixbuf.TYPE_RGBW)
18+
buffer2 = pixbuf.newBuffer(4, pixbuf.TYPE_RGBW)
2419

2520
initBuffer(buffer1,7,8,9,12)
2621
initBuffer(buffer2,0,0,7,8)
22+
ok(buffer1 ~= buffer2, "disequality pre shift")
2723
buffer1:shift(2)
28-
ok(equalsBuffer(buffer1, buffer2), "shift right")
24+
ok(buffer1 == buffer2, "shift right")
2925

3026
initBuffer(buffer1,7,8,9,12)
3127
initBuffer(buffer2,9,12,0,0)
3228
buffer1:shift(-2)
33-
ok(equalsBuffer(buffer1, buffer2), "shift left")
29+
ok(buffer1 == buffer2, "shift left")
3430

3531
initBuffer(buffer1,7,8,9,12)
3632
initBuffer(buffer2,7,0,8,12)
3733
buffer1:shift(1, nil, 2,3)
38-
ok(equalsBuffer(buffer1, buffer2), "shift middle right")
34+
ok(buffer1 == buffer2, "shift middle right")
3935

4036
initBuffer(buffer1,7,8,9,12)
4137
initBuffer(buffer2,7,9,0,12)
4238
buffer1:shift(-1, nil, 2,3)
43-
ok(equalsBuffer(buffer1, buffer2), "shift middle left")
39+
ok(buffer1 == buffer2, "shift middle left")
4440

4541
-- bounds checks, handle gracefully as string:sub does
4642
initBuffer(buffer1,7,8,9,12)
4743
initBuffer(buffer2,8,9,12,0)
48-
buffer1:shift(-1, ws2812.SHIFT_LOGICAL, 0,5)
49-
ok(equalsBuffer(buffer1, buffer2), "shift left out of bound")
44+
buffer1:shift(-1, pixbuf.SHIFT_LOGICAL, 0,5)
45+
ok(buffer1 == buffer2, "shift left out of bound")
5046

5147
initBuffer(buffer1,7,8,9,12)
5248
initBuffer(buffer2,0,7,8,9)
53-
buffer1:shift(1, ws2812.SHIFT_LOGICAL, 0,5)
54-
ok(equalsBuffer(buffer1, buffer2), "shift right out of bound")
49+
buffer1:shift(1, pixbuf.SHIFT_LOGICAL, 0,5)
50+
ok(buffer1 == buffer2, "shift right out of bound")
5551

5652
end)
5753

5854
it:should('shift LOGICAL issue #2946', function()
59-
buffer1 = ws2812.newBuffer(4, 4)
60-
buffer2 = ws2812.newBuffer(4, 4)
55+
buffer1 = pixbuf.newBuffer(4, pixbuf.TYPE_RGBW)
56+
buffer2 = pixbuf.newBuffer(4, pixbuf.TYPE_RGBW)
6157

6258
initBuffer(buffer1,7,8,9,12)
6359
initBuffer(buffer2,0,0,0,0)
6460
buffer1:shift(4)
65-
ok(equalsBuffer(buffer1, buffer2), "shift all right")
61+
ok(buffer1 == buffer2, "shift all right")
6662

6763
initBuffer(buffer1,7,8,9,12)
6864
initBuffer(buffer2,0,0,0,0)
6965
buffer1:shift(-4)
70-
ok(equalsBuffer(buffer1, buffer2), "shift all left")
66+
ok(buffer1 == buffer2, "shift all left")
7167

7268
failwith("shifting more elements than buffer size", function() buffer1:shift(10) end)
7369
failwith("shifting more elements than buffer size", function() buffer1:shift(-6) end)
7470
end)
7571

7672
it:should('shift CIRCULAR', function()
77-
buffer1 = ws2812.newBuffer(4, 4)
78-
buffer2 = ws2812.newBuffer(4, 4)
73+
buffer1 = pixbuf.newBuffer(4, pixbuf.TYPE_RGBW)
74+
buffer2 = pixbuf.newBuffer(4, pixbuf.TYPE_RGBW)
7975

8076
initBuffer(buffer1,7,8,9,12)
8177
initBuffer(buffer2,9,12,7,8)
82-
buffer1:shift(2, ws2812.SHIFT_CIRCULAR)
83-
ok(equalsBuffer(buffer1, buffer2), "shift right")
78+
buffer1:shift(2, pixbuf.SHIFT_CIRCULAR)
79+
ok(buffer1 == buffer2, "shift right")
8480

8581
initBuffer(buffer1,7,8,9,12)
8682
initBuffer(buffer2,9,12,7,8)
87-
buffer1:shift(-2, ws2812.SHIFT_CIRCULAR)
88-
ok(equalsBuffer(buffer1, buffer2), "shift left")
83+
buffer1:shift(-2, pixbuf.SHIFT_CIRCULAR)
84+
ok(buffer1 == buffer2, "shift left")
8985

9086
initBuffer(buffer1,7,8,9,12)
9187
initBuffer(buffer2,7,9,8,12)
92-
buffer1:shift(1, ws2812.SHIFT_CIRCULAR, 2,3)
93-
ok(equalsBuffer(buffer1, buffer2), "shift middle right")
88+
buffer1:shift(1, pixbuf.SHIFT_CIRCULAR, 2,3)
89+
ok(buffer1 == buffer2, "shift middle right")
9490

9591
initBuffer(buffer1,7,8,9,12)
9692
initBuffer(buffer2,7,9,8,12)
97-
buffer1:shift(-1, ws2812.SHIFT_CIRCULAR, 2,3)
98-
ok(equalsBuffer(buffer1, buffer2), "shift middle left")
93+
buffer1:shift(-1, pixbuf.SHIFT_CIRCULAR, 2,3)
94+
ok(buffer1 == buffer2, "shift middle left")
9995

10096
-- bounds checks, handle gracefully as string:sub does
10197
initBuffer(buffer1,7,8,9,12)
10298
initBuffer(buffer2,8,9,12,7)
103-
buffer1:shift(-1, ws2812.SHIFT_CIRCULAR, 0,5)
104-
ok(equalsBuffer(buffer1, buffer2), "shift left out of bound")
99+
buffer1:shift(-1, pixbuf.SHIFT_CIRCULAR, 0,5)
100+
ok(buffer1 == buffer2, "shift left out of bound")
105101

106102
initBuffer(buffer1,7,8,9,12)
107103
initBuffer(buffer2,12,7,8,9)
108-
buffer1:shift(1, ws2812.SHIFT_CIRCULAR, 0,5)
109-
ok(equalsBuffer(buffer1, buffer2), "shift right out of bound")
104+
buffer1:shift(1, pixbuf.SHIFT_CIRCULAR, 0,5)
105+
ok(buffer1 == buffer2, "shift right out of bound")
110106

111107
initBuffer(buffer1,7,8,9,12)
112108
initBuffer(buffer2,12,7,8,9)
113-
buffer1:shift(1, ws2812.SHIFT_CIRCULAR, -12,12)
114-
ok(equalsBuffer(buffer1, buffer2), "shift right way out of bound")
109+
buffer1:shift(1, pixbuf.SHIFT_CIRCULAR, -12,12)
110+
ok(buffer1 == buffer2, "shift right way out of bound")
115111

116112
end)
117113

118114
it:should('sub', function()
119-
buffer1 = ws2812.newBuffer(4, 4)
120-
buffer2 = ws2812.newBuffer(4, 4)
115+
buffer1 = pixbuf.newBuffer(4, pixbuf.TYPE_RGBW)
116+
buffer2 = pixbuf.newBuffer(4, pixbuf.TYPE_RGBW)
121117
initBuffer(buffer1,7,8,9,12)
122118
buffer1 = buffer1:sub(4,3)
123119
ok(eq(buffer1:size(), 0), "sub empty")
124120

125-
buffer1 = ws2812.newBuffer(4, 4)
126-
buffer2 = ws2812.newBuffer(2, 4)
121+
buffer1 = pixbuf.newBuffer(4, pixbuf.TYPE_RGBW)
122+
buffer2 = pixbuf.newBuffer(2, pixbuf.TYPE_RGBW)
127123
initBuffer(buffer1,7,8,9,12)
128124
initBuffer(buffer2,9,12)
129125
buffer1 = buffer1:sub(3,4)
130-
ok(equalsBuffer(buffer1, buffer2), "sub")
126+
ok(buffer1 == buffer2, "sub")
131127

132-
buffer1 = ws2812.newBuffer(4, 4)
133-
buffer2 = ws2812.newBuffer(4, 4)
128+
buffer1 = pixbuf.newBuffer(4, pixbuf.TYPE_RGBW)
129+
buffer2 = pixbuf.newBuffer(4, pixbuf.TYPE_RGBW)
134130
initBuffer(buffer1,7,8,9,12)
135131
initBuffer(buffer2,7,8,9,12)
136132
buffer1 = buffer1:sub(-12,33)
137-
ok(equalsBuffer(buffer1, buffer2), "out of bounds")
133+
ok(buffer1 == buffer2, "out of bounds")
138134
end)
139135

140136

141137

142138

143139
--[[
144-
ws2812.buffer:__concat()
140+
pixbuf.buffer:__concat()
145141
--]]
146142

147143
end)

0 commit comments

Comments
 (0)