Spaces:
Sleeping
Sleeping
| import { expect, test, describe } from "vitest"; | |
| import { getTestImagePath } from "@jimp/test-utils"; | |
| import { createJimp } from "@jimp/core"; | |
| import bmp from "@jimp/js-bmp"; | |
| import png from "@jimp/js-png"; | |
| import jpeg from "@jimp/js-jpeg"; | |
| import tiff from "@jimp/js-tiff"; | |
| import { methods, compareHashes, distance } from "./index.js"; | |
| const Jimp = createJimp({ | |
| formats: [bmp, png, jpeg, tiff], | |
| plugins: [methods], | |
| }); | |
| describe("hash", () => { | |
| test("base 2", async () => { | |
| const image = await Jimp.read(getTestImagePath("dice.png")); | |
| expect(image.hash(2)).toBe( | |
| "1100010000011111011010111110000000010101001011010101101000010010", | |
| ); | |
| }); | |
| test("base 10 (decimal)", async () => { | |
| const image = await Jimp.read(getTestImagePath("cops.jpg")); | |
| expect(image.hash(10)).toBe("13442314021806033441"); | |
| }); | |
| test("base 16 (hex)", async () => { | |
| const image = await Jimp.read(getTestImagePath("rgb.tiff")); | |
| expect(image.hash(16)).toBe("949800481007044c"); | |
| }); | |
| test("base 64", async () => { | |
| const image = await Jimp.read(getTestImagePath("windows95.bmp")); | |
| expect(image.hash(64)).toBe("fb0xj0Mw400"); | |
| }); | |
| test("base 23", async function () { | |
| const image = await Jimp.read(getTestImagePath("panoramic.jpg")); | |
| expect(image.hash(23)).toBe("0m1m2id7l7cl4fb"); | |
| }); | |
| test("base 17", async () => { | |
| const image = await Jimp.read(getTestImagePath("dice.png")); | |
| expect(image.hash(17)).toBe("4ffe16bf68eee351"); | |
| }); | |
| }); | |
| describe("pHash", () => { | |
| test("should calculate the distance using distanceFromHash", async function () { | |
| const image1 = await Jimp.read(getTestImagePath("dice.png")); | |
| const image2 = await Jimp.read(getTestImagePath("mask.png")); | |
| const hash = image1.pHash(); | |
| expect(image2.distanceFromHash(hash)).toBe(distance(image1, image2)); | |
| }); | |
| test("should calculate the distance using compareHashes.", async function () { | |
| const image1 = await Jimp.read(getTestImagePath("dice.png")); | |
| const image2 = await Jimp.read(getTestImagePath("mask.png")); | |
| const hash1 = image1.pHash(); | |
| const hash2 = image2.pHash(); | |
| expect(compareHashes(hash1, hash2)).toBe(distance(image1, image2)); | |
| }); | |
| }); | |