mirror of
https://github.com/dutchcoders/transfer.sh.git
synced 2024-12-12 22:00:18 +01:00
158 lines
2.1 KiB
Go
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)
|
|
}
|
|
}
|
|
}
|