"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const fromId_1 = require("../spec/fromId");
const _classes_1 = __importDefault(require("../system/_classes"));
const _ids_1 = require("../system/_ids");
const _specs_1 = __importDefault(require("../system/_specs"));
const Identity_1 = __importDefault(require("../system/f/control/Identity"));
const system_1 = require("./util/system");
const now = require('performance-now');
function log(...args) {
    // eslint-disable-next-line no-console
    console.log(...args);
}
let t0;
let t1;
t0 = now();
new Identity_1.default(system_1.system);
t1 = now();
log('new Identity()', (t1 - t0).toFixed(3));
t0 = now();
const Range = (0, fromId_1.bundleFromId)(_ids_1.ID_RANGE, _specs_1.default, _classes_1.default);
t1 = now();
log("const Range = fromId<{ a: number; b: number }, { i: number }>('29e43ad7-be5e-437f-8f0f-2df996c8b89c')", (t1 - t0).toFixed(3));
t0 = now();
const range = new Range(system_1.system);
t1 = now();
log('const range = new Range()', (t1 - t0).toFixed(3));
t0 = now();
for (let i = 0; i < 1000; i++) { }
t1 = now();
const t_for = t1 - t0;
log('for (let i = 0; i < 1000; i++) {}', t_for.toFixed(3));
range.setOutputIgnored('i', true);
t0 = now();
range.push('a', 0);
range.push('b', 1000);
t1 = now();
const t_range = t1 - t0;
log("range.push('a', 0); range.push('b', 1000)", t_range.toFixed(3));
log('range / for', (t_range / t_for).toFixed(1));
//# sourceMappingURL=perf.js.map