@digital-blueprint/greenlight-app
Version:
[GitHub Repository](https://github.com/digital-blueprint/greenlight-app) | [npmjs package](https://www.npmjs.com/package/@digital-blueprint/greenlight-app) | [Unpkg CDN](https://unpkg.com/browse/@digital-blueprint/greenlight-app/) | [Greenlight Bundle](ht
185 lines (177 loc) • 6.61 kB
JavaScript
import {assert} from 'chai';
import {compareBirthDateStrings, checkPerson} from '../src/hcertmatch';
suite('birthdate', () => {
test('basic', () => {
// not matching
assert.isFalse(compareBirthDateStrings('1979', '1980'));
assert.isFalse(compareBirthDateStrings('1979-01', '1979-02'));
assert.isFalse(compareBirthDateStrings('1979-01-02', '1979-01-03'));
assert.isFalse(compareBirthDateStrings('-', '1980'));
assert.isFalse(compareBirthDateStrings(' ', '1980'));
assert.isFalse(compareBirthDateStrings('1-2-3-4', '1-2-3-4'));
// matching, to some extend
assert.equal(compareBirthDateStrings('', '1980-01-01'), 0);
assert.equal(compareBirthDateStrings('1979-01', '1979-01'), 2);
assert.equal(compareBirthDateStrings('1979-01-02', '1979-01-02'), 3);
assert.equal(compareBirthDateStrings('1979-01', '1979-01'), 2);
assert.equal(compareBirthDateStrings('1979', '1979'), 1);
assert.equal(compareBirthDateStrings('1979', ''), 0);
assert.equal(compareBirthDateStrings('', ''), 0);
});
});
suite('matchPerson', () => {
test('basic', () => {
// Clearly matching
assert.isTrue(checkPerson('Erika', 'Musterfrau', '', '', '', 'Erika', 'Musterfrau', ''));
assert.isTrue(
checkPerson('Erika', 'Musterfrau', '', '', '2000', 'Erika', 'Musterfrau', '')
);
assert.isTrue(
checkPerson('Erika', 'Musterfrau', '', '', '2000', 'Erika', 'Musterfrau', '2000-01')
);
assert.isTrue(
checkPerson('Erika', 'Musterfrau', '', '', '2000-01', 'Erika', 'Musterfrau', '2000-01')
);
assert.isTrue(
checkPerson(
'Erika',
'Musterfrau',
'',
'',
'2000-01-02',
'Erika',
'Musterfrau',
'2000-01'
)
);
assert.isTrue(
checkPerson(
'Erika',
'Musterfrau',
'',
'',
'2000-01-02',
'Erika',
'Musterfrau',
'2000-01-02'
)
);
assert.isTrue(
checkPerson(
'Isolde Erika',
'Musterfrau-Gößinger Müller',
'',
'',
'',
'Isolde Erika',
'Musterfrau-Gößinger Müller',
''
)
);
assert.isTrue(
checkPerson(
'',
'',
'ISOLDE<ERIKA',
'MUSTERFRAU<GOESSINGER<MUELLER',
'',
'Isolde Erika',
'Musterfrau-Gößinger Müller',
''
)
);
assert.isTrue(
checkPerson(
'ابو بكر محمد',
'بن زكريا الرازي',
'ABU<BAKR<MOHAMMED',
'IBN<ZAKARIA<AL<RAZI',
'',
'Abu-Bakr Mohammed',
'Ibn Zakaria al-Razi',
''
)
);
assert.isTrue(
checkPerson(
'ابو بكر محمد',
'بن زكريا الرازي',
'ABU<BAKR<MOHAMMED',
'IBN<ZAKARIA<AL<RAZI',
'',
'Abu Bakr Mohammed',
'Ibn Zakaria al Razi',
''
)
);
// Clearly not matching
assert.isNotTrue(checkPerson('Erika', 'Musterfrau', '', '', '', 'Max', 'Mustermann', ''));
assert.isNotTrue(
checkPerson(
'Erika',
'Musterfrau',
'',
'',
'2000-01-02',
'Erika',
'Musterfrau',
'2000-01-03'
)
);
assert.isNotTrue(
checkPerson('Erika', 'Musterfrau', '', '', '2000', 'Erika', 'Musterfrau', '2001')
);
assert.isNotTrue(
checkPerson('Erika', 'Musterfrau', '', '', '2000-01', 'Erika', 'Musterfrau', '2000-02')
);
// Matching, but debatable
assert.isTrue(
checkPerson(
'Erika Anna',
'Musterfrau',
'',
'',
'2000',
'Erika',
'Musterfrau',
'2000-01-02'
)
);
assert.isTrue(
checkPerson('Christoph', 'Musterfrau', '', '', '', 'Christof', 'Musterfrau', '')
);
assert.isTrue(checkPerson('ERIKA', 'MUSTERFRAU', '', '', '', 'Erika', 'Musterfrau', ''));
assert.isTrue(checkPerson('Robert', 'Bárány', '', '', '', 'ROBERT', 'BARANY', ''));
assert.isTrue(checkPerson('Erwin', 'Schrödinger', '', '', '', 'Erwin', 'Schroedinger', ''));
assert.isTrue(checkPerson('David', 'Háček', '', '', '', 'David', 'Hacek', ''));
assert.isTrue(checkPerson('Çelik', 'Yıldırım', '', '', '', 'Celik', 'Yildirim', ''));
assert.isTrue(checkPerson('İsmail', 'Avcı', '', '', '', 'Ismail', 'Avci', ''));
assert.isTrue(
checkPerson(
'Christian',
'Musterfrau',
'',
'',
'2000-01-01',
'Christof',
'Musterfrau',
'2000-01-01'
)
);
assert.isTrue(
checkPerson('Christine', 'Musterfrau', '', '', '', 'Christina', 'Musterfrau', '')
);
assert.isTrue(checkPerson('Foo Bar', 'Quux Buzz', '', '', '', 'Foo', 'Quux Buzz', ''));
assert.isTrue(checkPerson('Foo Bar', 'Quux Buzz', '', '', '', 'Bar', 'Quux Buzz', ''));
assert.isTrue(checkPerson('', '', '', '', '', '', '', ''));
assert.isTrue(checkPerson(' ', ' ', '', '', '', ' ', ' ', ''));
assert.isTrue(checkPerson('', 'Musterfrau', '', '', '', 'Christof', 'Musterfrau', ''));
assert.isTrue(checkPerson('Franz', 'Mueller', '', '', '2000', 'Franz', 'Müller', '2000'));
assert.isTrue(checkPerson('Franz', 'Strasser', '', '', '', 'Franz', 'Straßer', ''));
// Not matching, but detbatable
assert.isNotTrue(
checkPerson('Christian', 'Musterfrau', '', '', '', 'Christof', 'Musterfrau', '')
);
assert.isNotTrue(checkPerson('Franz', 'Meier Müller', '', '', '', 'Franz', 'Müller', ''));
});
});