emoji-net
Version:
EmojiNet is an image to emoji recognizer based on MobileNet / Google Emoji Scavenger Hunt
102 lines • 4.6 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(require("path"));
const tstest_1 = require("tstest");
const image_data_3x3_1 = require("../tests/fixtures/image-data-3x3");
const canvas_utils_1 = require("./canvas-utils");
tstest_1.test('resizeImage()', async (t) => {
const UINT8_CLAMPED_ARRAY = new Uint8ClampedArray([
0, 0, 0, 255,
0, 0, 0, 255,
100, 100, 100, 255,
100, 100, 100, 255,
]);
const EXPECTED_DATA = new Uint8ClampedArray([
50, 50, 50, 255,
]);
const imageData = canvas_utils_1.createImageData(UINT8_CLAMPED_ARRAY, 2, 2);
const resizedData = await canvas_utils_1.resizeImage(imageData, 1, 1);
t.same(resizedData.data, EXPECTED_DATA, 'should get resized data');
});
tstest_1.test.skip('imageMd5()', async (t) => {
const IMAGE_FILE = path_1.default.join(__dirname, '..', 'tests', 'fixtures', 'aligned-face.png');
const EXPECTED_MD5 = '26f0d74e9599b7dec3fe10e8f12b063e';
const image = await canvas_utils_1.loadImage(IMAGE_FILE);
const md5Text = canvas_utils_1.imageMd5(image);
// console.info(md5Text)
t.equal(md5Text, EXPECTED_MD5, 'should calc md5 right');
});
tstest_1.test('cropImage()', async (t) => {
const imageData = image_data_3x3_1.fixtureImageData3x3();
/**
* 1 2 3
* 4 5 6
* 7 8 9
*/
const EXPECTED_DATA_CROP_0_0_1_1 = [
1, 1, 1, 255,
];
const EXPECTED_DATA_CROP_1_1_1_1 = [
5, 5, 5, 255,
];
const EXPECTED_DATA_CROP_0_0_3_2 = [
1, 1, 1, 255,
2, 2, 2, 255,
3, 3, 3, 255,
4, 4, 4, 255,
5, 5, 5, 255,
6, 6, 6, 255,
];
void t.test('should get right for rect[0, 0, 1, 1]', async (t) => {
const croppedImage = canvas_utils_1.cropImage(imageData, 0, 0, 1, 1);
t.same(croppedImage.data, EXPECTED_DATA_CROP_0_0_1_1, 'should get cropped image data right for [0 0 1 1]');
});
void t.test('should get right for rect[1, 1, 1, 1]', async (t) => {
const croppedImage = canvas_utils_1.cropImage(imageData, 1, 1, 1, 1);
t.same(croppedImage.data, EXPECTED_DATA_CROP_1_1_1_1, 'should get cropped image data right for [1 1 1 1]');
});
void t.test('should get right for rect[0, 0, 3, 2]', async (t) => {
const croppedImage = canvas_utils_1.cropImage(imageData, 0, 0, 3, 2);
t.same(croppedImage.data, EXPECTED_DATA_CROP_0_0_3_2, 'should get cropped image data right for [0 0 3 2]');
});
});
tstest_1.test('Image/Data convert', async (t) => {
const IMAGE_DATA = image_data_3x3_1.fixtureImageData3x3();
// tslint:disable-next-line:max-line-length
const IMAGE = await canvas_utils_1.loadImage('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAABmJLR0QA/wD/AP+gvaeTAAAAHElEQVQImWNkZGT8z8jIyMDIyMjAwszMzICVAwAmtQEw+Y/4igAAAABJRU5ErkJggg==');
void t.test('dataToImage()', async (t) => {
const canvas = canvas_utils_1.createCanvas(3, 3);
const ctx = canvas.getContext('2d');
const image = await canvas_utils_1.dataToImage(IMAGE_DATA);
if (!ctx) {
throw new Error('no ctx');
}
ctx.drawImage(image, 0, 0);
const data = ctx.getImageData(0, 0, 3, 3);
t.same(data, IMAGE_DATA, 'should conver data to image right');
});
void t.test('imageToData', async (t) => {
const data = canvas_utils_1.imageToData(IMAGE);
t.same(data, IMAGE_DATA, 'should conver image to data right');
});
});
tstest_1.test('Data Convertions', async (t) => {
const IMAGE_DATA = image_data_3x3_1.fixtureImageData3x3();
const EXPECTED_DATA_URL = 'data:image/png;base64,'
+ 'iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAABmJLR0QA/wD/AP+gvaeTAA'
+ 'AAHElEQVQImWNkZGT8z8jIyMDIyMjAwszMzICVAwAmtQEw+Y/4igAAAABJRU5ErkJggg==';
const EXPECTED_BUFFER = Buffer.from(EXPECTED_DATA_URL.split(',')[1], 'base64');
void t.test('toDataURL()', async (t) => {
const dataURL = await canvas_utils_1.toDataURL(IMAGE_DATA);
t.equal(dataURL, EXPECTED_DATA_URL, 'should convert image data to data url right');
});
void t.test('toBuffer()', async (t) => {
const buffer = canvas_utils_1.toBuffer(IMAGE_DATA);
t.ok(buffer.equals(EXPECTED_BUFFER), 'should convert image data to buffer right');
});
});
//# sourceMappingURL=canvas-utils.spec.js.map