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,24 +79,39 @@ 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 {
if err != nil { res, err := Encode(tst.Text, tst.ECL, tst.Mode)
t.Error(err) if err != nil {
} t.Error(err)
qrCode, ok := res.(*qrcode) }
if !ok { qrCode, ok := res.(*qrcode)
t.Fail() if !ok {
} t.Fail()
if (qrCode.dimension * qrCode.dimension) != len(qrHelloWorldHUni) { }
t.Fail() testRes := imgStrToBools(tst.Result)
} if (qrCode.dimension * qrCode.dimension) != len(testRes) {
t.Logf("dim %d", qrCode.dimension) t.Fail()
for i := 0; i < len(qrHelloWorldHUni); i++ { }
x := i % qrCode.dimension t.Logf("dim %d", qrCode.dimension)
y := i / qrCode.dimension for i := 0; i < len(testRes); i++ {
if qrCode.Get(x, y) != qrHelloWorldHUni[i] { x := i % qrCode.dimension
t.Errorf("Failed at index %d", i) y := i / qrCode.dimension
if qrCode.Get(x, y) != testRes[i] {
t.Errorf("Failed at index %d", i)
}
} }
} }
} }