1package colorful
2
3import (
4	"reflect"
5	"testing"
6)
7
8func TestHexColor(t *testing.T) {
9	for _, tc := range []struct {
10		hc HexColor
11		s  string
12	}{
13		{HexColor{R: 0, G: 0, B: 0}, "#000000"},
14		{HexColor{R: 1, G: 0, B: 0}, "#ff0000"},
15		{HexColor{R: 0, G: 1, B: 0}, "#00ff00"},
16		{HexColor{R: 0, G: 0, B: 1}, "#0000ff"},
17		{HexColor{R: 1, G: 1, B: 1}, "#ffffff"},
18	} {
19		var gotHC HexColor
20		if err := gotHC.Scan(tc.s); err != nil {
21			t.Errorf("_.Scan(%q) == %v, want <nil>", tc.s, err)
22		}
23		if !reflect.DeepEqual(gotHC, tc.hc) {
24			t.Errorf("_.Scan(%q) wrote %v, want %v", tc.s, gotHC, tc.hc)
25		}
26		if gotValue, err := tc.hc.Value(); err != nil || !reflect.DeepEqual(gotValue, tc.s) {
27			t.Errorf("%v.Value() == %v, %v, want %v, <nil>", tc.hc, gotValue, err, tc.s)
28		}
29	}
30}
31