text_encoder_test.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package pdf417
  2. import (
  3. "testing"
  4. )
  5. func compareIntSlice(t *testing.T, expected, actual []int) {
  6. if len(actual) != len(expected) {
  7. t.Errorf("Invalid slice size. Expected %d got %d", len(expected), len(actual))
  8. return
  9. }
  10. for i, a := range actual {
  11. if e := expected[i]; e != a {
  12. t.Errorf("Unexpected value at position %d. Expected %d got %d", i, e, a)
  13. }
  14. }
  15. }
  16. func TestTextEncoder_CanEncode(t *testing.T) {
  17. encoder := newTextEncoder()
  18. for ord := int(' '); ord < int('Z'); ord++ {
  19. chr := rune(ord)
  20. if chr == '"' {
  21. continue
  22. }
  23. if !encoder.CanEncode(chr) {
  24. t.Errorf("Unable to encode: %d %c", ord, chr)
  25. }
  26. }
  27. }
  28. func TestTextEncoder_GetSwitchCode(t *testing.T) {
  29. encoder := newTextEncoder()
  30. if sc := encoder.GetSwitchCode("123"); sc != switchCodeText {
  31. t.Errorf("Unexpected switchcode. Got %v", sc)
  32. }
  33. if sc := encoder.GetSwitchCode("foo"); sc != switchCodeText {
  34. t.Errorf("Unexpected switchcode. Got %v", sc)
  35. }
  36. }
  37. func TestTextEncoder_Encode(t *testing.T) {
  38. encoder := newTextEncoder()
  39. if codes, err := encoder.Encode("Super !"); err != nil {
  40. t.Error(err)
  41. } else {
  42. compareIntSlice(t, []int{567, 615, 137, 808, 760}, codes)
  43. }
  44. if codes, err := encoder.Encode("Super "); err != nil {
  45. t.Error(err)
  46. } else {
  47. compareIntSlice(t, []int{567, 615, 137, 809}, codes)
  48. }
  49. }