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