package monitor_test import ( "testing" tcell "github.com/gdamore/tcell/v2" "git.eeqj.de/sneak/rtnetmon/internal/monitor" ) func TestMeterColorForValue(t *testing.T) { t.Parallel() green := tcell.StyleDefault.Foreground(tcell.ColorGreen).Bold(true) yellow := tcell.StyleDefault.Foreground(tcell.ColorYellow) red := tcell.StyleDefault.Foreground(tcell.ColorRed) tests := []struct { name string value, maxValue int reverse bool want tcell.Style }{ {"reverse 0% best", 0, 10, true, green}, {"reverse 10% good", 1, 10, true, green}, {"reverse 50% medium", 5, 10, true, yellow}, {"reverse 90% bad", 9, 10, true, red}, {"reverse 100% worst", 10, 10, true, red}, {"normal 0% worst", 0, 10, false, red}, {"normal 10% bad", 1, 10, false, red}, {"normal 50% medium", 5, 10, false, yellow}, {"normal 90% good", 9, 10, false, green}, {"normal 100% best", 10, 10, false, green}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { t.Parallel() got := monitor.MeterColorForValue(tt.value, tt.maxValue, tt.reverse) if got != tt.want { t.Errorf("MeterColorForValue(%d, %d, %v) = %v, want %v", tt.value, tt.maxValue, tt.reverse, got, tt.want) } }) } }