mirror of
https://github.com/lovell/sharp.git
synced 2025-12-06 12:01:41 +01:00
Uses the recommended rules apart from complexity/useArrowFunction, which would affect about 1700 lines of code with little benefit right now. This is something that can be addressed over time.
141 lines
4.8 KiB
JavaScript
141 lines
4.8 KiB
JavaScript
// Copyright 2013 Lovell Fuller and others.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
const assert = require('node:assert');
|
|
|
|
const sharp = require('../../lib');
|
|
const fixtures = require('../fixtures');
|
|
|
|
describe('Clahe', function () {
|
|
it('width 5 width 5 maxSlope 0', function (done) {
|
|
sharp(fixtures.inputJpgClahe)
|
|
.clahe({ width: 5, height: 5, maxSlope: 0 })
|
|
.toBuffer(function (err, data, info) {
|
|
if (err) throw err;
|
|
assert.strictEqual('jpeg', info.format);
|
|
fixtures.assertSimilar(fixtures.expected('clahe-5-5-0.jpg'), data, { threshold: 10 }, done);
|
|
});
|
|
});
|
|
|
|
it('width 5 width 5 maxSlope 5', function (done) {
|
|
sharp(fixtures.inputJpgClahe)
|
|
.clahe({ width: 5, height: 5, maxSlope: 5 })
|
|
.toBuffer(function (err, data, info) {
|
|
if (err) throw err;
|
|
assert.strictEqual('jpeg', info.format);
|
|
fixtures.assertSimilar(fixtures.expected('clahe-5-5-5.jpg'), data, done);
|
|
});
|
|
});
|
|
|
|
it('width 11 width 25 maxSlope 14', function (done) {
|
|
sharp(fixtures.inputJpgClahe)
|
|
.clahe({ width: 11, height: 25, maxSlope: 14 })
|
|
.toBuffer(function (err, data, info) {
|
|
if (err) throw err;
|
|
assert.strictEqual('jpeg', info.format);
|
|
fixtures.assertSimilar(fixtures.expected('clahe-11-25-14.jpg'), data, done);
|
|
});
|
|
});
|
|
|
|
it('width 50 width 50 maxSlope 0', function (done) {
|
|
sharp(fixtures.inputJpgClahe)
|
|
.clahe({ width: 50, height: 50, maxSlope: 0 })
|
|
.toBuffer(function (err, data, info) {
|
|
if (err) throw err;
|
|
assert.strictEqual('jpeg', info.format);
|
|
fixtures.assertSimilar(fixtures.expected('clahe-50-50-0.jpg'), data, done);
|
|
});
|
|
});
|
|
|
|
it('width 50 width 50 maxSlope 14', function (done) {
|
|
sharp(fixtures.inputJpgClahe)
|
|
.clahe({ width: 50, height: 50, maxSlope: 14 })
|
|
.toBuffer(function (err, data, info) {
|
|
if (err) throw err;
|
|
assert.strictEqual('jpeg', info.format);
|
|
fixtures.assertSimilar(fixtures.expected('clahe-50-50-14.jpg'), data, done);
|
|
});
|
|
});
|
|
|
|
it('width 100 width 50 maxSlope 3', function (done) {
|
|
sharp(fixtures.inputJpgClahe)
|
|
.clahe({ width: 100, height: 50, maxSlope: 3 })
|
|
.toBuffer(function (err, data, info) {
|
|
if (err) throw err;
|
|
assert.strictEqual('jpeg', info.format);
|
|
fixtures.assertSimilar(fixtures.expected('clahe-100-50-3.jpg'), data, done);
|
|
});
|
|
});
|
|
|
|
it('width 100 width 100 maxSlope 0', function (done) {
|
|
sharp(fixtures.inputJpgClahe)
|
|
.clahe({ width: 100, height: 100, maxSlope: 0 })
|
|
.toBuffer(function (err, data, info) {
|
|
if (err) throw err;
|
|
assert.strictEqual('jpeg', info.format);
|
|
fixtures.assertSimilar(fixtures.expected('clahe-100-100-0.jpg'), data, done);
|
|
});
|
|
});
|
|
|
|
it('invalid maxSlope', function () {
|
|
assert.throws(function () {
|
|
sharp(fixtures.inputJpgClahe).clahe({ width: 100, height: 100, maxSlope: -5 });
|
|
});
|
|
assert.throws(function () {
|
|
sharp(fixtures.inputJpgClahe).clahe({ width: 100, height: 100, maxSlope: 110 });
|
|
});
|
|
assert.throws(function () {
|
|
sharp(fixtures.inputJpgClahe).clahe({ width: 100, height: 100, maxSlope: 5.5 });
|
|
});
|
|
assert.throws(function () {
|
|
sharp(fixtures.inputJpgClahe).clahe({ width: 100, height: 100, maxSlope: 'a string' });
|
|
});
|
|
});
|
|
|
|
it('invalid width', function () {
|
|
assert.throws(function () {
|
|
sharp(fixtures.inputJpgClahe).clahe({ width: 100.5, height: 100 });
|
|
});
|
|
assert.throws(function () {
|
|
sharp(fixtures.inputJpgClahe).clahe({ width: -5, height: 100 });
|
|
});
|
|
assert.throws(function () {
|
|
sharp(fixtures.inputJpgClahe).clahe({ width: true, height: 100 });
|
|
});
|
|
assert.throws(function () {
|
|
sharp(fixtures.inputJpgClahe).clahe({ width: 'string test', height: 100 });
|
|
});
|
|
});
|
|
|
|
it('invalid height', function () {
|
|
assert.throws(function () {
|
|
sharp(fixtures.inputJpgClahe).clahe({ width: 100, height: 100.5 });
|
|
});
|
|
assert.throws(function () {
|
|
sharp(fixtures.inputJpgClahe).clahe({ width: 100, height: -5 });
|
|
});
|
|
assert.throws(function () {
|
|
sharp(fixtures.inputJpgClahe).clahe({ width: 100, height: true });
|
|
});
|
|
assert.throws(function () {
|
|
sharp(fixtures.inputJpgClahe).clahe({ width: 100, height: 'string test' });
|
|
});
|
|
});
|
|
|
|
it('invalid options object', function () {
|
|
assert.throws(function () {
|
|
sharp(fixtures.inputJpgClahe).clahe(100, 100, 5);
|
|
});
|
|
});
|
|
|
|
it('uses default maxSlope of 3', function (done) {
|
|
sharp(fixtures.inputJpgClahe)
|
|
.clahe({ width: 100, height: 50 })
|
|
.toBuffer(function (err, data, info) {
|
|
if (err) throw err;
|
|
assert.strictEqual('jpeg', info.format);
|
|
fixtures.assertSimilar(fixtures.expected('clahe-100-50-3.jpg'), data, done);
|
|
});
|
|
});
|
|
});
|