git.sr.ht/~pingoo/stdx@v0.0.0-20240218134121-094174641f6e/barcode/qr/numeric_test.go (about)

     1  package qr
     2  
     3  import (
     4  	"bytes"
     5  	"testing"
     6  )
     7  
     8  func Test_NumericEncoding(t *testing.T) {
     9  	encode := Numeric.getEncoder()
    10  	x, vi, err := encode("01234567", H)
    11  	if x == nil || vi == nil || vi.Version != 1 || bytes.Compare(x.GetBytes(), []byte{16, 32, 12, 86, 97, 128, 236, 17, 236}) != 0 {
    12  		t.Error("\"01234567\" failed to encode")
    13  	}
    14  	x, vi, err = encode("0123456789012345", H)
    15  	if x == nil || vi == nil || vi.Version != 1 || bytes.Compare(x.GetBytes(), []byte{16, 64, 12, 86, 106, 110, 20, 234, 80}) != 0 {
    16  		t.Error("\"0123456789012345\" failed to encode")
    17  	}
    18  	x, vi, err = encode("foo", H)
    19  	if err == nil {
    20  		t.Error("Numeric encoding should not be able to encode \"foo\"")
    21  	}
    22  	x, vi, err = encode(makeString(14297, "1"), H)
    23  	if x != nil || vi != nil || err == nil {
    24  		t.Fail()
    25  	}
    26  }