mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 10:30:15 +02:00
55 lines
1.2 KiB
JavaScript
55 lines
1.2 KiB
JavaScript
// Copyright 2013 Lovell Fuller and others.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
'use strict';
|
|
|
|
const assert = require('assert');
|
|
|
|
const sharp = require('../../');
|
|
|
|
const row = [0, 3, 15, 63, 127, 255];
|
|
const input = Buffer.from(Array.from(row, () => row).flat());
|
|
const raw = {
|
|
width: 6,
|
|
height: 6,
|
|
channels: 1
|
|
};
|
|
|
|
describe('Median filter', function () {
|
|
it('default window (3x3)', async () => {
|
|
const data = await sharp(input, { raw })
|
|
.median()
|
|
.toColourspace('b-w')
|
|
.raw()
|
|
.toBuffer();
|
|
|
|
assert.deepStrictEqual(data.subarray(0, 6), Buffer.from(row));
|
|
});
|
|
|
|
it('3x3 window', async () => {
|
|
const data = await sharp(input, { raw })
|
|
.median(3)
|
|
.toColourspace('b-w')
|
|
.raw()
|
|
.toBuffer();
|
|
|
|
assert.deepStrictEqual(data.subarray(0, 6), Buffer.from(row));
|
|
});
|
|
|
|
it('5x5 window', async () => {
|
|
const data = await sharp(input, { raw })
|
|
.median(5)
|
|
.toColourspace('b-w')
|
|
.raw()
|
|
.toBuffer();
|
|
|
|
assert.deepStrictEqual(data.subarray(0, 6), Buffer.from([0, 3, 15, 15, 63, 127]));
|
|
});
|
|
|
|
it('invalid radius', () => {
|
|
assert.throws(() => {
|
|
sharp().median(0.1);
|
|
});
|
|
});
|
|
});
|