@selfage/counter
Version:
A dead simple in-memory Counter class.
20 lines • 2.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.eqCounter = eqCounter;
const test_matcher_1 = require("@selfage/test_matcher");
function eqCounter(expected) {
return (actual) => {
if (expected === undefined) {
(0, test_matcher_1.assertThat)(actual, (0, test_matcher_1.eq)(undefined), `nullity`);
return;
}
(0, test_matcher_1.assertThat)(actual.size, (0, test_matcher_1.eq)(expected.length), `counter size`);
let i = 0;
for (let [key, count] of actual) {
(0, test_matcher_1.assertThat)(key, expected[i][0], `${i}th key`);
(0, test_matcher_1.assertThat)(count, (0, test_matcher_1.eq)(expected[i][1]), `${i}th count`);
i++;
}
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9tYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVzdF9tYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsOEJBZ0JDO0FBbEJELHdEQUFnRTtBQUVoRSxTQUFnQixTQUFTLENBQ3ZCLFFBQXNDO0lBRXRDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNoQixJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQixJQUFBLHlCQUFVLEVBQUMsTUFBTSxFQUFFLElBQUEsaUJBQUUsRUFBQyxTQUFTLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM3QyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUEseUJBQVUsRUFBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUEsaUJBQUUsRUFBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsS0FBSyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLElBQUEseUJBQVUsRUFBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxJQUFBLHlCQUFVLEVBQUMsS0FBSyxFQUFFLElBQUEsaUJBQUUsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEQsQ0FBQyxFQUFFLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvdW50ZXIgfSBmcm9tIFwiLi9jb3VudGVyXCI7XHJcbmltcG9ydCB7IE1hdGNoRm4sIGFzc2VydFRoYXQsIGVxIH0gZnJvbSBcIkBzZWxmYWdlL3Rlc3RfbWF0Y2hlclwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVxQ291bnRlcjxLPihcclxuICBleHBlY3RlZD86IEFycmF5PFtNYXRjaEZuPEs+LCBudW1iZXJdPlxyXG4pOiBNYXRjaEZuPENvdW50ZXI8Sz4+IHtcclxuICByZXR1cm4gKGFjdHVhbCkgPT4ge1xyXG4gICAgaWYgKGV4cGVjdGVkID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgYXNzZXJ0VGhhdChhY3R1YWwsIGVxKHVuZGVmaW5lZCksIGBudWxsaXR5YCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGFzc2VydFRoYXQoYWN0dWFsLnNpemUsIGVxKGV4cGVjdGVkLmxlbmd0aCksIGBjb3VudGVyIHNpemVgKTtcclxuICAgIGxldCBpID0gMDtcclxuICAgIGZvciAobGV0IFtrZXksIGNvdW50XSBvZiBhY3R1YWwpIHtcclxuICAgICAgYXNzZXJ0VGhhdChrZXksIGV4cGVjdGVkW2ldWzBdLCBgJHtpfXRoIGtleWApO1xyXG4gICAgICBhc3NlcnRUaGF0KGNvdW50LCBlcShleHBlY3RlZFtpXVsxXSksIGAke2l9dGggY291bnRgKTtcclxuICAgICAgaSsrO1xyXG4gICAgfVxyXG4gIH07XHJcbn1cclxuIl19