test cleanup

This commit is contained in:
Florian Sundermann 2014-08-13 08:23:10 +02:00
parent a8ac393109
commit 5a0018c9b8
1 changed files with 71 additions and 42 deletions

View File

@ -9,31 +9,45 @@ import (
"github.com/boombuler/barcode" "github.com/boombuler/barcode"
) )
var qrHelloWorldHUni = []bool{true, true, true, true, true, true, true, false, true, false, true, false, true, false, false, false, true, false, true, true, true, true, true, true, true, type test struct {
true, false, false, false, false, false, true, false, true, true, false, false, false, true, true, true, false, false, true, false, false, false, false, false, true, Text string
true, false, true, true, true, false, true, false, true, false, true, false, true, true, false, true, true, false, true, false, true, true, true, false, true, Mode Encoding
true, false, true, true, true, false, true, false, false, false, false, true, true, false, true, true, false, false, true, false, true, true, true, false, true, ECL ErrorCorrectionLevel
true, false, true, true, true, false, true, false, false, true, false, false, false, true, true, false, true, false, true, false, true, true, true, false, true, Result string
true, false, false, false, false, false, true, false, true, false, false, true, false, false, true, true, true, false, true, false, false, false, false, false, true, }
true, true, true, true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true,
false, false, false, false, false, false, false, false, true, true, false, false, true, false, false, true, false, false, false, false, false, false, false, false, false, var tests = []test{
false, false, true, true, true, false, true, false, true, true, true, false, true, false, true, true, true, true, true, true, false, false, true, true, true, test{
true, true, true, false, false, true, false, false, true, false, false, false, true, true, false, true, false, false, false, true, false, false, true, false, false, Text: "hello world",
true, false, false, false, true, false, true, true, true, true, false, false, false, false, true, true, false, true, false, false, true, true, false, true, true, Mode: Unicode,
true, true, false, true, false, true, false, true, true, false, false, false, true, false, false, false, true, false, true, false, false, false, false, true, true, ECL: H,
false, false, true, false, false, true, true, true, false, true, false, true, true, true, true, true, false, true, true, true, true, true, true, true, true, Result: `
true, false, true, true, true, false, false, false, true, false, false, true, true, false, false, true, true, false, false, true, false, false, true, false, false, +++++++.+.+.+...+.+++++++
true, false, false, false, false, false, true, false, false, true, false, true, false, false, false, false, false, true, true, true, true, true, false, true, true, +.....+.++...+++..+.....+
true, false, true, true, true, false, false, false, false, false, true, false, false, false, true, false, true, false, true, true, true, false, false, false, true, +.+++.+.+.+.++.++.+.+++.+
true, false, true, false, false, true, true, true, false, false, false, true, true, false, true, false, true, true, true, true, true, true, true, false, false, +.+++.+....++.++..+.+++.+
false, false, false, false, false, false, false, false, true, false, false, false, false, true, true, false, true, false, false, false, true, false, true, false, false, +.+++.+..+...++.+.+.+++.+
true, true, true, true, true, true, true, false, false, false, false, false, false, true, true, true, true, false, true, false, true, false, true, true, true, +.....+.+..+..+++.+.....+
true, false, false, false, false, false, true, false, false, false, false, true, false, false, false, true, true, false, false, false, true, true, false, true, false, +++++++.+.+.+.+.+.+++++++
true, false, true, true, true, false, true, false, true, false, true, false, false, false, true, true, true, true, true, true, true, true, true, false, false, ........++..+..+.........
true, false, true, true, true, false, true, false, true, true, false, false, false, true, true, false, false, false, true, false, true, true, false, false, true, ..+++.+.+++.+.++++++..+++
true, false, true, true, true, false, true, false, true, true, false, true, true, true, true, true, false, false, true, true, false, true, false, false, true, +++..+..+...++.+...+..+..
true, false, false, false, false, false, true, false, false, true, true, true, false, false, true, true, false, true, false, true, true, false, false, false, true, +...+.++++....++.+..++.++
true, true, true, true, true, true, true, false, false, false, false, true, false, false, true, false, true, false, false, true, false, false, true, true, true, ++.+.+.++...+...+.+....++
..+..+++.+.+++++.++++++++
+.+++...+..++..++..+..+..
+.....+..+.+.....+++++.++
+.+++.....+...+.+.+++...+
+.+..+++...++.+.+++++++..
........+....++.+...+.+..
+++++++......++++.+.+.+++
+.....+....+...++...++.+.
+.+++.+.+.+...+++++++++..
+.+++.+.++...++...+.++..+
+.+++.+.++.+++++..++.+..+
+.....+..+++..++.+.++...+
+++++++....+..+.+..+..+++`,
},
} }
func Test_GetUnknownEncoder(t *testing.T) { func Test_GetUnknownEncoder(t *testing.T) {
@ -65,8 +79,21 @@ func Test_InvalidEncoding(t *testing.T) {
} }
} }
func imgStrToBools(str string) []bool {
res := make([]bool, 0, len(str))
for _, r := range str {
if r == '+' {
res = append(res, true)
} else if r == '.' {
res = append(res, false)
}
}
return res
}
func Test_Encode(t *testing.T) { func Test_Encode(t *testing.T) {
res, err := Encode("hello world", H, Unicode) for _, tst := range tests {
res, err := Encode(tst.Text, tst.ECL, tst.Mode)
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
@ -74,18 +101,20 @@ func Test_Encode(t *testing.T) {
if !ok { if !ok {
t.Fail() t.Fail()
} }
if (qrCode.dimension * qrCode.dimension) != len(qrHelloWorldHUni) { testRes := imgStrToBools(tst.Result)
if (qrCode.dimension * qrCode.dimension) != len(testRes) {
t.Fail() t.Fail()
} }
t.Logf("dim %d", qrCode.dimension) t.Logf("dim %d", qrCode.dimension)
for i := 0; i < len(qrHelloWorldHUni); i++ { for i := 0; i < len(testRes); i++ {
x := i % qrCode.dimension x := i % qrCode.dimension
y := i / qrCode.dimension y := i / qrCode.dimension
if qrCode.Get(x, y) != qrHelloWorldHUni[i] { if qrCode.Get(x, y) != testRes[i] {
t.Errorf("Failed at index %d", i) t.Errorf("Failed at index %d", i)
} }
} }
} }
}
func ExampleEncode() { func ExampleEncode() {
f, _ := os.Create("qrcode.png") f, _ := os.Create("qrcode.png")