peaks-similarity
Version:
Peaks similarity - calculate the similarity between 2 ordered arrays of peaks
215 lines (201 loc) • 4.43 kB
JavaScript
import { test, expect } from 'vitest';
import { Comparator } from '..';
test('We check common array similarity 1', () => {
const comparator = new Comparator({
common: true,
widthBottom: 0.2,
widthTop: 0.1,
});
comparator.setPeaks1([
[],
[],
]);
comparator.setPeaks2([
[],
[],
]);
const result = comparator.getSimilarity();
expect(result.extract1).toStrictEqual([[1], [1]]);
expect(result.extract2).toStrictEqual([[1], [1]]);
expect(result.similarity).toBe(1);
});
test('We check common array similarity 2', () => {
const comparator = new Comparator({
common: true,
widthBottom: 0.2,
widthTop: 0.1,
});
comparator.setPeaks1([
[],
[],
[],
]);
comparator.setPeaks2([
[],
[],
[],
]);
const result = comparator.getSimilarity();
expect(result.extract1).toStrictEqual([
[],
[],
]);
expect(result.extract2).toStrictEqual([
[],
[],
]);
expect(result.similarity).toBe(1);
});
test('We check common array similarity 3 (widthTop=0)', () => {
const comparator = new Comparator({
common: true,
widthBottom: 0.2,
widthTop: 0,
});
comparator.setPeaks1([
[],
[],
[],
]);
comparator.setPeaks2([
[],
[],
[],
]);
const result = comparator.getSimilarity();
expect(result.extract1).toStrictEqual([
[],
[],
]);
expect(result.extract2).toStrictEqual([
[],
[],
]);
expect(result.similarity).toBeCloseTo(0.75, 3);
});
test('We check common array similarity 4 (check the setFromTo)', () => {
const comparator = new Comparator({
common: true,
widthBottom: 0.2,
widthTop: 0,
});
comparator.setPeaks1([
[],
[],
[],
]);
comparator.setPeaks2([
[],
[],
[],
]);
comparator.setFromTo(0.5, 1.5);
const result = comparator.getSimilarity();
expect(result.extract1).toStrictEqual([[1], [1]]);
expect(result.extract2).toStrictEqual([[1], [1]]);
expect(result.similarity).toBe(1);
});
test('We check common array with nothing common based on first', () => {
const comparator = new Comparator({
common: 'first',
widthBottom: 0.2,
widthTop: 0,
});
comparator.setPeaks1([
[],
[],
[],
[],
]);
comparator.setPeaks2([
[],
[],
[],
[],
]);
const result = comparator.getSimilarity();
expect(result.extract1).toStrictEqual([
[],
[],
]);
expect(result.extract2).toStrictEqual([[], []]);
expect(result.similarity).toBe(0);
});
test('We check common array with nothing common based on second', () => {
const comparator = new Comparator({
common: 'second',
widthBottom: 0.2,
widthTop: 0,
});
comparator.setPeaks1([
[],
[],
[],
[],
]);
comparator.setPeaks2([
[],
[],
[],
[],
]);
const result = comparator.getSimilarity();
expect(result.extract1).toStrictEqual([[], []]);
expect(result.extract2).toStrictEqual([
[],
[],
]);
expect(result.similarity).toBe(0);
});
test('We check common array with nothing common based on both', () => {
const comparator = new Comparator({
common: 'both',
widthBottom: 0.2,
widthTop: 0,
});
comparator.setPeaks1([
[],
[],
[],
[],
]);
comparator.setPeaks2([
[],
[],
[],
[],
]);
const result = comparator.getSimilarity();
expect(result.extract1).toStrictEqual([[], []]);
expect(result.extract2).toStrictEqual([[], []]);
expect(result.similarity).toBe(0);
});
test('We check common array with nothing common based on all', () => {
const comparator = new Comparator({
common: 'all',
widthBottom: 0.2,
widthTop: 0,
});
comparator.setPeaks1([
[],
[],
[],
[],
]);
comparator.setPeaks2([
[],
[],
[],
[],
]);
const result = comparator.getSimilarity();
expect(result.extract1).toStrictEqual([
[],
[],
]);
expect(result.extract2).toStrictEqual([
[],
[],
]);
expect(result.similarity).toBe(0);
});