mirror of
https://github.com/jzillmann/pdf-to-markdown.git
synced 2025-02-18 02:40:49 +01:00
131 lines
3.7 KiB
TypeScript
131 lines
3.7 KiB
TypeScript
import PageFactorFinder from 'src/support/PageFactorFinder';
|
|
|
|
interface Container {
|
|
index: number;
|
|
numbers: number[];
|
|
}
|
|
|
|
const extractor = (container: Container) => container;
|
|
|
|
test('distraction free - straight', () => {
|
|
const finder = new PageFactorFinder();
|
|
const containers: Container[] = [
|
|
{ index: 0, numbers: [1] },
|
|
{ index: 1, numbers: [2] },
|
|
{ index: 2, numbers: [3] },
|
|
{ index: 3, numbers: [4] },
|
|
{ index: 4, numbers: [5] },
|
|
{ index: 5, numbers: [6] },
|
|
];
|
|
expect(finder.find(containers, extractor)).toEqual(1);
|
|
});
|
|
|
|
test('distraction free - accept gap in numbers', () => {
|
|
const finder = new PageFactorFinder();
|
|
const containers: Container[] = [
|
|
{ index: 0, numbers: [1] },
|
|
{ index: 1, numbers: [2] },
|
|
{ index: 2, numbers: [3] },
|
|
{ index: 3, numbers: [4] },
|
|
{ index: 4, numbers: [] },
|
|
{ index: 5, numbers: [6] },
|
|
];
|
|
|
|
expect(finder.find(containers, extractor)).toEqual(1);
|
|
});
|
|
|
|
test('distraction free - accept gap in pages', () => {
|
|
const finder = new PageFactorFinder();
|
|
const containers: Container[] = [
|
|
{ index: 0, numbers: [1] },
|
|
{ index: 1, numbers: [2] },
|
|
{ index: 2, numbers: [3] },
|
|
{ index: 3, numbers: [4] },
|
|
{ index: 5, numbers: [6] },
|
|
];
|
|
|
|
expect(finder.find(containers, extractor)).toEqual(1);
|
|
});
|
|
|
|
test('distraction free - defered', () => {
|
|
const finder = new PageFactorFinder();
|
|
const containers: Container[] = [
|
|
{ index: 0, numbers: [2006] },
|
|
{ index: 1, numbers: [] },
|
|
{ index: 2, numbers: [1, 1] },
|
|
{ index: 3, numbers: [2] },
|
|
{ index: 4, numbers: [3] },
|
|
{ index: 5, numbers: [4] },
|
|
{ index: 6, numbers: [5] },
|
|
{ index: 7, numbers: [6] },
|
|
{ index: 8, numbers: [7] },
|
|
{ index: 9, numbers: [8] },
|
|
];
|
|
|
|
expect(finder.find(containers, extractor)).toEqual(-1);
|
|
});
|
|
|
|
test('distraction loaden - straight', () => {
|
|
const finder = new PageFactorFinder();
|
|
const containers: Container[] = [
|
|
{ index: 0, numbers: [1, -3453] },
|
|
{ index: 1, numbers: [2, 355] },
|
|
{ index: 2, numbers: [3, 950, 4] },
|
|
{ index: 3, numbers: [4, 534, 5] },
|
|
{ index: 4, numbers: [5, 6] },
|
|
{ index: 5, numbers: [6, 35335] },
|
|
];
|
|
|
|
expect(finder.find(containers, extractor)).toEqual(1);
|
|
});
|
|
|
|
test('distraction loaden - defered', () => {
|
|
const finder = new PageFactorFinder();
|
|
const containers: Container[] = [
|
|
{ index: 0, numbers: [2006] },
|
|
{ index: 1, numbers: [5] },
|
|
{ index: 2, numbers: [1, 7678] },
|
|
{ index: 3, numbers: [2, 2] },
|
|
{ index: 4, numbers: [3, 4] },
|
|
{ index: 5, numbers: [4, 5, 65, 8] },
|
|
{ index: 6, numbers: [5, 9] },
|
|
{ index: 7, numbers: [6] },
|
|
{ index: 8, numbers: [27, 7, 19] },
|
|
{ index: 9, numbers: [-4, 2016, 8] },
|
|
];
|
|
|
|
expect(finder.find(containers, extractor)).toEqual(-1);
|
|
});
|
|
|
|
test('many numbers but no meaningful match', () => {
|
|
const finder = new PageFactorFinder();
|
|
const containers: Container[] = [
|
|
{ index: 0, numbers: [3] },
|
|
{ index: 1, numbers: [7] },
|
|
{ index: 2, numbers: [4] },
|
|
{ index: 3, numbers: [6, 5] },
|
|
{ index: 4, numbers: [13, 9] },
|
|
{ index: 5, numbers: [8, 7] },
|
|
{ index: 6, numbers: [11] },
|
|
{ index: 7, numbers: [1] },
|
|
];
|
|
|
|
expect(finder.find(containers, extractor)).toBeUndefined();
|
|
});
|
|
|
|
test('many numbers but no match', () => {
|
|
const finder = new PageFactorFinder();
|
|
const containers: Container[] = [
|
|
{ index: 0, numbers: [22] },
|
|
{ index: 1, numbers: [7] },
|
|
{ index: 2, numbers: [14] },
|
|
{ index: 3, numbers: [1, 5] },
|
|
{ index: 4, numbers: [13, 9] },
|
|
{ index: 5, numbers: [8, 787] },
|
|
{ index: 6, numbers: [12] },
|
|
{ index: 7, numbers: [1] },
|
|
];
|
|
|
|
expect(finder.find(containers, extractor)).toBeUndefined();
|
|
});
|