Преглед на файлове

moved rune2int and int2rune to utils package

boombuler преди 11 години
родител
ревизия
ecbfc39708
променени са 4 файла, в които са добавени 45 реда и са изтрити 37 реда
  1. 2 16
      ean/encoder.go
  2. 0 21
      ean/encoder_test.go
  3. 19 0
      utils/runeint.go
  4. 24 0
      utils/runeint_test.go

+ 2 - 16
ean/encoder.go

@@ -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 {
 	x3 := len(code) == 7
 	sum := 0
 	for _, r := range code {
-		curNum := runeToInt(r)
+		curNum := utils.RuneToInt(r)
 		if curNum < 0 || curNum > 9 {
 			return 'B'
 		}
@@ -107,7 +93,7 @@ func calcCheckNum(code string) rune {
 		sum += curNum
 	}
 
-	return intToRune((10 - (sum % 10)) % 10)
+	return utils.IntToRune((10 - (sum % 10)) % 10)
 }
 
 func encodeEAN8(code string) *utils.BitList {

+ 0 - 21
ean/encoder_test.go

@@ -44,24 +44,3 @@ func Test_EncodeEAN(t *testing.T) {
 		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'))
-	}
-}

+ 19 - 0
utils/runeint.go

@@ -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'
+}

+ 24 - 0
utils/runeint_test.go

@@ -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'))
+	}
+}