k9s/internal/vul/scorer_test.go

97 lines
1.6 KiB
Go

// SPDX-License-Identifier: Apache-2.0
// Copyright Authors of K9s
package vul
import (
"testing"
"github.com/stretchr/testify/assert"
)
func Test_scorerAdd(t *testing.T) {
uu := map[string]struct {
b, b1, e scorer
}{
"zero": {},
"same": {
b: scorer(0x80),
b1: scorer(0x80),
e: scorer(0x80),
},
"c+h": {
b: scorer(0x80),
b1: scorer(0x40),
e: scorer(0xC0),
},
"ch+hm": {
b: scorer(0xc0),
b1: scorer(0xa0),
e: scorer(0xe0),
},
}
for k := range uu {
u := uu[k]
t.Run(k, func(t *testing.T) {
assert.Equal(t, u.e, u.b.Add(u.b1))
})
}
}
func Test_scorerFromTally(t *testing.T) {
uu := map[string]struct {
tt tally
b scorer
}{
"zero": {},
"critical": {
tt: tally{29, 0, 0, 0, 0, 0, 0},
b: scorer(0x80),
},
"high": {
tt: tally{0, 17, 0, 0, 0, 0, 0},
b: scorer(0x40),
},
"medium": {
tt: tally{0, 0, 5, 0, 0, 0, 0},
b: scorer(0x20),
},
"low": {
tt: tally{0, 0, 0, 10, 0, 0, 0},
b: scorer(0x10),
},
"negligible": {
tt: tally{0, 0, 0, 0, 10, 0, 0},
b: scorer(0x08),
},
"unknown": {
tt: tally{0, 0, 0, 0, 0, 10, 0},
b: scorer(0x04),
},
"c/h": {
tt: tally{10, 20, 0, 0, 0, 0, 0},
b: scorer(0xC0),
},
"c/m": {
tt: tally{10, 0, 20, 0, 0, 0, 0},
b: scorer(0xA0),
},
"c/h/l": {
tt: tally{10, 1, 20, 0, 0, 0, 0},
b: scorer(0xE0),
},
"n/u": {
tt: tally{0, 0, 0, 0, 10, 20, 0},
b: scorer(0x0C),
},
}
for k := range uu {
u := uu[k]
t.Run(k, func(t *testing.T) {
assert.Equal(t, u.b, newScorer(u.tt))
})
}
}