number_encoder_test.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package pdf417
  2. import (
  3. "testing"
  4. )
  5. func TestNumberEncoder_CanEncode(t *testing.T) {
  6. encoder := newNumberEncoder()
  7. shouldEncode := func(tests ...rune) {
  8. for _, test := range tests {
  9. if !encoder.CanEncode(test) {
  10. t.Errorf("NumberEncoder should be able to encode %q", string(test))
  11. }
  12. }
  13. }
  14. shouldEncode('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
  15. shouldNotEncode := func(tests ...rune) {
  16. for _, test := range tests {
  17. if encoder.CanEncode(test) {
  18. t.Errorf("NumberEncoder should not be able to encode %q", string(test))
  19. }
  20. }
  21. }
  22. shouldNotEncode('a', 'q', '\t')
  23. }
  24. func TestNumberEncoder_GetSwitchCode(t *testing.T) {
  25. encoder := newNumberEncoder()
  26. if sc := encoder.GetSwitchCode("123"); sc != switchCodeNumber {
  27. t.Errorf("Unexpected switchcode. Got %v", sc)
  28. }
  29. if sc := encoder.GetSwitchCode("foo"); sc != switchCodeNumber {
  30. t.Errorf("Unexpected switchcode. Got %v", sc)
  31. }
  32. }
  33. func TestNumberEncoder_Encode(t *testing.T) {
  34. encoder := newNumberEncoder()
  35. if codes, err := encoder.Encode("01234"); err != nil {
  36. t.Error(err)
  37. } else {
  38. compareIntSlice(t, []int{112, 434}, codes)
  39. }
  40. }