@informalsystems/quint
Version:
Core tool for the Quint specification language
31 lines • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const mocha_1 = require("mocha");
const chai_1 = require("chai");
const builtinSignatures_1 = require("../../src/types/builtinSignatures");
const parser_1 = require("../../src/types/parser");
const printing_1 = require("../../src/types/printing");
(0, mocha_1.describe)('getSignatures', () => {
const signatures = (0, builtinSignatures_1.getSignatures)();
(0, mocha_1.it)('contains quantified signatures for List', () => {
const listSignature = signatures.get('List');
const expectedSignature = {
type: (0, parser_1.parseTypeOrThrow)('(a, a, a) => List[a]'),
typeVariables: new Set(['a']),
rowVariables: new Set([]),
};
const result = listSignature(3);
chai_1.assert.deepEqual(result, expectedSignature, `expected ${(0, printing_1.typeSchemeToString)(expectedSignature)}, got ${(0, printing_1.typeSchemeToString)(result)}`);
});
(0, mocha_1.it)('contains quantified signatures for tuples', () => {
const tuplesSignature = signatures.get('tuples');
const expectedSignature = {
type: (0, parser_1.parseTypeOrThrow)('(Set[t0], Set[t1], Set[t2]) => Set[(t0, t1, t2)]'),
typeVariables: new Set(['t0', 't1', 't2']),
rowVariables: new Set([]),
};
const result = tuplesSignature(3);
chai_1.assert.deepEqual(result, expectedSignature, `expected ${(0, printing_1.typeSchemeToString)(expectedSignature)}, got ${(0, printing_1.typeSchemeToString)(result)}`);
});
});
//# sourceMappingURL=builtinSignatures.test.js.map