D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
etb1lp46s9ed
/
washeet.softurecs.com
/
node_modules
/
@jimp
/
utils
/
src
/
Filename :
index.test.ts
back
Copy
import { expect, test, describe } from "vitest"; import { colorDiff, scan } from "./index.js"; import { JimpClass } from "@jimp/types"; // Convert [0..1] float to a percent value with only one decimal. const pct = (n: number) => ((n * 1000) << 0) / 10; describe("colorDiff", () => { test("totally opaque (no alpha defined)", () => { expect(colorDiff({ r: 255, g: 0, b: 0 }, { r: 255, g: 0, b: 0 })).toEqual( 0 ); expect( pct(colorDiff({ r: 255, g: 0, b: 0 }, { r: 0, g: 0, b: 0 })) ).toEqual(33.3); expect( pct(colorDiff({ r: 255, g: 0, b: 0 }, { r: 0, g: 255, b: 0 })) ).toEqual(66.6); expect(colorDiff({ r: 255, g: 0, b: 0 }, { r: 0, g: 255, b: 255 })).toEqual( 1 ); expect(colorDiff({ r: 0, g: 0, b: 0 }, { r: 255, g: 255, b: 255 })).toEqual( 1 ); }); test("totally transparent", () => { expect( colorDiff({ r: 255, g: 0, b: 0, a: 0 }, { r: 255, g: 0, b: 0, a: 0 }) ).toEqual(0); expect( colorDiff({ r: 0, g: 0, b: 0, a: 0 }, { r: 255, g: 255, b: 255, a: 0 }) ).toEqual(1); }); test("different alpha", () => { expect( pct( colorDiff( { r: 255, g: 0, b: 0, a: 100 }, { r: 255, g: 0, b: 0, a: 150 } ) ) ).toEqual(3.8); expect( colorDiff({ r: 0, g: 0, b: 0, a: 0 }, { r: 255, g: 255, b: 255, a: 255 }) ).toEqual(1); }); }); describe("scan", () => { class TestImage { public bitmap = { height: 3, width: 3, data: Buffer.from([ 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, ]), }; } const img = new TestImage() as JimpClass; test("scan", () => { let count = 0; scan(img, function (_, __, idx) { count++; expect(img.bitmap.data[idx]).toBe(this.bitmap.data[idx]); }); expect(count).toBe(img.bitmap.width * img.bitmap.height); }); });