-
Notifications
You must be signed in to change notification settings - Fork 0
/
hex_test.go
147 lines (142 loc) 路 2.98 KB
/
hex_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package colorcode_test
import (
"testing"
"github.com/YashdalfTheGray/colorcode"
)
func TestHexToString(t *testing.T) {
testCases := []struct {
desc string
in colorcode.HexCode
out string
}{
{
desc: "prints out the string that's the hex code",
in: colorcode.HexCode("#164080"),
out: "#164080",
},
}
for _, tC := range testCases {
t.Run(tC.desc, func(t *testing.T) {
if tC.in.String() != tC.out {
t.Errorf("Expected %s but got %s", tC.out, tC.in.String())
}
})
}
}
func TestHexToRGB(t *testing.T) {
testCases := []struct {
desc string
in colorcode.HexCode
out string
err bool
}{
{
desc: "converts a hex string to RGB",
in: colorcode.HexCode("#deadaf"),
out: "rgb(222, 173, 175)",
err: false,
},
{
desc: "errors on string without the # sign",
in: colorcode.HexCode("deadaf"),
out: "rgb(0, 0, 0)",
err: true,
},
{
desc: "errors on invalid characters",
in: colorcode.HexCode("#jklmno"),
out: "rgb(0, 0, 0)",
err: true,
},
}
for _, tC := range testCases {
t.Run(tC.desc, func(t *testing.T) {
result, err := tC.in.ToRGB()
if !tC.err && err != nil {
t.Errorf(err.Error())
}
if tC.err && err == nil {
t.Errorf("Expected error to not be nil")
}
if result.String() != tC.out {
t.Errorf("Expected %s but got %s", tC.out, result.String())
}
})
}
}
func TestHexToHSL(t *testing.T) {
testCases := []struct {
desc string
in colorcode.HexCode
out string
err bool
}{
{
desc: "converts a hex string to HSL",
in: colorcode.HexCode("#deadaf"),
out: "hsl(358, 43%, 77%)",
err: false,
},
{
desc: "errors on string without the # sign",
in: colorcode.HexCode("deadaf"),
out: "hsl(0, 0%, 0%)",
err: true,
},
{
desc: "errors on invalid characters",
in: colorcode.HexCode("#jklmno"),
out: "hsl(0, 0%, 0%)",
err: true,
},
}
for _, tC := range testCases {
t.Run(tC.desc, func(t *testing.T) {
result, err := tC.in.ToHSL()
if !tC.err && err != nil {
t.Errorf(err.Error())
}
if tC.err && err == nil {
t.Errorf("Expected error to not be nil")
}
if result.String() != tC.out {
t.Errorf("Expected %s but got %s", tC.out, result.String())
}
})
}
}
func TestHexToHSV(t *testing.T) {
testCases := []struct {
desc string
in colorcode.HexCode
out string
err bool
}{
{
desc: "converts a HexCode color into HSV",
in: colorcode.HexCode("#deadaf"),
out: "hsv(358, 22%, 87%)",
err: false,
},
{
desc: "errors on invalid characters",
in: colorcode.NewHexCode("#jklmno"),
out: "hsv(0, 0%, 0%)",
err: true,
},
}
for _, tC := range testCases {
t.Run(tC.desc, func(t *testing.T) {
result, err := tC.in.ToHSV()
if !tC.err && err != nil {
t.Errorf(err.Error())
}
if tC.err && err == nil {
t.Errorf("Expected error to not be nil")
}
if result.String() != tC.out {
t.Errorf("Expected %s but got %s", tC.out, result.String())
}
})
}
}