feat: core instruments
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { imageInfo } from './analyze';
|
||||
import { makeImage } from './test-helpers';
|
||||
|
||||
describe('imageInfo', () => {
|
||||
it('находит полупрозрачные пиксели и считает уникальные RGBA-цвета', () => {
|
||||
const info = imageInfo(
|
||||
makeImage(2, 2, [
|
||||
[0, 0, 0, 255],
|
||||
[0, 0, 0, 255],
|
||||
[255, 0, 0, 128],
|
||||
[255, 0, 0, 128]
|
||||
])
|
||||
);
|
||||
expect(info).toEqual({ width: 2, height: 2, hasAlpha: true, colorCount: 2 });
|
||||
});
|
||||
|
||||
it('полностью непрозрачное изображение — hasAlpha false', () => {
|
||||
const info = imageInfo(
|
||||
makeImage(2, 1, [
|
||||
[10, 20, 30, 255],
|
||||
[40, 50, 60, 255]
|
||||
])
|
||||
);
|
||||
expect(info.hasAlpha).toBe(false);
|
||||
expect(info.colorCount).toBe(2);
|
||||
});
|
||||
|
||||
it('разная альфа означает разные цвета', () => {
|
||||
const info = imageInfo(
|
||||
makeImage(2, 1, [
|
||||
[255, 0, 0, 255],
|
||||
[255, 0, 0, 128]
|
||||
])
|
||||
);
|
||||
expect(info.hasAlpha).toBe(true);
|
||||
expect(info.colorCount).toBe(2);
|
||||
});
|
||||
|
||||
it('возвращает корректные размеры неквадрата', () => {
|
||||
const info = imageInfo(makeImage(5, 3, new Array(15).fill([1, 2, 3, 4])));
|
||||
expect(info.width).toBe(5);
|
||||
expect(info.height).toBe(3);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user