Skip to content

Commit a9f3fbb

Browse files
committed
test: add parse and serialize tests for custom backlight
1 parent 521253b commit a9f3fbb

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

features/light/custom_test.go

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package light_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/mishamyrt/nuga-lib/features/light"
7+
"github.com/mishamyrt/nuga-lib/layout"
8+
)
9+
10+
var tpl = layout.BacklightTemplate{
11+
layout.KeyM: 0,
12+
layout.KeyY: 1,
13+
layout.KeyR: 2,
14+
layout.KeyT: 3,
15+
}
16+
17+
var colorMap = light.CustomBacklightMap{
18+
layout.KeyM: {R: 0xFF, G: 0x00, B: 0x00},
19+
layout.KeyY: {R: 0x00, G: 0xFF, B: 0x00},
20+
layout.KeyR: {R: 0x00, G: 0x00, B: 0xFF},
21+
layout.KeyT: {R: 0xFF, G: 0xFF, B: 0xFF},
22+
}
23+
24+
func TestParseCustomBacklight(t *testing.T) {
25+
t.Parallel()
26+
payload := make([]byte, 1050)
27+
payload[0] = 0x89
28+
for keyName, position := range tpl {
29+
payload[7+position] = colorMap[keyName].R
30+
payload[7+position+126] = colorMap[keyName].G
31+
payload[7+position+252] = colorMap[keyName].B
32+
}
33+
customMap, err := light.ParseCustomBacklight(payload, &tpl)
34+
if err != nil {
35+
t.Fatal("unexpected error:", err)
36+
}
37+
if len(*customMap) != 4 {
38+
t.Fatalf("expected 4 colors, got %d", len(*customMap))
39+
}
40+
for keyName, color := range colorMap {
41+
if (*customMap)[keyName] != color {
42+
t.Fatalf("expected color %v for key %v, got %v", color, keyName, (*customMap)[keyName])
43+
}
44+
}
45+
}
46+
47+
func TestCustomBacklightToBytes(t *testing.T) {
48+
t.Parallel()
49+
payload := colorMap.Bytes(&tpl)
50+
if len(payload) != 1024 {
51+
t.Fatalf("expected 1024 bytes, got %d", len(payload))
52+
}
53+
for keyName, position := range tpl {
54+
r := payload[position]
55+
g := payload[position+126]
56+
b := payload[position+252]
57+
if r != colorMap[keyName].R {
58+
t.Fatalf("expected R value %v for key %v, got %v", colorMap[keyName].R, keyName, r)
59+
}
60+
if g != colorMap[keyName].G {
61+
t.Fatalf("expected G value %v for key %v, got %v", colorMap[keyName].G, keyName, g)
62+
}
63+
if b != colorMap[keyName].B {
64+
t.Fatalf("expected B value %v for key %v, got %v", colorMap[keyName].B, keyName, b)
65+
}
66+
}
67+
}

0 commit comments

Comments
 (0)