flipping.test.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import { Jimp, mkJGD } from '@jimp/test-utils';
  2. import configure from '@jimp/custom';
  3. import flip from '../src';
  4. const jimp = configure({ plugins: [flip] }, Jimp);
  5. describe('Flipping plugin', () => {
  6. it('can flip horizontally', async () => {
  7. const src = await jimp.read(
  8. mkJGD(
  9. 'AAAABBBB',
  10. 'AAABAAAB',
  11. 'ABABABAB',
  12. 'CCCCCCCC',
  13. 'CCCCCCCC',
  14. 'CCCCCCCC',
  15. 'AACCCCAA'
  16. )
  17. );
  18. const result = src.flip(true, false);
  19. result
  20. .getJGDSync()
  21. .should.be.sameJGD(
  22. mkJGD(
  23. 'BBBBAAAA',
  24. 'BAAABAAA',
  25. 'BABABABA',
  26. 'CCCCCCCC',
  27. 'CCCCCCCC',
  28. 'CCCCCCCC',
  29. 'AACCCCAA'
  30. )
  31. );
  32. });
  33. it('can flip vertically', async () => {
  34. const src = await jimp.read(
  35. mkJGD(
  36. 'AAAABBBB',
  37. 'AAABAAAB',
  38. 'ABABABAB',
  39. 'CCCCCCCC',
  40. 'CCCCCCCC',
  41. 'CCCCCCCC',
  42. 'AACCCCAA'
  43. )
  44. );
  45. const result = src.flip(false, true);
  46. result
  47. .getJGDSync()
  48. .should.be.sameJGD(
  49. mkJGD(
  50. 'AACCCCAA',
  51. 'CCCCCCCC',
  52. 'CCCCCCCC',
  53. 'CCCCCCCC',
  54. 'ABABABAB',
  55. 'AAABAAAB',
  56. 'AAAABBBB'
  57. )
  58. );
  59. });
  60. it('can flip both horizontally and vertically at once', async () => {
  61. const src = await jimp.read(
  62. mkJGD(
  63. 'AAAABBBB',
  64. 'AAABAAAB',
  65. 'ABABABAB',
  66. 'CCCCCCCC',
  67. 'CCCCCCCC',
  68. 'CCCCCCCC',
  69. 'AACCCCAA'
  70. )
  71. );
  72. const result = src.flip(true, true);
  73. result
  74. .getJGDSync()
  75. .should.be.sameJGD(
  76. mkJGD(
  77. 'AACCCCAA',
  78. 'CCCCCCCC',
  79. 'CCCCCCCC',
  80. 'CCCCCCCC',
  81. 'BABABABA',
  82. 'BAAABAAA',
  83. 'BBBBAAAA'
  84. )
  85. );
  86. });
  87. });