Skip to content

Commit

Permalink
test: add old test case
Browse files Browse the repository at this point in the history
  • Loading branch information
josoriom committed Nov 22, 2023
1 parent 1052359 commit cf73f44
Showing 1 changed file with 43 additions and 12 deletions.
55 changes: 43 additions & 12 deletions src/x/__tests__/xHilbertTransform.test.ts
Original file line number Diff line number Diff line change
@@ -1,30 +1,61 @@
import { xHilbertTransform } from '../../index';

describe('test hilbert transform', () => {
const length = 2 ** 6;
describe('test discrete hilbert transform', () => {
const length = 50;
it('test hilbert transform of cos -> sin function', () => {
const cos = new Array(length)
.fill(0)
.map((_, i) => Math.cos((i * Math.PI) / 32));
.map((_, i) => Math.cos((i * Math.PI) / 10));
const sin = new Array(length)
.fill(0)
.map((_, i) => Math.sin((i * Math.PI) / 32));
const t = xHilbertTransform(cos);
const result = Array.from(t.im);
for (let i = 0; i < 64; i++) {
expect(result[i]).toBeCloseTo(sin[i], 6);
.map((_, i) => Math.sin((i * Math.PI) / 10));
const trs = xHilbertTransform(cos);
const result = Array.from(trs);
// Excluding some points due to the edge effects
for (let i = 5; i < 45; i++) {
expect(result[i]).toBeCloseTo(sin[i], 1);
}
});

it('test hilbert transform of sin -> -cos function', () => {
const minusCos = new Array(length)
.fill(0)
.map((_, i) => -Math.cos((i * Math.PI) / 32));
.map((_, i) => -Math.cos((i * Math.PI) / 10));
const sin = new Array(length)
.fill(0)
.map((_, i) => Math.sin((i * Math.PI) / 32));
const t = xHilbertTransform(sin);
const result = Array.from(t.im);
.map((_, i) => Math.sin((i * Math.PI) / 10));
const trs = xHilbertTransform(sin);
const result = Array.from(trs);
// Excluding some points due to the edge effects
for (let i = 15; i < 35; i++) {
expect(result[i]).toBeCloseTo(minusCos[i], 1);
}
});
});

describe('test fast hilbert transform', () => {
const length = 2 ** 6;
it('test hilbert transform of cos -> sin function', () => {
const cos = new Float64Array(length).map((_, i) =>
Math.cos((i * Math.PI) / 32),
);
const sin = new Float64Array(length).map((_, i) =>
Math.sin((i * Math.PI) / 32),
);
const result = xHilbertTransform(cos);
for (let i = 0; i < 64; i++) {
expect(result[i]).toBeCloseTo(sin[i], 6);
}
});

it('test hilbert transform of sin -> -cos function', () => {
const minusCos = new Float64Array(length).map(
(_, i) => -Math.cos((i * Math.PI) / 32),
);
const sin = new Float64Array(length).map((_, i) =>
Math.sin((i * Math.PI) / 32),
);
const result = xHilbertTransform(sin);
for (let i = 0; i < 64; i++) {
expect(result[i]).toBeCloseTo(minusCos[i], 6);
}
Expand Down

0 comments on commit cf73f44

Please sign in to comment.