Spaces:
Sleeping
Sleeping
| import { expect, test, describe } from "vitest"; | |
| import { makeTestImage } from "@jimp/test-utils"; | |
| import { createJimp } from "@jimp/core"; | |
| import { diff } from "./index.js"; | |
| const Jimp = createJimp(); | |
| describe("Compare image difference", () => { | |
| const imgs = [ | |
| Jimp.fromBitmap(makeTestImage("2222", "4444", "6666", "8888")), | |
| Jimp.fromBitmap(makeTestImage("2468", "2468", "2468", "2468")), | |
| Jimp.fromBitmap(makeTestImage("2212", "4434", "6656", "8878")), | |
| Jimp.fromBitmap(makeTestImage("2232", "4454", "6676", "8898")), | |
| Jimp.fromBitmap(makeTestImage("22322", "44544", "66766", "88988")), | |
| ] as const; | |
| test("images 0 and 1", () => { | |
| const result = diff(imgs[0], imgs[1]); | |
| expect(result.percent).toBe(0.75); | |
| expect(result.image).toMatchSnapshot(); | |
| }); | |
| test("images 0 and 2", () => { | |
| const result = diff(imgs[0], imgs[2]); | |
| expect(result.percent).toBe(0); | |
| expect(result.image).toMatchSnapshot(); | |
| }); | |
| test("images 0 and 3", () => { | |
| const result = diff(imgs[0], imgs[3]); | |
| expect(result.percent).toBe(0); | |
| expect(result.image).toMatchSnapshot(); | |
| }); | |
| test("allows to set a different threshold", () => { | |
| expect(diff(imgs[0], imgs[3], 0.1).percent).toBe(0); | |
| expect(diff(imgs[0], imgs[3], 0).percent).toBe(0.25); | |
| }); | |
| test("throws an error if threshold is invalid", () => { | |
| expect(() => diff(imgs[0], imgs[3], -1)).toThrow( | |
| "threshold must be a number between 0 and 1", | |
| ); | |
| }); | |
| test("should resize image before diffing", () => { | |
| expect(diff(imgs[3], imgs[4]).percent).toStrictEqual( | |
| diff(imgs[4], imgs[3]).percent, | |
| ); | |
| }); | |
| }); | |