PNGReaderTests.cpp 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #include "tests/PNGReaderTests.h"
  2. #include "images/PNGReader.h"
  3. #include "tests/Test.h"
  4. #include "utils/List.h"
  5. #include "utils/StringBuffer.h"
  6. static void testReadRGB8(Test& test, const char* path) {
  7. PNGReader png;
  8. if(png.load(StringBuffer<200>(path).append("rgb8.png")).has()) {
  9. test.checkEqual(false, true, "read rgb8 error");
  10. return;
  11. }
  12. test.checkEqual(32, png.getWidth(), "rgb8 width");
  13. test.checkEqual(64, png.getHeight(), "rgb8 height");
  14. test.checkEqual(3, png.getChannels(), "rgb8 channels");
  15. test.checkEqual(true, png.getData() != nullptr, "rgb8 data");
  16. }
  17. static void testReadRGB16(Test& test, const char* path) {
  18. PNGReader png;
  19. test.checkEqual(
  20. true, png.load((StringBuffer<200>(path).append("rgb16.png"))).has(),
  21. "read rgb16 error");
  22. }
  23. static void testReadRGBA8(Test& test, const char* path) {
  24. PNGReader png;
  25. if(png.load(StringBuffer<200>(path).append("rgba8.png")).has()) {
  26. test.checkEqual(false, true, "read rgba8 error");
  27. return;
  28. }
  29. test.checkEqual(32, png.getWidth(), "rgba8 width");
  30. test.checkEqual(64, png.getHeight(), "rgba8 height");
  31. test.checkEqual(4, png.getChannels(), "rgba8 channels");
  32. test.checkEqual(true, png.getData() != nullptr, "rgba8 data");
  33. }
  34. static void testReadRGBA16(Test& test, const char* path) {
  35. PNGReader png;
  36. test.checkEqual(
  37. true, png.load(StringBuffer<200>(path).append("rgba16.png")).has(),
  38. "read rgba16 error");
  39. }
  40. static void testReadGray8(Test& test, const char* path) {
  41. PNGReader png;
  42. if(png.load(StringBuffer<200>(path).append("gray8.png")).has()) {
  43. test.checkEqual(false, true, "read gray8 error");
  44. return;
  45. }
  46. test.checkEqual(32, png.getWidth(), "gray8 width");
  47. test.checkEqual(64, png.getHeight(), "gray8 height");
  48. test.checkEqual(1, png.getChannels(), "gray8 channels");
  49. test.checkEqual(true, png.getData() != nullptr, "gray8 data");
  50. }
  51. static void testReadGray16(Test& test, const char* path) {
  52. PNGReader png;
  53. test.checkEqual(
  54. true, png.load(StringBuffer<200>(path).append("gray16.png")).has(),
  55. "read gray16 error");
  56. }
  57. static void testReadGrayA8(Test& test, const char* path) {
  58. PNGReader png;
  59. if(png.load(StringBuffer<200>(path).append("graya8.png")).has()) {
  60. test.checkEqual(false, true, "read graya8 error");
  61. return;
  62. }
  63. test.checkEqual(32, png.getWidth(), "graya8 width");
  64. test.checkEqual(64, png.getHeight(), "graya8 height");
  65. test.checkEqual(2, png.getChannels(), "graya8 channels");
  66. test.checkEqual(true, png.getData() != nullptr, "graya8 data");
  67. }
  68. static void testReadGrayA16(Test& test, const char* path) {
  69. PNGReader png;
  70. test.checkEqual(
  71. true, png.load(StringBuffer<200>(path).append("graya16.png")).has(),
  72. "read graya16 error");
  73. }
  74. void PNGReaderTests::test(const char* path) {
  75. Test test("PNGReader");
  76. testReadRGB8(test, path);
  77. testReadRGB16(test, path);
  78. testReadRGBA8(test, path);
  79. testReadRGBA16(test, path);
  80. testReadGray8(test, path);
  81. testReadGray16(test, path);
  82. testReadGrayA8(test, path);
  83. testReadGrayA16(test, path);
  84. test.finalize();
  85. }