//go:build linux // +build linux package monitor import ( "testing" tcell "github.com/gdamore/tcell/v2" ) // TestMeterColorForValue tests the MeterColorForValue function func TestMeterColorForValue(t *testing.T) { tests := []struct { name string value int maxValue int reverse bool wantColor tcell.Style }{ // Reverse mode tests (low is good, high is bad) { name: "reverse mode: 0% (best)", value: 0, maxValue: 10, reverse: true, wantColor: CBrightGreen, }, { name: "reverse mode: 10% (good)", value: 1, maxValue: 10, reverse: true, wantColor: CBrightGreen, }, { name: "reverse mode: 50% (medium)", value: 5, maxValue: 10, reverse: true, wantColor: CYellow, }, { name: "reverse mode: 90% (bad)", value: 9, maxValue: 10, reverse: true, wantColor: CRed, }, { name: "reverse mode: 100% (worst)", value: 10, maxValue: 10, reverse: true, wantColor: CRed, }, // Normal mode tests (high is good, low is bad) { name: "normal mode: 0% (worst)", value: 0, maxValue: 10, reverse: false, wantColor: CRed, }, { name: "normal mode: 10% (bad)", value: 1, maxValue: 10, reverse: false, wantColor: CRed, }, { name: "normal mode: 50% (medium)", value: 5, maxValue: 10, reverse: false, wantColor: CYellow, }, { name: "normal mode: 90% (good)", value: 9, maxValue: 10, reverse: false, wantColor: CBrightGreen, }, { name: "normal mode: 100% (best)", value: 10, maxValue: 10, reverse: false, wantColor: CBrightGreen, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got := MeterColorForValue(tt.value, tt.maxValue, tt.reverse) if got != tt.wantColor { t.Errorf("MeterColorForValue(%d, %d, %v) = %v, want %v", tt.value, tt.maxValue, tt.reverse, got, tt.wantColor) } }) } }