test.bmx 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. SuperStrict
  2. Framework brl.standardio
  3. Import Text.Encoding
  4. Import BRL.MaxUnit
  5. New TTestSuite.run()
  6. Type TISOStrategyTest Extends TTest
  7. Method CompareStreams(encoding:EStreamEncoding)
  8. Local encodedStream:TStream = ReadStream("test_data/" + encoding.ToString().ToLower() +"_encoded.txt")
  9. Local utf8Sstream:TStream = ReadStream("test_data/" + encoding.ToString().ToLower() + "_utf8.txt")
  10. If Not encodedStream Or Not utf8Sstream Then
  11. Fail("Error: Unable to open the input or expected files.")
  12. End If
  13. Local encodingStream:TEncodingToUTF8Stream = New TEncodingToUTF8Stream(encodedStream, encoding)
  14. Local buf:Byte[128]
  15. Local totalBytesRead:Long
  16. Local expectedByte:Byte
  17. Local success:Int = True
  18. Local bytesRead:Long = encodingStream.Read(buf, 128)
  19. While bytesRead > 0
  20. For Local i:Int = 0 Until bytesRead
  21. utf8Sstream.ReadBytes(varptr expectedByte, 1)
  22. If buf[i] <> expectedByte Then
  23. Print "Mismatch at position " + (totalBytesRead + i) + ": Expected " + expectedByte + " but got " + buf[i]
  24. success = False
  25. End If
  26. Next
  27. totalBytesRead :+ bytesRead
  28. bytesRead = encodingStream.Read(buf, 128)
  29. Wend
  30. encodingStream.Close()
  31. utf8Sstream.Close()
  32. AssertTrue(success)
  33. End Method
  34. Method testISO_8859_1() { test }
  35. CompareStreams(EStreamEncoding.ISO_8859_1)
  36. End Method
  37. Method testISO_8859_2() { test }
  38. CompareStreams(EStreamEncoding.ISO_8859_2)
  39. End Method
  40. Method testISO_8859_5() { test }
  41. CompareStreams(EStreamEncoding.ISO_8859_5)
  42. End Method
  43. Method testISO_8859_6() { test }
  44. CompareStreams(EStreamEncoding.ISO_8859_6)
  45. End Method
  46. Method testISO_8859_7() { test }
  47. CompareStreams(EStreamEncoding.ISO_8859_7)
  48. End Method
  49. Method testISO_8859_8() { test }
  50. CompareStreams(EStreamEncoding.ISO_8859_8)
  51. End Method
  52. Method testISO_8859_9() { test }
  53. CompareStreams(EStreamEncoding.ISO_8859_9)
  54. End Method
  55. Method testISO_8859_15() { test }
  56. CompareStreams(EStreamEncoding.ISO_8859_15)
  57. End Method
  58. Method testWindows_1250() { test }
  59. CompareStreams(EStreamEncoding.CP1250)
  60. End Method
  61. Method testWindows_1251() { test }
  62. CompareStreams(EStreamEncoding.CP1251)
  63. End Method
  64. Method testWindows_1252() { test }
  65. CompareStreams(EStreamEncoding.CP1252)
  66. End Method
  67. Method testWindows_1253() { test }
  68. CompareStreams(EStreamEncoding.CP1253)
  69. End Method
  70. Method testWindows_1254() { test }
  71. CompareStreams(EStreamEncoding.CP1254)
  72. End Method
  73. Method testWindows_1255() { test }
  74. CompareStreams(EStreamEncoding.CP1255)
  75. End Method
  76. Method testWindows_1256() { test }
  77. CompareStreams(EStreamEncoding.CP1256)
  78. End Method
  79. Method testWindows_1257() { test }
  80. CompareStreams(EStreamEncoding.CP1257)
  81. End Method
  82. End Type