106 lines
2.0 KiB
Go
106 lines
2.0 KiB
Go
//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)
|
|
}
|
|
})
|
|
}
|
|
}
|