@informalsystems/quint
Version:
Core tool for the Quint specification language
31 lines • 1.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const mocha_1 = require("mocha");
const chai_1 = require("chai");
const ir_1 = require("../builders/ir");
const IRprinting_1 = require("../../src/ir/IRprinting");
const namespacer_1 = require("../../src/ir/namespacer");
const base_1 = require("../../src/names/base");
(0, mocha_1.describe)('addNamespaceToDefinition', () => {
(0, mocha_1.it)('adds namespace to variables', () => {
const def = (0, ir_1.buildDef)('var x: int');
const result = (0, namespacer_1.addNamespaceToDefinition)(def, 'M', new Set());
chai_1.assert.deepEqual((0, IRprinting_1.definitionToString)(result), 'var M::x: int');
});
(0, mocha_1.it)('adds namespace to constants and type aliases', () => {
const def = (0, ir_1.buildDef)('const N: MY_TYPE');
const result = (0, namespacer_1.addNamespaceToDefinition)(def, 'M', new Set());
chai_1.assert.deepEqual((0, IRprinting_1.definitionToString)(result), 'const M::N: M::MY_TYPE');
});
(0, mocha_1.it)('adds namespace to type defs', () => {
const def = (0, ir_1.buildDef)('type MY_TYPE = int');
const result = (0, namespacer_1.addNamespaceToDefinition)(def, 'M', new Set());
chai_1.assert.deepEqual((0, IRprinting_1.definitionToString)(result), 'type M::MY_TYPE = int');
});
(0, mocha_1.it)('adds namespace to operators, ignoring builtins', () => {
const def = (0, ir_1.buildDef)('val a = pure val b = Set(1, 2) { b.map(x => x) }');
const result = (0, namespacer_1.addNamespaceToDefinition)(def, 'M', new Set(base_1.builtinNames));
chai_1.assert.deepEqual((0, IRprinting_1.definitionToString)(result), 'val M::a = pure val M::b = Set(1, 2) { map(M::b, ((M::x) => M::x)) }');
});
});
//# sourceMappingURL=namespacer.test.js.map