moved rune2int and int2rune to utils package
This commit is contained in:
parent
ea51d46359
commit
ecbfc39708
|
@ -78,25 +78,11 @@ var encoderTable = map[rune]encodedNumber{
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
func runeToInt(r rune) int {
|
|
||||||
if r >= '0' && r <= '9' {
|
|
||||||
return int(r - '0')
|
|
||||||
}
|
|
||||||
return -1
|
|
||||||
}
|
|
||||||
|
|
||||||
func intToRune(i int) rune {
|
|
||||||
if i >= 0 && i <= 9 {
|
|
||||||
return rune(i + '0')
|
|
||||||
}
|
|
||||||
return 'F'
|
|
||||||
}
|
|
||||||
|
|
||||||
func calcCheckNum(code string) rune {
|
func calcCheckNum(code string) rune {
|
||||||
x3 := len(code) == 7
|
x3 := len(code) == 7
|
||||||
sum := 0
|
sum := 0
|
||||||
for _, r := range code {
|
for _, r := range code {
|
||||||
curNum := runeToInt(r)
|
curNum := utils.RuneToInt(r)
|
||||||
if curNum < 0 || curNum > 9 {
|
if curNum < 0 || curNum > 9 {
|
||||||
return 'B'
|
return 'B'
|
||||||
}
|
}
|
||||||
|
@ -107,7 +93,7 @@ func calcCheckNum(code string) rune {
|
||||||
sum += curNum
|
sum += curNum
|
||||||
}
|
}
|
||||||
|
|
||||||
return intToRune((10 - (sum % 10)) % 10)
|
return utils.IntToRune((10 - (sum % 10)) % 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
func encodeEAN8(code string) *utils.BitList {
|
func encodeEAN8(code string) *utils.BitList {
|
||||||
|
|
|
@ -44,24 +44,3 @@ func Test_EncodeEAN(t *testing.T) {
|
||||||
t.Error("\"invalid error\" should not be encodable")
|
t.Error("\"invalid error\" should not be encodable")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_RuneToIntIntToRune(t *testing.T) {
|
|
||||||
if intToRune(0) != '0' {
|
|
||||||
t.Errorf("failed intToRune(0) returned %d", string(intToRune(0)))
|
|
||||||
}
|
|
||||||
if intToRune(9) != '9' {
|
|
||||||
t.Errorf("failed intToRune(9) returned %d", intToRune(9))
|
|
||||||
}
|
|
||||||
if intToRune(10) != 'F' {
|
|
||||||
t.Errorf("failed intToRune(10) returned %d", intToRune(10))
|
|
||||||
}
|
|
||||||
if runeToInt('0') != 0 {
|
|
||||||
t.Error("failed runeToInt('0') returned %d", runeToInt(0))
|
|
||||||
}
|
|
||||||
if runeToInt('9') != 9 {
|
|
||||||
t.Error("failed runeToInt('9') returned %d", runeToInt(9))
|
|
||||||
}
|
|
||||||
if runeToInt('F') != -1 {
|
|
||||||
t.Error("failed runeToInt('F') returned %d", runeToInt('F'))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
package utils
|
||||||
|
|
||||||
|
// RuneToInt converts a rune between '0' and '9' to an integer between 0 and 9
|
||||||
|
// If the rune is outside of this range -1 is returned.
|
||||||
|
func RuneToInt(r rune) int {
|
||||||
|
if r >= '0' && r <= '9' {
|
||||||
|
return int(r - '0')
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
// IntToRune converts a digit 0 - 9 to the rune '0' - '9'. If the given int is outside
|
||||||
|
// of this range 'F' is returned!
|
||||||
|
func IntToRune(i int) rune {
|
||||||
|
if i >= 0 && i <= 9 {
|
||||||
|
return rune(i + '0')
|
||||||
|
}
|
||||||
|
return 'F'
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package utils
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func Test_RuneToIntIntToRune(t *testing.T) {
|
||||||
|
if IntToRune(0) != '0' {
|
||||||
|
t.Errorf("failed IntToRune(0) returned %d", string(IntToRune(0)))
|
||||||
|
}
|
||||||
|
if IntToRune(9) != '9' {
|
||||||
|
t.Errorf("failed IntToRune(9) returned %d", IntToRune(9))
|
||||||
|
}
|
||||||
|
if IntToRune(10) != 'F' {
|
||||||
|
t.Errorf("failed IntToRune(10) returned %d", IntToRune(10))
|
||||||
|
}
|
||||||
|
if RuneToInt('0') != 0 {
|
||||||
|
t.Error("failed RuneToInt('0') returned %d", RuneToInt(0))
|
||||||
|
}
|
||||||
|
if RuneToInt('9') != 9 {
|
||||||
|
t.Error("failed RuneToInt('9') returned %d", RuneToInt(9))
|
||||||
|
}
|
||||||
|
if RuneToInt('F') != -1 {
|
||||||
|
t.Error("failed RuneToInt('F') returned %d", RuneToInt('F'))
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue