123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- // 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)
- }
- }
- }
|