UNPKG

cluster-id

Version:

Database cluster friendly object id with great query isolation.

48 lines (41 loc) 1.22 kB
/* global test, expect */ var ref = require('./base64'); var encode = ref.encode; var decode = ref.decode; var BASE = ref.BASE; test('numbers in range 0..63 to base64 string of length 1', function () { expect(encode(0)).toBe('-') expect(encode(63)).toBe('z') for (var num = 0; num < BASE; num++) { expect(encode(num)).toMatch(/^[\w-]$/) } }) test('ensure base64 symbols are in char ascending order', function () { for (var num = 0, prev = (void 0); num < BASE; num++) { var symbol = encode(num) if (prev) { expect(symbol > prev).toBe(true) } prev = symbol } }) test('encode and decode zero', function () { expect(encode(0)).toBe('-') expect(decode('-')).toBe(0) }) test('encode and decode 1000', function () { expect(encode(1000)).toBe('Ec') expect(decode('Ec')).toBe(1000) }) test('encode and decode Number.MAX_SAFE_INTEGER', function () { expect(encode(Number.MAX_SAFE_INTEGER)).toBe('Uzzzzzzzz') expect(decode('Uzzzzzzzz')).toBe(Number.MAX_SAFE_INTEGER) }) test('encode to and decode Fibonacci numbers', function () { var a = 1 var b = 1 while (b < Number.MAX_SAFE_INTEGER) { expect(decode(encode(b))).toBe(b) var temp = a + b a = b b = temp } })