127 lines
2.4 KiB
Go
127 lines
2.4 KiB
Go
package tchart_test
|
|
|
|
import (
|
|
"strconv"
|
|
"testing"
|
|
|
|
"github.com/derailed/k9s/internal/tchart"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestSegmentFor(t *testing.T) {
|
|
uu := map[string]struct {
|
|
r, c int
|
|
e []int
|
|
}{
|
|
"0x0": {r: 0, c: 0, e: []int{1, 0}},
|
|
"0x1": {r: 0, c: 1, e: []int{0}},
|
|
"0x2": {r: 0, c: 2, e: []int{2, 0}},
|
|
"1x0": {r: 1, c: 0, e: []int{1}},
|
|
"1x1": {r: 1, c: 1, e: nil},
|
|
"1x2": {r: 1, c: 2, e: []int{2}},
|
|
"2x0": {r: 2, c: 0, e: []int{1, 3}},
|
|
"2x1": {r: 2, c: 1, e: []int{3}},
|
|
"2x2": {r: 2, c: 2, e: []int{2, 3}},
|
|
"3x0": {r: 3, c: 0, e: []int{4}},
|
|
"3x1": {r: 3, c: 1, e: nil},
|
|
"3x2": {r: 3, c: 2, e: []int{5}},
|
|
"4x0": {r: 4, c: 0, e: []int{4, 6}},
|
|
"4x1": {r: 4, c: 1, e: []int{6}},
|
|
"4x2": {r: 4, c: 2, e: []int{5, 6}},
|
|
}
|
|
|
|
for k := range uu {
|
|
u := uu[k]
|
|
t.Run(k, func(t *testing.T) {
|
|
assert.Equal(t, u.e, tchart.ToSegments(u.r, u.c))
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestDial5x3(t *testing.T) {
|
|
d := tchart.NewDotMatrix(5, 3)
|
|
for n := 0; n <= 9; n++ {
|
|
i := n
|
|
t.Run(strconv.Itoa(n), func(t *testing.T) {
|
|
assert.Equal(t, numbers3x5[i], d.Print(i))
|
|
})
|
|
}
|
|
}
|
|
|
|
// Helpers...
|
|
|
|
const hChar, vChar = '▤', '▥'
|
|
|
|
var numbers3x5 = []tchart.Matrix{
|
|
[][]rune{
|
|
{hChar, hChar, hChar},
|
|
{vChar, ' ', vChar},
|
|
{vChar, ' ', vChar},
|
|
{vChar, ' ', vChar},
|
|
{hChar, hChar, hChar},
|
|
},
|
|
[][]rune{
|
|
{' ', ' ', hChar},
|
|
{' ', ' ', vChar},
|
|
{' ', ' ', vChar},
|
|
{' ', ' ', vChar},
|
|
{' ', ' ', vChar},
|
|
},
|
|
[][]rune{
|
|
{hChar, hChar, hChar},
|
|
{' ', ' ', vChar},
|
|
{hChar, hChar, hChar},
|
|
{vChar, ' ', ' '},
|
|
{hChar, hChar, hChar},
|
|
},
|
|
[][]rune{
|
|
{hChar, hChar, hChar},
|
|
{' ', ' ', vChar},
|
|
{hChar, hChar, hChar},
|
|
{' ', ' ', vChar},
|
|
{hChar, hChar, hChar},
|
|
},
|
|
[][]rune{
|
|
{hChar, ' ', ' '},
|
|
{vChar, ' ', ' '},
|
|
{hChar, hChar, hChar},
|
|
{' ', ' ', vChar},
|
|
{' ', ' ', vChar},
|
|
},
|
|
[][]rune{
|
|
{hChar, hChar, hChar},
|
|
{vChar, ' ', ' '},
|
|
{hChar, hChar, hChar},
|
|
{' ', ' ', vChar},
|
|
{hChar, hChar, hChar},
|
|
},
|
|
[][]rune{
|
|
{hChar, ' ', ' '},
|
|
{vChar, ' ', ' '},
|
|
{hChar, hChar, hChar},
|
|
{vChar, ' ', vChar},
|
|
{hChar, hChar, hChar},
|
|
},
|
|
[][]rune{
|
|
{hChar, hChar, hChar},
|
|
{' ', ' ', vChar},
|
|
{' ', ' ', vChar},
|
|
{' ', ' ', vChar},
|
|
{' ', ' ', vChar},
|
|
},
|
|
[][]rune{
|
|
{hChar, hChar, hChar},
|
|
{vChar, ' ', vChar},
|
|
{hChar, hChar, hChar},
|
|
{vChar, ' ', vChar},
|
|
{hChar, hChar, hChar},
|
|
},
|
|
[][]rune{
|
|
{hChar, hChar, hChar},
|
|
{vChar, ' ', vChar},
|
|
{hChar, hChar, hChar},
|
|
{' ', ' ', vChar},
|
|
{' ', ' ', vChar},
|
|
},
|
|
}
|