dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit be1bd10e22da7dec0f33d75407386f07f91f4cae
parent 8b94dbcf03580871720953d538f1ca7b1179fd90
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Wed, 16 Nov 2022 03:29:47 -0500

remove getClassName hacks and make it always work

Diffstat:
Mcmd/art/main.go | 31+++++++++++++++++++++----------
Mcmd/art/main_test.go | 7+++++++
2 files changed, 28 insertions(+), 10 deletions(-)

diff --git a/cmd/art/main.go b/cmd/art/main.go @@ -134,20 +134,31 @@ func HexFromRgbColor(color color.NRGBA) string { } func getClassName(idx int) string { - var out []rune - r := 'a' - 1 - for idx >= 0 { - if r == 'z' { - if len(out) == 0 { + out := []rune{'a'} + for idx > 0 { + if out[0] == 'z' { + found := false + for i := range out { + if out[i] < 'z' { + found = true + out[i]++ + break + } + } + if !found { out = append(out, 'a') - } else { - out[0]++ + for i := range out { + out[i] = 'a' + } } - r = 'a' - 1 + out[0] = 'a' - 1 } - r++ + out[0]++ idx-- } - out = append(out, r) + // Reverse slice + for i, j := 0, len(out)-1; i < j; i, j = i+1, j-1 { + out[i], out[j] = out[j], out[i] + } return string(out) } diff --git a/cmd/art/main_test.go b/cmd/art/main_test.go @@ -16,4 +16,11 @@ func TestGetClassName(t *testing.T) { assert.Equal(t, "bb", getClassName(53)) assert.Equal(t, "bz", getClassName(77)) assert.Equal(t, "ca", getClassName(78)) + assert.Equal(t, "zz", getClassName(701)) + assert.Equal(t, "aaa", getClassName(702)) + assert.Equal(t, "aab", getClassName(703)) + assert.Equal(t, "aaz", getClassName(727)) + assert.Equal(t, "aba", getClassName(728)) + assert.Equal(t, "abz", getClassName(753)) + assert.Equal(t, "aca", getClassName(754)) }