transfer.sh/vendor/github.com/skip2/go-qrcode/version_test.go
2018-07-01 14:41:53 +02:00

158 lines
2.1 KiB
Go

// go-qrcode
// Copyright 2014 Tom Harwood
package qrcode
import (
"testing"
bitset "github.com/skip2/go-qrcode/bitset"
)
func TestFormatInfo(t *testing.T) {
tests := []struct {
level RecoveryLevel
maskPattern int
expected uint32
}{
{ // L=01 M=00 Q=11 H=10
Low,
1,
0x72f3,
},
{
Medium,
2,
0x5e7c,
},
{
High,
3,
0x3a06,
},
{
Highest,
4,
0x0762,
},
{
Low,
5,
0x6318,
},
{
Medium,
6,
0x4f97,
},
{
High,
7,
0x2bed,
},
}
for i, test := range tests {
v := getQRCodeVersion(test.level, 1)
result := v.formatInfo(test.maskPattern)
expected := bitset.New()
expected.AppendUint32(test.expected, formatInfoLengthBits)
if !expected.Equals(result) {
t.Errorf("formatInfo test #%d got %s, expected %s", i, result.String(),
expected.String())
}
}
}
func TestVersionInfo(t *testing.T) {
tests := []struct {
version int
expected uint32
}{
{
7,
0x007c94,
},
{
10,
0x00a4d3,
},
{
20,
0x0149a6,
},
{
30,
0x01ed75,
},
{
40,
0x028c69,
},
}
for i, test := range tests {
var v *qrCodeVersion
v = getQRCodeVersion(Low, test.version)
result := v.versionInfo()
expected := bitset.New()
expected.AppendUint32(test.expected, versionInfoLengthBits)
if !expected.Equals(result) {
t.Errorf("versionInfo test #%d got %s, expected %s", i, result.String(),
expected.String())
}
}
}
func TestNumBitsToPadToCodeoword(t *testing.T) {
tests := []struct {
level RecoveryLevel
version int
numDataBits int
expected int
}{
{
Low,
1,
0,
0,
}, {
Low,
1,
1,
7,
}, {
Low,
1,
7,
1,
}, {
Low,
1,
8,
0,
},
}
for i, test := range tests {
var v *qrCodeVersion
v = getQRCodeVersion(test.level, test.version)
result := v.numBitsToPadToCodeword(test.numDataBits)
if result != test.expected {
t.Errorf("numBitsToPadToCodeword test %d (version=%d numDataBits=%d), got %d, expected %d",
i, test.version, test.numDataBits, result, test.expected)
}
}
}