UNPKG

@informalsystems/quint

Version:

Core tool for the Quint specification language

31 lines 1.85 kB
"use strict"; 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