6bithash
Version:
**Hash function package** for hashing id's ( in positive integer ) to an alphanumeric short string using a 6 bit map ( User can also prvide thier own Custom 6 bit map )
30 lines (27 loc) • 1.55 kB
text/typescript
import { generateHash } from '../src/index';
const myMap = {
'000000': 'j', '000001': 'k', '000010': 'l', '000011': 'm', '000100': 'N', '000101': 'O',
'000110': 'j', '000111': 'k', '001000': 'l', '001001': 'm', '001010': 'N', '001011': 'O',
'001100': 'j', '001101': 'k', '001110': 'l', '001111': 'm', '010000': 'N', '010001': 'O',
'010010': 'j', '010011': 'k', '010100': 'l', '010101': 'm', '010110': 'N', '010111': 'O',
'011000': 'j', '011001': 'k', '011010': 'l', '011011': 'm', '011100': 'N', '011101': 'O',
'011110': 'j', '011111': 'k', '100000': 'l', '100001': 'm', '100010': 'N', '100011': 'O',
'100100': 'j', '100101': 'k', '100110': 'l', '100111': 'm', '101000': 'N', '101001': 'O',
'101010': 'j', '101011': 'k', '101100': 'l', '101101': 'm', '101110': 'N', '101111': 'O',
'110000': 'j', '110001': 'k', '110010': 'l', '110011': 'm', '110100': 'N', '110101': 'O',
'110110': 'j', '110111': 'k', '111000': 'l', '111001': 'm', '111010': 'N', '111011': 'O',
'111100': 'j', '111101': 'k', '111110': 'l', '111111': 'm'
};
describe('generateHash', () => {
it('should generate a correct hash for a valid dbid', () => {
const hash = generateHash(79);
expect(hash).toBe('bp');
});
it('should throw an error for negative numbers', () => {
expect(() => generateHash(-1)).toThrow('Input must be a non-negative integer.');
});
it('should genrate a correct hash as per the user map', () => {
const hash = generateHash(959492,{myMap});
expect(hash).toBe('mjNN');
});
});