package door import ( "testing" ) func TestColor(t *testing.T) { ColorMap := map[string][]int{"\x1b[0m": {0}, "\x1b[1m": {1}, "\x1b[0;1;32;45m": {0, 1, 32, 45}, } for text, code := range ColorMap { ct := Color(code) if text != string(ct) { t.Errorf("Color: Expected %#v (%#v), got %#v", text, code, ct) } } } func TestColorText(t *testing.T) { ColorMap := map[string][]int{"BRI WHI": {0, 1, 37}, "RED ON GREEN": {0, 31, 42}, "GREEN ON RED": {0, 32, 41}, "GREE ON MAG": {0, 32, 45}, "WHI ON BLACK": {0, 37, 40}, // BUG? Should be {0} "WHITE ON BLACK": {0, 37, 40}, // ^ {0} "BRIGHT WHITE": {0, 1, 37}, "BOLD RED": {0, 1, 31}, "BLUE ON WHITE": {0, 34, 47}, "CYAN ON MAG": {0, 36, 45}, "MAGENTA": {0, 35}, "BRI YELL": {0, 1, 33}, "BRI YELLOW ON BLUE": {0, 1, 33, 44}, "BROWN ON CYAN": {0, 33, 46}, "BLACK ON YELLOW": {0, 30, 43}, "BLINK RED ON BLUE": {0, 5, 31, 44}, "BRIGHT BLINKY BLUE ON GREEN": {0, 1, 5, 34, 42}, "BLI BOLD YEL ON BLUE": {0, 5, 1, 33, 44}, } for text, code := range ColorMap { ct := string(ColorText(text)) cc := string(Color(code)) if ct != cc { t.Errorf("ColorText: Expected %#v (%#v), got %#v", cc, code, ct) } } } func TestColorTextFail(t *testing.T) { defer func() { if r := recover(); r == nil { t.Error("ColorText did not panic on invalid color.") } }() ColorText("BRIGHT BANANA ON FISH") }