From 56b3da963de66675a4f8519ef79b30bdba1556ed Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Mon, 19 Oct 2026 04:08:24 -0400 Subject: [PATCH 1/6] Keep a cell's complex member whose imaginary part is 0 when a sibling is edited A cell a file holds as {complex(1,0), 5} shows its literal as {1+0i, 5}. Since cell members follow MATLAB, a cell literal reads 1+0i as the real double MATLAB makes of it. So with only the 5 retyped, {1+0i, 6} saved the member nobody changed as a real 1, in a text and a binary dictionary alike. Before that change the member stayed complex. Under "do not rewrite data nobody changed" and theme 1, such a cell's literal is not its value: _literalRoundTrips now says so for a cell that holds a complex element whose imaginary part is 0 (or -0), itself or in a nested cell. The cell offers no editor for its literal, as one that shows an element as a summary offers none, and refuses the literal set on it with a reason that says why. Its elements are edited one at a time: the 5 set to 6 alone, the member kept as read. A complex member with a non-zero imaginary part reads back from the literal as itself, so that cell still takes its literal. test/fixtures/cell_zero_imaginary_binary.sldd and _text.sldd are MATLAB R2027a's (make_cell_zero_imaginary.m): {complex(1,0), 5}, {complex(2,-0), 5}, {{complex(1,0)}, 5} and the control {complex(1,2), 5}. cell_zero_imaginary.truth.json is MATLAB's reading of them, and of core's saves after the element edits (make_cell_zero_imaginary_core.mjs): every member is still complex, the -0 kept. The new test drives both formats and a .mat file, with and without its node ceiling. The new binary fixture is in the merged-save read-back's tree, so MATLAB was asked about its two merged saves too (probe_m9_merged_reopen.m on just those): both read as expected. Their rows are added to m9_merged_saves.truth.json as MATLAB wrote them; no other row changed. --- .../node/data/MatlabVariableNode.d.ts | 12 + .../node/data/MatlabVariableNode.d.ts.map | 2 +- .../datamodel/node/data/MatlabVariableNode.js | 35 ++- .../node/data/MatlabVariableNode.js.map | 2 +- src/datamodel/node/data/MatlabVariableNode.ts | 39 +++- test/cellZeroImaginaryMember.test.ts | 220 ++++++++++++++++++ test/fixtures/cell_zero_imaginary.truth.json | 218 +++++++++++++++++ test/fixtures/cell_zero_imaginary_binary.sldd | Bin 0 -> 2946 bytes test/fixtures/cell_zero_imaginary_text.sldd | 124 ++++++++++ test/fixtures/make_cell_zero_imaginary.m | 171 ++++++++++++++ .../make_cell_zero_imaginary_core.mjs | 41 ++++ test/parity/matlab/m9_merged_saves.truth.json | 106 +++++++++ 12 files changed, 962 insertions(+), 8 deletions(-) create mode 100644 test/cellZeroImaginaryMember.test.ts create mode 100644 test/fixtures/cell_zero_imaginary.truth.json create mode 100644 test/fixtures/cell_zero_imaginary_binary.sldd create mode 100644 test/fixtures/cell_zero_imaginary_text.sldd create mode 100644 test/fixtures/make_cell_zero_imaginary.m create mode 100644 test/fixtures/make_cell_zero_imaginary_core.mjs diff --git a/dist/datamodel/node/data/MatlabVariableNode.d.ts b/dist/datamodel/node/data/MatlabVariableNode.d.ts index 7a02a95f..595eabc8 100644 --- a/dist/datamodel/node/data/MatlabVariableNode.d.ts +++ b/dist/datamodel/node/data/MatlabVariableNode.d.ts @@ -89,8 +89,20 @@ export default class MatlabVariableNode extends DataNode { * Nor when an element is an object that takes no editor of its own, whatever its token: an * enumeration value shows `GearMode.Reverse` (ObjectNode.displayValue), and `{1, * GearMode.Reverse}` reads back as a cell holding that char. + * + * Nor when an element is a complex number whose imaginary part is 0 (_isZeroImaginaryComplex). */ _literalRoundTrips(): boolean; + /** + * Is this a complex scalar whose imaginary part is 0 (or -0), such as a file's complex(1, 0)? + * It shows `1+0i`, and a cell literal reads that text as the real double MATLAB makes of it + * (MatlabValueParser's zeroImaginaryAsReal): `{1+0i, 5}` is {1, 5} in MATLAB. So a cell + * holding one is not its literal: with only the 5 retyped, the literal set back wrote the + * member nobody changed as a real 1, in both formats. Its elements are edited one at a time. + */ + _isZeroImaginaryComplex(): boolean; + /** Does this cell hold such an element (_isZeroImaginaryComplex), itself or in a nested cell? */ + _holdsZeroImaginaryElement(): boolean; /** `asMeasured`: the text the length guard measures (_guardText), not the one shown. */ _formatString(asMeasured?: boolean): string; /** diff --git a/dist/datamodel/node/data/MatlabVariableNode.d.ts.map b/dist/datamodel/node/data/MatlabVariableNode.d.ts.map index d2bbf30a..9a032db4 100644 --- a/dist/datamodel/node/data/MatlabVariableNode.d.ts.map +++ b/dist/datamodel/node/data/MatlabVariableNode.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"MatlabVariableNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/data/MatlabVariableNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"MatlabVariableNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/data/MatlabVariableNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/data/MatlabVariableNode.js b/dist/datamodel/node/data/MatlabVariableNode.js index 36acb57a..4d13620f 100644 --- a/dist/datamodel/node/data/MatlabVariableNode.js +++ b/dist/datamodel/node/data/MatlabVariableNode.js @@ -442,8 +442,9 @@ export default class MatlabVariableNode extends DataNode { if (this._cutByCeiling && this._kind === 'cell' && needsSummary(this._dims)) { return false; } - // A cell whose literal shows an element as a summary (_literalRoundTrips): the - // literal is not the cell's value, so it is not an editor's seed. + // A cell whose literal shows an element as a summary, or a complex element whose + // imaginary part is 0 (_literalRoundTrips): the literal is not the cell's value, so it is + // not an editor's seed. if (this._kind === 'cell' && !this._literalRoundTrips()) { return false; } @@ -785,6 +786,8 @@ export default class MatlabVariableNode extends DataNode { * Nor when an element is an object that takes no editor of its own, whatever its token: an * enumeration value shows `GearMode.Reverse` (ObjectNode.displayValue), and `{1, * GearMode.Reverse}` reads back as a cell holding that char. + * + * Nor when an element is a complex number whose imaginary part is 0 (_isZeroImaginaryComplex). */ _literalRoundTrips() { // Of a cell the node ceiling built without its rows, as of its elements rebuilt alone. @@ -799,9 +802,33 @@ export default class MatlabVariableNode extends DataNode { if (!(c instanceof MatlabVariableNode) && !c.valueEditable) { return false; } + if (c instanceof MatlabVariableNode && c._isZeroImaginaryComplex()) { + return false; + } return !(c instanceof MatlabVariableNode && c._kind === 'cell') || c._literalRoundTrips(); }); } + /** + * Is this a complex scalar whose imaginary part is 0 (or -0), such as a file's complex(1, 0)? + * It shows `1+0i`, and a cell literal reads that text as the real double MATLAB makes of it + * (MatlabValueParser's zeroImaginaryAsReal): `{1+0i, 5}` is {1, 5} in MATLAB. So a cell + * holding one is not its literal: with only the 5 retyped, the literal set back wrote the + * member nobody changed as a real 1, in both formats. Its elements are edited one at a time. + */ + _isZeroImaginaryComplex() { + if (this._scalarType !== 'complex' || typeof this._scalarValue !== 'string') { + return false; + } + const parts = parseComplexNum(this._scalarValue); + return parts !== null && Number(parts.im) === 0; + } + /** Does this cell hold such an element (_isZeroImaginaryComplex), itself or in a nested cell? */ + _holdsZeroImaginaryElement() { + if (this._cutByCeiling && this._matVar) { + return this._withCeilingTwin(true, (t) => t._holdsZeroImaginaryElement()); + } + return this.children.some((c) => c instanceof MatlabVariableNode && (c._isZeroImaginaryComplex() || (c._kind === 'cell' && c._holdsZeroImaginaryElement()))); + } /** `asMeasured`: the text the length guard measures (_guardText), not the one shown. */ _formatString(asMeasured = false) { const d = this._dims; @@ -979,7 +1006,9 @@ export default class MatlabVariableNode extends DataNode { if (this._kind === 'cell' && !this._literalRoundTrips()) { return { error: true, - reason: 'This cell shows an element as a summary, which is not its value. Edit the element instead.', + reason: this._holdsZeroImaginaryElement() + ? 'This cell holds a complex element whose imaginary part is 0, which its text sets as a real number. Edit the element instead.' + : 'This cell shows an element as a summary, which is not its value. Edit the element instead.', invalidValue: stringValue, validValue: this.displayValue, }; diff --git a/dist/datamodel/node/data/MatlabVariableNode.js.map b/dist/datamodel/node/data/MatlabVariableNode.js.map index dfee5f1e..3e771212 100644 --- a/dist/datamodel/node/data/MatlabVariableNode.js.map +++ b/dist/datamodel/node/data/MatlabVariableNode.js.map @@ -1 +1 @@ -{"version":3,"file":"MatlabVariableNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/data/MatlabVariableNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"MatlabVariableNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/data/MatlabVariableNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/datamodel/node/data/MatlabVariableNode.ts b/src/datamodel/node/data/MatlabVariableNode.ts index ea72de52..0ff8363e 100644 --- a/src/datamodel/node/data/MatlabVariableNode.ts +++ b/src/datamodel/node/data/MatlabVariableNode.ts @@ -658,8 +658,9 @@ export default class MatlabVariableNode extends DataNode { if (this._cutByCeiling && this._kind === 'cell' && needsSummary(this._dims)) { return false; } - // A cell whose literal shows an element as a summary (_literalRoundTrips): the - // literal is not the cell's value, so it is not an editor's seed. + // A cell whose literal shows an element as a summary, or a complex element whose + // imaginary part is 0 (_literalRoundTrips): the literal is not the cell's value, so it is + // not an editor's seed. if (this._kind === 'cell' && !this._literalRoundTrips()) { return false; } @@ -1012,6 +1013,8 @@ export default class MatlabVariableNode extends DataNode { * Nor when an element is an object that takes no editor of its own, whatever its token: an * enumeration value shows `GearMode.Reverse` (ObjectNode.displayValue), and `{1, * GearMode.Reverse}` reads back as a cell holding that char. + * + * Nor when an element is a complex number whose imaginary part is 0 (_isZeroImaginaryComplex). */ _literalRoundTrips(): boolean { // Of a cell the node ceiling built without its rows, as of its elements rebuilt alone. @@ -1026,10 +1029,38 @@ export default class MatlabVariableNode extends DataNode { if (!(c instanceof MatlabVariableNode) && !c.valueEditable) { return false; } + if (c instanceof MatlabVariableNode && c._isZeroImaginaryComplex()) { + return false; + } return !(c instanceof MatlabVariableNode && c._kind === 'cell') || c._literalRoundTrips(); }); } + /** + * Is this a complex scalar whose imaginary part is 0 (or -0), such as a file's complex(1, 0)? + * It shows `1+0i`, and a cell literal reads that text as the real double MATLAB makes of it + * (MatlabValueParser's zeroImaginaryAsReal): `{1+0i, 5}` is {1, 5} in MATLAB. So a cell + * holding one is not its literal: with only the 5 retyped, the literal set back wrote the + * member nobody changed as a real 1, in both formats. Its elements are edited one at a time. + */ + _isZeroImaginaryComplex(): boolean { + if (this._scalarType !== 'complex' || typeof this._scalarValue !== 'string') { + return false; + } + const parts = parseComplexNum(this._scalarValue); + return parts !== null && Number(parts.im) === 0; + } + + /** Does this cell hold such an element (_isZeroImaginaryComplex), itself or in a nested cell? */ + _holdsZeroImaginaryElement(): boolean { + if (this._cutByCeiling && this._matVar) { + return this._withCeilingTwin(true, (t) => t._holdsZeroImaginaryElement()); + } + return this.children.some( + (c) => c instanceof MatlabVariableNode && (c._isZeroImaginaryComplex() || (c._kind === 'cell' && c._holdsZeroImaginaryElement())), + ); + } + /** `asMeasured`: the text the length guard measures (_guardText), not the one shown. */ _formatString(asMeasured = false): string { const d = this._dims; @@ -1215,7 +1246,9 @@ export default class MatlabVariableNode extends DataNode { if (this._kind === 'cell' && !this._literalRoundTrips()) { return { error: true, - reason: 'This cell shows an element as a summary, which is not its value. Edit the element instead.', + reason: this._holdsZeroImaginaryElement() + ? 'This cell holds a complex element whose imaginary part is 0, which its text sets as a real number. Edit the element instead.' + : 'This cell shows an element as a summary, which is not its value. Edit the element instead.', invalidValue: stringValue, validValue: this.displayValue, }; diff --git a/test/cellZeroImaginaryMember.test.ts b/test/cellZeroImaginaryMember.test.ts new file mode 100644 index 00000000..4b260632 --- /dev/null +++ b/test/cellZeroImaginaryMember.test.ts @@ -0,0 +1,220 @@ +// Copyright 2026 The MathWorks, Inc. +// +// A cell a file holds with a complex member whose imaginary part is 0, such as +// {complex(1,0), 5}. Its literal shows the member as `1+0i`, and a cell literal reads `1+0i` +// as the real double MATLAB makes of it (cellSignMember.test.ts): `{1+0i, 5}` is {1, 5} in +// MATLAB. So the literal is not the cell's value, and setting it back wrote the member as a +// real 1. Retyping only the 5, `{1+0i, 6}`, saved the member nobody changed as a double, in +// both formats. Before cell members followed MATLAB the member stayed complex. +// +// Under "do not rewrite data nobody changed" (D3) and theme 1, such a cell offers no editor +// for its literal, as one that shows an element as a summary offers none +// (MatlabVariableNode._literalRoundTrips), and refuses the literal set on it. Its elements are +// edited one at a time: the 5 set to 6 alone, and the member kept as read. +// +// test/fixtures/cell_zero_imaginary_binary.sldd and cell_zero_imaginary_text.sldd are +// MATLAB's (R2027a, make_cell_zero_imaginary.m). cell_zero_imaginary.truth.json is MATLAB's +// reading of them and of core's saves after the element edits below. To ask MATLAB again: +// +// npm run build && node test/fixtures/make_cell_zero_imaginary_core.mjs /tmp/cell_zero_imaginary +// mw -using Bmain matlab -nodesktop -batch "cd('/test/fixtures'); make_cell_zero_imaginary('/tmp/cell_zero_imaginary', 'read', '/tmp/cell_zero_imaginary')" +// +// (after copying the two fixtures into /tmp/cell_zero_imaginary). +import { describe, it, expect } from 'vitest'; +import { readFileSync } from 'node:fs'; +import { fileURLToPath } from 'node:url'; +import { strFromU8, strToU8, unzipSync } from 'fflate'; +import { createSession } from '../src/index.js'; +import { ingest } from '../src/core/ingest.js'; +import MatNode from '../src/datamodel/node/container/MatNode.js'; +import { parseMat } from '../src/datamodel/parser/MatParser.js'; +import '../src/datamodel/node/data/NodeClassMap.js'; +import { CLASS, cellVar, matFile, numericVar } from './tools/matBytes.js'; + +/* eslint-disable @typescript-eslint/no-explicit-any */ + +const fixture = (name: string): Uint8Array => + new Uint8Array(readFileSync(fileURLToPath(new URL(`./fixtures/${name}`, import.meta.url)))); +const buffer = (u8: Uint8Array): ArrayBuffer => u8.buffer.slice(u8.byteOffset, u8.byteOffset + u8.byteLength) as ArrayBuffer; +const entryOf = (root: any, name: string): any => root.getSection('design').children.find((e: any) => e.name === name); + +const FORMATS = [ + { format: 'text', file: 'cell_zero_imaginary_text.sldd' }, + { format: 'binary', file: 'cell_zero_imaginary_binary.sldd' }, +] as const; + +const REASON = 'This cell holds a complex element whose imaginary part is 0, which its text sets as a real number. Edit the element instead.'; + +/** Each cell MATLAB wrote with a zero imaginary part in it, as it shows, and the 5 retyped in its literal. */ +const ZERO_CELLS = [ + { name: 'cZero', shown: '{1+0i, 5}', retyped: '{1+0i, 6}', member: ['double (complex)', '1+0i'] }, + // complex(2,-0): the imaginary part's -0 shows with a `+` (shownComplexText). + { name: 'cZeroNeg', shown: '{2+0i, 5}', retyped: '{2+0i, 6}', member: ['double (complex)', '2+0i'] }, + // The complex member is in the nested cell. + { name: 'cZeroNest', shown: '{{1+0i}, 5}', retyped: '{{1+0i}, 6}', member: ['cell', '{1+0i}'] }, +] as const; + +function open(file: string, name: string): { session: any; root: any; entry: any } { + const session = createSession(); + const root = ingest(session, buffer(fixture(file)), { filename: file }) as any; + const entry = entryOf(root, name); + session.setActive(root, entry); + return { session, root, entry }; +} + +function saveAndReopen(session: any, root: any, file: string): { saved: any; reopened: any } { + const saved = session.serializeSource(root.name); + const bytes = saved.kind === 'text' ? strToU8(saved.text) : saved.bytes; + const reopened = ingest(createSession(), buffer(bytes), { filename: file }) as any; + return { saved, reopened }; +} + +/** Each member's row as the table shows it. */ +const rows = (entry: any): [string, string][] => entry.children.map((c: any) => [c.toRow().Class, String(c.displayValue)]); + +/** The text dictionary's JSON value for an entry, from its text. */ +const textValue = (text: string, name: string): any => + JSON.parse(text).__MW_TEXT_PARTS__['__MW_TEXT_PART__/data/chunk0'].__MW_TEXT_content.entries.find((e: any) => e.name === name).value; + +/** The binary dictionary's `

` for an entry. */ +function binaryValue(bytes: Uint8Array, name: string): string { + const xml = strFromU8(unzipSync(bytes)['data/chunk0.xml']); + const object = xml.split('').find((o) => o.includes(`

${name}

`))!; + return object.match(/

/)![0]; +} + +/** The first member as the file holds it: a text dictionary's JSON, or a binary one's first `` and what it holds. */ +function firstMemberAsWritten(format: string, saved: { text?: string; bytes?: Uint8Array }, name: string): unknown { + if (format === 'text') { + return textValue(saved.text!, name)._elements[0]; + } + const value = binaryValue(saved.bytes!, name); + const lines = value.split('\n').slice(1, -1); + // An element is one line, or a nested cell's lines up to its closing tag. + const end = lines[0].includes('Class="cell"') ? lines.findIndex((l) => l.trim() === '') + 1 : 1; + return lines.slice(0, end).join('\n'); +} + +const asMatlabWrote = (format: string, file: string, name: string): unknown => + firstMemberAsWritten(format, format === 'text' ? { text: strFromU8(fixture(file)) } : { bytes: fixture(file) }, name); + +for (const { format, file } of FORMATS) { + describe(`a cell holding a complex member whose imaginary part is 0, ${format} dictionary`, () => { + it.each(ZERO_CELLS)('$name opens as MATLAB wrote it, the member complex', ({ name, shown, member }) => { + const { entry } = open(file, name); + expect(entry.displayValue).toBe(shown); + expect(rows(entry)).toEqual([member, ['double', '5']]); + }); + + it.each(ZERO_CELLS)('$name offers no editor for its literal, which is not its value', ({ name }) => { + const { entry } = open(file, name); + expect(entry.valueEditable).toBe(false); + }); + + it.each(ZERO_CELLS)('$name with only the 5 retyped in its literal is refused, and the save keeps the member complex', ({ name, shown, retyped, member }) => { + const { session, root, entry } = open(file, name); + const result = session.editProperty(entry.id, 'Value', retyped); + // What the save writes first: taken, the literal wrote the member as a real double. + const { saved, reopened } = saveAndReopen(session, root, file); + expect(rows(entryOf(reopened, name))).toEqual([member, ['double', '5']]); + expect(firstMemberAsWritten(format, saved, name)).toEqual(asMatlabWrote(format, file, name)); + expect(result).toEqual({ error: true, reason: REASON, invalidValue: retyped, validValue: shown }); + expect(rows(entry)).toEqual([member, ['double', '5']]); + }); + + it.each(ZERO_CELLS)('$name with its committed literal unchanged is no edit', ({ name, shown, member }) => { + const { session, entry } = open(file, name); + expect(session.editProperty(entry.id, 'Value', shown)).toBe(true); + expect(rows(entry)).toEqual([member, ['double', '5']]); + expect(session.canUndo()).toBe(false); + }); + + it.each(ZERO_CELLS)('$name takes the 5 set to 6 as an element, and the save keeps the member as MATLAB wrote it', ({ name, member }) => { + const { session, root, entry } = open(file, name); + const five = entry.children[1]; + session.setActive(root, five); + expect(session.editProperty(five.id, 'Value', '6')).toBe(true); + expect(rows(entry)).toEqual([member, ['double', '6']]); + + const { saved, reopened } = saveAndReopen(session, root, file); + expect(rows(entryOf(reopened, name))).toEqual([member, ['double', '6']]); + expect(firstMemberAsWritten(format, saved, name)).toEqual(asMatlabWrote(format, file, name)); + }); + + it('the nested cell holding the member offers no editor for its literal either', () => { + const { session, root, entry } = open(file, 'cZeroNest'); + const inner = entry.children[0]; + expect(inner.valueEditable).toBe(false); + session.setActive(root, inner); + expect(session.editProperty(inner.id, 'Value', '{1+0i, 7}')).toMatchObject({ error: true, reason: REASON }); + expect(rows(inner)).toEqual([['double (complex)', '1+0i']]); + }); + + // The control: a member whose imaginary part is not 0 reads back from the literal as itself. + it('a cell whose complex member has a non-zero imaginary part still takes its literal, and keeps the member complex', () => { + const { session, root, entry } = open(file, 'cTwoI'); + expect(entry.displayValue).toBe('{1+2i, 5}'); + expect(entry.valueEditable).toBe(true); + expect(session.editProperty(entry.id, 'Value', '{1+2i, 6}')).toBe(true); + const { reopened } = saveAndReopen(session, root, file); + expect(rows(entryOf(reopened, 'cTwoI'))).toEqual([['double (complex)', '1+2i'], ['double', '6']]); + }); + }); +} + +// A .mat file's cell is the same node, and is built without its rows past the file's node +// ceiling (matNodeCeiling): asked then of its elements rebuilt alone (_withCeilingTwin). +describe('a .mat file cell holding a complex member whose imaginary part is 0, with and without the node ceiling', () => { + const dbl = (real: number[], imag?: number[]): Uint8Array => numericVar({ name: '', cls: CLASS.DOUBLE, dimensions: [1, real.length], real, imag }); + const file = (): ArrayBuffer => + matFile([cellVar('c', [dbl([1], [0]), dbl([5])]), cellVar('cn', [cellVar('', [dbl([1], [0])]), dbl([5])]), cellVar('ci', [dbl([1], [2]), dbl([5])])]); + + for (const nodeCeiling of [0, Number.MAX_SAFE_INTEGER]) { + it(`node ceiling ${nodeCeiling}`, () => { + const root = (MatNode.fromParsed as any)(parseMat(file()), 'f.mat', { nodeCeiling }); + const variable = (name: string): any => root.children.find((v: any) => v.name === name); + for (const [name, shown] of [['c', '{1+0i, 5}'], ['cn', '{{1+0i}, 5}']]) { + const cell = variable(name); + expect(cell.displayValue, name).toBe(shown); + expect(cell.valueEditable, name).toBe(false); + expect(cell.setProperty('Value', shown.replace('5', '6')), name).toMatchObject({ error: true, reason: REASON }); + expect(cell.displayValue, name).toBe(shown); + } + expect(variable('ci').displayValue).toBe('{1+2i, 5}'); + expect(variable('ci').valueEditable).toBe(true); + }); + } +}); + +type Read = { name: string; class: string; size: number[]; members: string[] }; +type Truth = { release: string; files: { file: string; entries: Read[] }[] }; +const truth = (): Truth => JSON.parse(strFromU8(fixture('cell_zero_imaginary.truth.json'))) as Truth; + +describe("MATLAB's reading of its dictionaries and of core's saves (cell_zero_imaginary.truth.json)", () => { + const read = (file: string): Record => + Object.fromEntries(truth().files.find((f) => f.file === file)!.entries.map((e) => [e.name, e.members])); + + it('reads its own dictionaries as written: each member complex, the -0 kept', () => { + expect(truth().release).toBe('2027a'); + for (const { file } of FORMATS) { + expect(read(file), file).toEqual({ + cZero: ['double complex 1 +0i', 'double real 5'], + cZeroNeg: ['double complex 2 -0i', 'double real 5'], + cZeroNest: ['{double complex 1 +0i}', 'double real 5'], + cTwoI: ['double complex 1 +2i', 'double real 5'], + }); + } + }); + + it("reads core's saves after the element edits with each member still complex", () => { + for (const format of ['binary', 'text']) { + const file = `cell_zero_imaginary_core_${format}.sldd`; + expect(read(file), file).toEqual({ + cZero: ['double complex 1 +0i', 'double real 6'], + cZeroNeg: ['double complex 2 -0i', 'double real 6'], + cZeroNest: ['{double complex 1 +0i}', 'double real 6'], + cTwoI: ['double complex 1 +2i', 'double real 6'], + }); + } + }); +}); diff --git a/test/fixtures/cell_zero_imaginary.truth.json b/test/fixtures/cell_zero_imaginary.truth.json new file mode 100644 index 00000000..d73116aa --- /dev/null +++ b/test/fixtures/cell_zero_imaginary.truth.json @@ -0,0 +1,218 @@ +{ + "version": "27.1.0.3409468 (R2027a) Prerelease", + "release": "2027a", + "files": [ + { + "file": "cell_zero_imaginary_binary.sldd", + "entries": [ + { + "name": "cZero", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "double complex 1 +0i", + "double real 5" + ] + }, + { + "name": "cZeroNeg", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "double complex 2 -0i", + "double real 5" + ] + }, + { + "name": "cZeroNest", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "{double complex 1 +0i}", + "double real 5" + ] + }, + { + "name": "cTwoI", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "double complex 1 +2i", + "double real 5" + ] + } + ] + }, + { + "file": "cell_zero_imaginary_text.sldd", + "entries": [ + { + "name": "cZero", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "double complex 1 +0i", + "double real 5" + ] + }, + { + "name": "cZeroNeg", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "double complex 2 -0i", + "double real 5" + ] + }, + { + "name": "cZeroNest", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "{double complex 1 +0i}", + "double real 5" + ] + }, + { + "name": "cTwoI", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "double complex 1 +2i", + "double real 5" + ] + } + ] + }, + { + "file": "cell_zero_imaginary_core_binary.sldd", + "entries": [ + { + "name": "cZero", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "double complex 1 +0i", + "double real 6" + ] + }, + { + "name": "cZeroNeg", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "double complex 2 -0i", + "double real 6" + ] + }, + { + "name": "cZeroNest", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "{double complex 1 +0i}", + "double real 6" + ] + }, + { + "name": "cTwoI", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "double complex 1 +2i", + "double real 6" + ] + } + ] + }, + { + "file": "cell_zero_imaginary_core_text.sldd", + "entries": [ + { + "name": "cZero", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "double complex 1 +0i", + "double real 6" + ] + }, + { + "name": "cZeroNeg", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "double complex 2 -0i", + "double real 6" + ] + }, + { + "name": "cZeroNest", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "{double complex 1 +0i}", + "double real 6" + ] + }, + { + "name": "cTwoI", + "class": "cell", + "size": [ + 1, + 2 + ], + "members": [ + "double complex 1 +2i", + "double real 6" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/test/fixtures/cell_zero_imaginary_binary.sldd b/test/fixtures/cell_zero_imaginary_binary.sldd new file mode 100644 index 0000000000000000000000000000000000000000..486c39cf5726595c92f47dfae522137ffa0cd7c6 GIT binary patch literal 2946 zcmaJ@2T)UK7Y(687b0kCNghiQWq17on zTWT5YV`w7`jyr5Arnj}aU%FC)@}!GQ+3|<%O@4{)EQOv~U?SJ_@wNmi**H8^RJgj; zpAkGRS2-=DHQNy-MMZa|xLDb}_q`ej{IIK+9NxwVjz^qImeCYRGduk1H_{UFZf{$WVQG>}?<NN^vj(R?Y76qloKiQ2RSs8`AkhiA&B`Hf})usseMfEV3ho z3}iK|^rwJU%8iR0OT%8jygFEac+NWz)u%J@`lc%IPyHjUqusUUQ!4?5mcJBhg6@HR zbE?MD1sxB9V+F1*_ffWXFP9f;QszIrjjV}Qc$7`oX};l-m8@(+?+#vd!TR35WXMwu|lU`dB@U_5!A07 zS995b<3}b9_f3N=Sxh#wZ0;b7NgqNm{y#S77f3({`uP(AgGq#-uSzY>G4e}Lm*`%P zy?P@|#d#jgVXi$xQZ{pAG~s9lE!p`u>Ww>h1&rY|n%J?`FP~!Hx4>{kZpob#8%!;@ z8=oYqVii;#iim|-Q@{$#H(!%$Bxmn(rw&$Jb2G25(|+sjDfEQ@&eOtNR6+l{SBPRU z7ly22OZkyp;kK4+`eqeF6veo>7O#kbD~N&T=$IjXPJPh3vRQBJQsu2k4kFjltg<4d z0O{WaA<14^et;v1fjrL8JtD^D2lilf2 zoR27)3S?%cU2YUU`-{pbUqoG!URl*&-eifo=eI~vT_H%~yLB99`9-WmEAVqr)aIm5 z@I*bh^~=PX?NmzIxVf#yCR;UJ9qX>WWL3ePRS}u*tKk#o`aksu88Gr>IS2Q^gY$Ca z+jHSG3pavz6I2c*te%%*V*}z(&!M;720A>x=xfM4R600TIz^Q{-fo&WPA--()y~N1 zPu$U4b$WGu3J6cgOiHxRsv7yzB&9I@fG|S2mnxSkASxVqROtbP8u|z@&Z9z8n=il} zOg!sM)U8})3I64NJx*vO6$j>9L#f@$*b!k#>R0aY>dl4Z|F=otbY$rTZG!x2y*|i?y}Fx6(+lY>eE?|BX_^ zV&WC+DF2L+-@;kO8btE*{VG+5j1yuksRE+TWg`zg^5ZH3FcEsNx=6)PbPerEb`r|5R0Ti(2&3ChgJ&@f@zXi^4{nT37f!KZE z8&CkxcR>H<3hYqq4fG8vk@qK1KeQ7&Cc8|(VFs`k=l_ln_TOU@E!vEml?(vD%ep_X K1Ruu#_3a;WptIiq literal 0 HcmV?d00001 diff --git a/test/fixtures/cell_zero_imaginary_text.sldd b/test/fixtures/cell_zero_imaginary_text.sldd new file mode 100644 index 00000000..452e5ff4 --- /dev/null +++ b/test/fixtures/cell_zero_imaginary_text.sldd @@ -0,0 +1,124 @@ +{ + "__MW_TEXT_COREPROPERTIES__": { + "release": "R2027a" + }, + "__MW_TEXT_PARTS__": { + "__MW_TEXT_PART__/data/chunk0": { + "__MW_TEXT_content": { + "entries": [ + { + "name": "cTwoI", + "metadata": { + "uuid": "a48d7eaa-6052-42e4-bdbd-ba5d43124c23", + "namespace": "dacaf35e-55a5-454d-a7c1-93db038a210e", + "lastmod": "20261019T075328.984843", + "modifiedby": "fixture", + "isderived": "0" + }, + "value": { + "_array_type": "Cell", + "_dimensions": [ + 1, + 2 + ], + "_elements": [ + { + "_type": "cdata", + "_value": " %)30 . 2 8 ( !@@ % \" $ ! 0 ) \" / _\"0 @ 0 \u0000\u0000\u0000" + }, + 5 + ], + "_mw_element_type": "MATLABArray" + } + }, + { + "name": "cZero", + "metadata": { + "uuid": "9d7683a8-afa7-4548-9695-f9a2989db715", + "namespace": "dacaf35e-55a5-454d-a7c1-93db038a210e", + "lastmod": "20261019T075328.984505", + "modifiedby": "fixture", + "isderived": "0" + }, + "value": { + "_array_type": "Cell", + "_dimensions": [ + 1, + 2 + ], + "_elements": [ + { + "_type": "cdata", + "_value": " %)30 . 2 8 ( !@@ % \" $ ! 0 ) \" / _\"0 @ \u0000\u0000\u0000" + }, + 5 + ], + "_mw_element_type": "MATLABArray" + } + }, + { + "name": "cZeroNeg", + "metadata": { + "uuid": "f057a1a6-538a-40e2-9279-e7814bf4892a", + "namespace": "dacaf35e-55a5-454d-a7c1-93db038a210e", + "lastmod": "20261019T075328.984640", + "modifiedby": "fixture", + "isderived": "0" + }, + "value": { + "_array_type": "Cell", + "_dimensions": [ + 1, + 2 + ], + "_elements": [ + { + "_type": "cdata", + "_value": " %)30 . 2 8 ( !@@ % \" $ ! 0 ) \" ! \"0 @ @ \u0000\u0000\u0000" + }, + 5 + ], + "_mw_element_type": "MATLABArray" + } + }, + { + "name": "cZeroNest", + "metadata": { + "uuid": "a6981708-5e90-4bab-8ca6-d4249dbd7f8e", + "namespace": "dacaf35e-55a5-454d-a7c1-93db038a210e", + "lastmod": "20261019T075328.984742", + "modifiedby": "fixture", + "isderived": "0" + }, + "value": { + "_array_type": "Cell", + "_dimensions": [ + 1, + 2 + ], + "_elements": [ + { + "_array_type": "Cell", + "_dimensions": [ + 1, + 1 + ], + "_elements": [ + { + "_type": "cdata", + "_value": " %)30 . 2 8 ( !@@ % \" $ ! 0 ) \" / _\"0 @ \u0000\u0000\u0000" + } + ] + }, + 5 + ], + "_mw_element_type": "MATLABArray" + } + } + ], + "Dictionary References": [], + "AllowAccessBWS": false + } + } + } +} \ No newline at end of file diff --git a/test/fixtures/make_cell_zero_imaginary.m b/test/fixtures/make_cell_zero_imaginary.m new file mode 100644 index 00000000..738e2a7f --- /dev/null +++ b/test/fixtures/make_cell_zero_imaginary.m @@ -0,0 +1,171 @@ +function make_cell_zero_imaginary(outDir, phase, oursDir) + % Copyright 2026 The MathWorks, Inc. + % Authors cell_zero_imaginary_binary.sldd and cell_zero_imaginary_text.sldd: cells holding a + % complex member whose imaginary part is 0, as MATLAB writes them, and reads back core's saves + % of them. test/cellZeroImaginaryMember.test.ts holds core to them. Run (one line: mw splits a + % -batch argument on newlines): + % + % mw -using Bmain matlab -nodesktop -batch "cd(''); make_cell_zero_imaginary('', 'write')" + % mw -using Bmain matlab -nodesktop -batch "cd(''); make_cell_zero_imaginary('', 'read', '')" + % + % Verify by the WROTE and READ lines and the trailing MAKE_CELL_ZERO_IMAGINARY_DONE; any FAIL + % line means a file says something other than this header promises. `outDir` defaults to this + % folder. 'write' writes the two dictionaries; 'read' reads them back and, from `oursDir`, the + % two dictionaries core saved after the edits below (make_cell_zero_imaginary_core.mjs makes + % them), and writes cell_zero_imaginary.truth.json. Each file is read from a copy, under + % `outDir`, at a path MATLAB has not opened, after closeAll. + % + % WHAT IT MEASURES. A cell's literal shows a complex member whose imaginary part is 0 as + % `1+0i`, and MATLAB makes a real double of that text in a cell: `{1+0i, 5}` is {1, 5}. So a + % save of the cell's whole literal, with only the 5 retyped, would write the member real. The + % member is edited alone instead, and these are what is read back: + % + % cZero {complex(1,0), 5} core's save: the 5 set to 6, as an element + % cZeroNeg {complex(2,-0), 5} the same; MATLAB keeps the imaginary part's -0 + % cZeroNest {{complex(1,0)}, 5} the same; the complex member is in the nested cell + % cTwoI {complex(1,2), 5} control: core's save sets the whole literal {1+2i, 6} + % + % THE TRUTH, per file and entry: the class and size read, and each member as `describe` + % spells it (its class, `complex` or `real`, and its parts, -0 kept), a nested cell's in braces. + % + % NO ACCOUNT NAME IN THE FILE: USER is set to 'fixture' while the dictionaries are written (it + % is each entry's LastModBy), and every part of each is searched for the account name. + here = fileparts(mfilename('fullpath')); + if nargin < 1 || isempty(outDir) + outDir = here; + end + if nargin < 2 || isempty(phase) + phase = 'write'; + end + if nargin < 3 + oursDir = ''; + end + failures = {}; + user = getenv('USER'); + if strcmp(user, 'fixture') + user = ''; + end + + V = {'cZero', {complex(1, 0), 5}; 'cZeroNeg', {complex(2, -0), 5}; ... + 'cZeroNest', {{complex(1, 0)}, 5}; 'cTwoI', {complex(1, 2), 5}}; + formats = {'compressed-binary', 'cell_zero_imaginary_binary.sldd'; 'uncompressed-text', 'cell_zero_imaginary_text.sldd'}; + + if strcmp(phase, 'write') + setenv('USER', 'fixture'); + restoreUser = onCleanup(@() setenv('USER', user)); + for f = 1:size(formats, 1) + Simulink.data.dictionary.closeAll('-discard'); + p = fullfile(outDir, formats{f, 2}); + if exist(p, 'file'), delete(p); end + dd = Simulink.data.dictionary.create(p); + dd.FileFormat = formats{f, 1}; + for i = 1:size(V, 1) + addEntry(getSection(dd, 'Design Data'), V{i, 1}, V{i, 2}); + end + saveChanges(dd); close(dd); + Simulink.data.dictionary.closeAll('-discard'); + fprintf('WROTE %s bytes=%d\n', formats{f, 2}, dir(p).bytes); + end + clear restoreUser; + for f = 1:size(formats, 1) + if ~isempty(user) && holdsText(fullfile(outDir, formats{f, 2}), user, f == 1, outDir) + failures{end + 1} = sprintf('%s holds the account name', formats{f, 2}); %#ok + end + end + report(failures); + return; + end + + T = struct(); + T.version = version; + T.release = version('-release'); + T.files = struct('file', {}, 'entries', {}); + sources = {fullfile(outDir, formats{1, 2}), formats{1, 2}; fullfile(outDir, formats{2, 2}), formats{2, 2}}; + if ~isempty(oursDir) + sources(end + 1, :) = {fullfile(oursDir, 'cell_zero_imaginary_core_binary.sldd'), 'cell_zero_imaginary_core_binary.sldd'}; + sources(end + 1, :) = {fullfile(oursDir, 'cell_zero_imaginary_core_text.sldd'), 'cell_zero_imaginary_core_text.sldd'}; + end + for f = 1:size(sources, 1) + Simulink.data.dictionary.closeAll('-discard'); + copyDir = fullfile(outDir, sprintf('fresh_%d_%d', f, round(rand * 1e9))); + mkdir(copyDir); + copyPath = fullfile(copyDir, ['fresh_' sources{f, 2}]); + copyfile(sources{f, 1}, copyPath); + dd = Simulink.data.dictionary.open(copyPath); + E = struct('name', {}, 'class', {}, 'size', {}, 'members', {}); + for i = 1:size(V, 1) + try + v = getValue(getEntry(getSection(dd, 'Design Data'), V{i, 1})); + catch err + failures{end + 1} = sprintf('%s: %s not read: %s', sources{f, 2}, V{i, 1}, err.message); %#ok + continue; + end + members = {}; + if iscell(v) + members = cellfun(@describe, v(:)', 'UniformOutput', false); + end + E(end + 1) = struct('name', V{i, 1}, 'class', class(v), 'size', size(v), 'members', {members}); %#ok + end + close(dd); + Simulink.data.dictionary.closeAll('-discard'); + rmdir(copyDir, 's'); + T.files(end + 1) = struct('file', sources{f, 2}, 'entries', E); + fprintf('READ %s: %s\n', sources{f, 2}, strjoin(arrayfun(@(t) sprintf('%s={%s}', t.name, ... + strjoin(t.members, ', ')), E, 'UniformOutput', false), ' ')); + end + + fid = fopen(fullfile(outDir, 'cell_zero_imaginary.truth.json'), 'w', 'n', 'UTF-8'); + fwrite(fid, jsonencode(T, 'PrettyPrint', true), 'char'); + fclose(fid); + fprintf('WROTE cell_zero_imaginary.truth.json\n'); + report(failures); +end + +function s = describe(v) + % `double complex 1 +0i`: the class, the complexity, and the parts by %g, which keeps a -0. + if iscell(v) + s = ['{' strjoin(cellfun(@describe, v(:)', 'UniformOutput', false), ', ') '}']; + return; + end + if ~isnumeric(v) || ~isscalar(v) + s = sprintf('%s %s', class(v), mat2str(size(v))); + return; + end + if isreal(v) + s = sprintf('%s real %g', class(v), v); + else + im = imag(v); + sgn = '+'; + if im < 0 || (im == 0 && 1 / im < 0) + sgn = '-'; + end + s = sprintf('%s complex %g %s%gi', class(v), real(v), sgn, abs(im)); + end +end + +function hit = holdsText(p, text, zipped, outDir) + if zipped + tmp = fullfile(outDir, sprintf('unz_%d', round(rand * 1e9))); + mkdir(tmp); + unzip(p, tmp); + parts = dir(fullfile(tmp, '**', '*')); + hit = false; + for i = 1:numel(parts) + if ~parts(i).isdir && contains(fileread(fullfile(parts(i).folder, parts(i).name)), text) + hit = true; + end + end + rmdir(tmp, 's'); + else + hit = contains(fileread(p), text); + end +end + +function report(failures) + if isempty(failures) + fprintf('MAKE_CELL_ZERO_IMAGINARY_DONE\n'); + else + fprintf('FAIL %s\n', failures{:}); + fprintf('MAKE_CELL_ZERO_IMAGINARY_FAILED %d\n', numel(failures)); + end +end diff --git a/test/fixtures/make_cell_zero_imaginary_core.mjs b/test/fixtures/make_cell_zero_imaginary_core.mjs new file mode 100644 index 00000000..7678d516 --- /dev/null +++ b/test/fixtures/make_cell_zero_imaginary_core.mjs @@ -0,0 +1,41 @@ +// Copyright 2026 The MathWorks, Inc. +// Writes cell_zero_imaginary_core_binary.sldd and cell_zero_imaginary_core_text.sldd: core's +// saves of MATLAB's cell_zero_imaginary_*.sldd after the edits cellZeroImaginaryMember.test.ts +// makes. In cZero, cZeroNeg and cZeroNest the 5 is set to 6 as an element (their literal is not +// their value, so it takes no edit); in cTwoI, the control, the literal {1+2i, 6} is set. +// make_cell_zero_imaginary.m's 'read' phase has MATLAB read them back. Run it from the +// repository root after `npm run build`, since it reads the built package: +// +// node test/fixtures/make_cell_zero_imaginary_core.mjs +import { mkdirSync, readFileSync, writeFileSync } from 'node:fs'; +import { join } from 'node:path'; +import { createSession, ingest } from '../../dist/index.js'; + +const out = process.argv[2]; +if (!out || !out.startsWith('/')) { + throw new Error('usage: node test/fixtures/make_cell_zero_imaginary_core.mjs '); +} +mkdirSync(out, { recursive: true }); +for (const format of ['binary', 'text']) { + const file = `cell_zero_imaginary_${format}.sldd`; + const u8 = new Uint8Array(readFileSync(new URL(`./${file}`, import.meta.url))); + const session = createSession(); + const root = ingest(session, u8.buffer.slice(u8.byteOffset, u8.byteOffset + u8.byteLength), { filename: file }); + const entry = (name) => root.getSection('design').children.find((e) => e.name === name); + for (const name of ['cZero', 'cZeroNeg', 'cZeroNest']) { + const five = entry(name).children[1]; + session.setActive(root, five); + if (session.editProperty(five.id, 'Value', '6') !== true) { + throw new Error(`${file}: ${name}'s 5 was not set to 6`); + } + } + const control = entry('cTwoI'); + session.setActive(root, control); + if (session.editProperty(control.id, 'Value', '{1+2i, 6}') !== true) { + throw new Error(`${file}: cTwoI's literal was not set`); + } + const saved = session.serializeSource(root.name); + const target = join(out, `cell_zero_imaginary_core_${format}.sldd`); + writeFileSync(target, saved.kind === 'text' ? saved.text : saved.bytes); + console.log('WROTE', target); +} diff --git a/test/parity/matlab/m9_merged_saves.truth.json b/test/parity/matlab/m9_merged_saves.truth.json index eae0a4fd..21c8b78b 100644 --- a/test/parity/matlab/m9_merged_saves.truth.json +++ b/test/parity/matlab/m9_merged_saves.truth.json @@ -31,6 +31,20 @@ "entries": 15, "notSelfEqual": [] }, + { + "file": "orig_cell_zero_imaginary_binary.sldd", + "opened": true, + "warnings": [], + "entries": 4, + "notSelfEqual": [] + }, + { + "file": "orig_cell_zero_imaginary_binary_older.sldd", + "opened": true, + "warnings": [], + "entries": 4, + "notSelfEqual": [] + }, { "file": "orig_cellarr_binary.sldd", "opened": true, @@ -1372,6 +1386,98 @@ "error": "" } }, + { + "fixture": "fixtures/cell_zero_imaginary_binary.sldd", + "variant": "", + "original": "orig_cell_zero_imaginary_binary.sldd", + "file": "m9_cell_zero_imaginary_binary_1.sldd", + "section": "design", + "entry": "cTwoI", + "kind": "cell", + "path": "", + "edit": "rename", + "prop": "Name", + "value": "cTwoIM9", + "refused": "", + "save": { + "chunk": "bb36e841a0fae1e42d88caa7075364c67e8e67f501c137fdf266944bcef2c55e", + "parts": "624376b1b0e401a690deebee3437700375517252261fb4dc0c7434b22cc4e59d" + }, + "merged": false, + "untouched": [ + 3, + 3 + ], + "otherPartsKept": true, + "matlab": { + "opened": true, + "warnings": [], + "asExpected": true, + "asOriginal": true, + "edited": { + "class": "cell", + "same": true, + "sameAsMatlabEdit": true, + "absentOld": true, + "bySignature": false, + "why": "", + "whyMatlab": "" + }, + "unedited": { + "checked": 3, + "same": 3, + "bySignature": 0, + "differ": [] + }, + "error": "" + } + }, + { + "fixture": "fixtures/cell_zero_imaginary_binary.sldd", + "variant": "older save", + "original": "orig_cell_zero_imaginary_binary_older.sldd", + "file": "m9_cell_zero_imaginary_binary_older_1.sldd", + "section": "design", + "entry": "cZeroNest", + "kind": "cell", + "path": "", + "edit": "rename", + "prop": "Name", + "value": "cZeroNestM9", + "refused": "", + "save": { + "chunk": "d8031da10f36c59264e57bb4039d226626d2d5cacb8136f6a1a2e45833dcd383", + "parts": "624376b1b0e401a690deebee3437700375517252261fb4dc0c7434b22cc4e59d" + }, + "merged": true, + "untouched": [ + 3, + 3 + ], + "otherPartsKept": true, + "matlab": { + "opened": true, + "warnings": [], + "asExpected": true, + "asOriginal": true, + "edited": { + "class": "cell", + "same": true, + "sameAsMatlabEdit": true, + "absentOld": true, + "bySignature": false, + "why": "", + "whyMatlab": "" + }, + "unedited": { + "checked": 3, + "same": 3, + "bySignature": 0, + "differ": [] + }, + "error": "" + } + }, { "fixture": "fixtures/cellarr_binary.sldd", "variant": "", From 659b5bf94a2b37a6b00f9705a74247d788e39870 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Mon, 19 Oct 2026 04:19:18 -0400 Subject: [PATCH 2/6] Give a hand-edited Parameter its Dimensions and Complexity back on undo After an edit of a Simulink.Parameter's Value, its Dimensions and Complexity are set from the Value, as MATLAB sets them. The undo of an Add, a removal, an element edit or an edit of the Value row set them again from the restored Value. For a file MATLAB wrote that is what was read. A hand-edited file can hold a numeric Dimensions or a Complexity that disagrees with its Value (MATLAB refuses that state), and there the undo gave the Value's shape, not the file's: pRow with [1 5] for its three elements, cut to two and undone, came back [1 3] and was saved so. Those undos now hold the two as they were before the edit and put them back after the undone change is reported, as the undo of a Value typed on the Parameter already did. A node above an edited one says what it sets from it (BaseNode.childStructureRestorer, which only ParameterNode answers), and the undo closures of childEdit's Add and removal and of the session's property edit call it (childEdit.holdersRestorer). Redo sets them from the Value, as the edit did. test/parameterShapeUndoAsRead.test.ts drives the session on copies of complex_binary.sldd and typed_mcos.sldd with one tag changed, in both formats: each undo gives back the shape before it, the last one what was read, shown and saved; redo gives the edit's shape again. --- dist/core/DataModel.d.ts.map | 2 +- dist/core/DataModel.js | 7 + dist/core/DataModel.js.map | 2 +- dist/datamodel/node/BaseNode.d.ts | 1 + dist/datamodel/node/BaseNode.d.ts.map | 2 +- dist/datamodel/node/BaseNode.js | 8 + dist/datamodel/node/BaseNode.js.map | 2 +- dist/datamodel/node/childEdit.d.ts | 1 + dist/datamodel/node/childEdit.d.ts.map | 2 +- dist/datamodel/node/childEdit.js | 22 ++ dist/datamodel/node/childEdit.js.map | 2 +- dist/datamodel/node/data/ParameterNode.d.ts | 2 + .../node/data/ParameterNode.d.ts.map | 2 +- dist/datamodel/node/data/ParameterNode.js | 40 +++- dist/datamodel/node/data/ParameterNode.js.map | 2 +- src/core/DataModel.ts | 8 + src/datamodel/node/BaseNode.ts | 9 + src/datamodel/node/childEdit.ts | 23 +++ src/datamodel/node/data/ParameterNode.ts | 42 +++- src/datamodel/node/data/Simulink.Parameter.md | 9 +- test/parameterShapeUndoAsRead.test.ts | 192 ++++++++++++++++++ 21 files changed, 348 insertions(+), 32 deletions(-) create mode 100644 test/parameterShapeUndoAsRead.test.ts diff --git a/dist/core/DataModel.d.ts.map b/dist/core/DataModel.d.ts.map index 3a72051c..0f8730b8 100644 --- a/dist/core/DataModel.d.ts.map +++ b/dist/core/DataModel.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"DataModel.d.ts","sourceRoot":"","sources":["../../src/core/DataModel.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DataModel.d.ts","sourceRoot":"","sources":["../../src/core/DataModel.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/core/DataModel.js b/dist/core/DataModel.js index 612eff11..21683fea 100644 --- a/dist/core/DataModel.js +++ b/dist/core/DataModel.js @@ -20,6 +20,7 @@ import { maskDefining } from '../datamodel/maskScope.js'; import { normalizeRefNames } from '../datamodel/parser/SlddContent.js'; import RowCellPool from '../datamodel/node/RowCellPool.js'; import { propNamed } from '../datamodel/node/BaseNode.js'; +import { holdersRestorer } from '../datamodel/node/childEdit.js'; // The session's own vocabulary — what a caller passes in and what these functions hand // back — and the compiler that turns one of those types, FindNodesQuery, into the tests // findNodes runs. Both used to be written out in this file, above createSession; neither @@ -1616,6 +1617,11 @@ export function createSession(opts = {}) { // Unless the node can put the value back itself, which the undo then has it do: the text // it shows is not always its value (an empty's `[ ]` is a 0x0 double, whatever it was). const restore = propertyRestorer(node, propertyName); + // And what a node above it sets from it, put back after the undo has it set again from the + // value restored (childEdit.holdersRestorer): a Simulink.Parameter's Dimensions and Complexity, + // which an edit of its Value row or of an element sets from the Value, and which a hand-edited + // file holds otherwise. + const holders = holdersRestorer(node); const { result, indexed } = editInEntry(node, () => node.setProperty(propertyName, newValue)); if (result !== true) { return result || false; @@ -1640,6 +1646,7 @@ export function createSession(opts = {}) { else { node.setProperty(propertyName, priorValue); } + holders?.(); }); publish('node/edited', { source: 'undo', nodeId: node.id, kind }); if (kind === 'rename') { diff --git a/dist/core/DataModel.js.map b/dist/core/DataModel.js.map index 54a41a37..ff943285 100644 --- a/dist/core/DataModel.js.map +++ b/dist/core/DataModel.js.map @@ -1 +1 @@ -{"version":3,"file":"DataModel.js","sourceRoot":"","sources":["../../src/core/DataModel.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DataModel.js","sourceRoot":"","sources":["../../src/core/DataModel.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/BaseNode.d.ts b/dist/datamodel/node/BaseNode.d.ts index 96f16b09..afa3c07a 100644 --- a/dist/datamodel/node/BaseNode.d.ts +++ b/dist/datamodel/node/BaseNode.d.ts @@ -166,6 +166,7 @@ export default class BaseNode { get fixesChildNames(): boolean; get nameEditable(): boolean; childStructureChanged(_child: BaseNode): void; + childStructureRestorer(_child: BaseNode): (() => void) | null; canAddChild(): boolean; addChildNode(): BaseNode | null; addChild(child: BaseNode, index?: number): BaseNode; diff --git a/dist/datamodel/node/BaseNode.d.ts.map b/dist/datamodel/node/BaseNode.d.ts.map index e361fb4b..3351da2a 100644 --- a/dist/datamodel/node/BaseNode.d.ts.map +++ b/dist/datamodel/node/BaseNode.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../../src/datamodel/node/BaseNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../../src/datamodel/node/BaseNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/BaseNode.js b/dist/datamodel/node/BaseNode.js index 6317c353..e133961e 100644 --- a/dist/datamodel/node/BaseNode.js +++ b/dist/datamodel/node/BaseNode.js @@ -142,6 +142,14 @@ export default class BaseNode { // the value has something to expand into (see ParameterNode), so an edit two // levels down can add or remove that row. childStructureChanged(_child) { } + // What puts back, as it is now, what this node sets from `child` when told of a change to it + // (childStructureChanged), or null where it sets nothing. Asked before an edit at or under + // `child`, and called by the edit's undo once the undone change has been reported + // (childEdit.holdersRestorer): setting it again from the restored child need not give what it + // was. A Simulink.Parameter's Dimensions and Complexity are the one case (ParameterNode). + childStructureRestorer(_child) { + return null; + } canAddChild() { return false; } diff --git a/dist/datamodel/node/BaseNode.js.map b/dist/datamodel/node/BaseNode.js.map index 36469de4..c9476bb3 100644 --- a/dist/datamodel/node/BaseNode.js.map +++ b/dist/datamodel/node/BaseNode.js.map @@ -1 +1 @@ -{"version":3,"file":"BaseNode.js","sourceRoot":"","sources":["../../../src/datamodel/node/BaseNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"BaseNode.js","sourceRoot":"","sources":["../../../src/datamodel/node/BaseNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/childEdit.d.ts b/dist/datamodel/node/childEdit.d.ts index 4a5e6452..bd77e73e 100644 --- a/dist/datamodel/node/childEdit.d.ts +++ b/dist/datamodel/node/childEdit.d.ts @@ -8,6 +8,7 @@ export interface ChildEditableNode { removeChildNode(child: BaseNode): void; restoreChildNode(child: BaseNode, index: number): void; } +export declare function holdersRestorer(node: BaseNode): (() => void) | null; export interface ChildUndoRedo { undo: () => void; redo: () => void; diff --git a/dist/datamodel/node/childEdit.d.ts.map b/dist/datamodel/node/childEdit.d.ts.map index bf851976..b5c67161 100644 --- a/dist/datamodel/node/childEdit.d.ts.map +++ b/dist/datamodel/node/childEdit.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"childEdit.d.ts","sourceRoot":"","sources":["../../../src/datamodel/node/childEdit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAqB1C,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IAC9D,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,WAAW,IAAI,OAAO,CAAC;IACvB,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC;IACzB,cAAc,IAAI,OAAO,CAAC;IAC1B,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACxD;AAcD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,aAAa;IAChF,IAAI,EAAE,CAAC,CAAC;CACT;AAMD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAwBvG;AAKD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI,CAoBnG"} \ No newline at end of file +{"version":3,"file":"childEdit.d.ts","sourceRoot":"","sources":["../../../src/datamodel/node/childEdit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAqB1C,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IAC9D,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,WAAW,IAAI,OAAO,CAAC;IACvB,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC;IACzB,cAAc,IAAI,OAAO,CAAC;IAC1B,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACxD;AAoBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAWnE;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,aAAa;IAChF,IAAI,EAAE,CAAC,CAAC;CACT;AAMD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CA0BvG;AAKD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI,CAsBnG"} \ No newline at end of file diff --git a/dist/datamodel/node/childEdit.js b/dist/datamodel/node/childEdit.js index f2285011..29443c6a 100644 --- a/dist/datamodel/node/childEdit.js +++ b/dist/datamodel/node/childEdit.js @@ -10,6 +10,24 @@ function notifyParent(node) { node.parent?.childStructureChanged(node); } +// What puts back, as it is now, what every node above `node` sets from it (its +// childStructureRestorer), or null where none sets anything: held before an edit of `node` or +// of a node under it, and called by the edit's undo after the undone change is reported. The +// report sets it again from what the undo restored, and for a Simulink.Parameter that is the +// Value's shape, not the Dimensions and Complexity a hand-edited file held (ParameterNode). The +// edit's redo reports as the edit did, which sets it as the edit set it. +export function holdersRestorer(node) { + const restorers = []; + let child = node; + for (let holder = node.parent; holder; holder = holder.parent) { + const restore = holder.childStructureRestorer(child); + if (restore) { + restorers.push(restore); + } + child = holder; + } + return restorers.length === 0 ? null : () => restorers.forEach((restore) => restore()); +} // Add one child and return the closures that reverse and re-apply it, or null when // the node refuses. `redo` restores the SAME child node at its original index // rather than minting a fresh one, so a node reference held by the undo stack stays @@ -18,6 +36,7 @@ export function addChildUndoable(node) { if (!node.canAddChild()) { return null; } + const holders = holdersRestorer(node); const child = node.addChildNode(); // A second refusal, after the fact: a bus subclass that does not implement // _createElementNode accepts children in principle (canAddChild is @@ -32,6 +51,7 @@ export function addChildUndoable(node) { undo: () => { node.removeChildNode(child); notifyParent(node); + holders?.(); }, redo: () => { node.restoreChildNode(child, index); @@ -50,12 +70,14 @@ export function removeChildUndoable(node, child) { if (index < 0) { return null; } + const holders = holdersRestorer(node); node.removeChildNode(child); notifyParent(node); return { undo: () => { node.restoreChildNode(child, index); notifyParent(node); + holders?.(); }, redo: () => { node.removeChildNode(child); diff --git a/dist/datamodel/node/childEdit.js.map b/dist/datamodel/node/childEdit.js.map index 5c1cab30..d6b0c534 100644 --- a/dist/datamodel/node/childEdit.js.map +++ b/dist/datamodel/node/childEdit.js.map @@ -1 +1 @@ -{"version":3,"file":"childEdit.js","sourceRoot":"","sources":["../../../src/datamodel/node/childEdit.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAiCrC,kFAAkF;AAClF,oFAAoF;AACpF,kFAAkF;AAClF,oFAAoF;AACpF,sFAAsF;AACtF,oFAAoF;AACpF,mFAAmF;AACnF,6DAA6D;AAC7D,SAAS,YAAY,CAAC,IAAiC;IACrD,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,IAA2B,CAAC,CAAC;AAClE,CAAC;AAWD,mFAAmF;AACnF,8EAA8E;AAC9E,oFAAoF;AACpF,+CAA+C;AAC/C,MAAM,UAAU,gBAAgB,CAAqB,IAA0B;IAC7E,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAClC,2EAA2E;IAC3E,mEAAmE;IACnE,8DAA8D;IAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C,YAAY,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO;QACL,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,GAAG,EAAE;YACT,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,oFAAoF;AACpF,8DAA8D;AAC9D,MAAM,UAAU,mBAAmB,CAAC,IAAuB,EAAE,KAAgB;IAC3E,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5B,YAAY,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO;QACL,IAAI,EAAE,GAAG,EAAE;YACT,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC"} \ No newline at end of file +{"version":3,"file":"childEdit.js","sourceRoot":"","sources":["../../../src/datamodel/node/childEdit.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/data/ParameterNode.d.ts b/dist/datamodel/node/data/ParameterNode.d.ts index 38332269..f408ed8b 100644 --- a/dist/datamodel/node/data/ParameterNode.d.ts +++ b/dist/datamodel/node/data/ParameterNode.d.ts @@ -27,6 +27,8 @@ export default class ParameterNode extends DataNode { _adoptValueNode(rawValue: unknown, edited?: boolean): void; static _needsValueRow(valueNode: BaseNode): boolean; childStructureChanged(child: BaseNode): void; + childStructureRestorer(child: BaseNode): (() => void) | null; + _shapeRestorer(): () => void; _followValueShape(): void; _shapeFromValue(): { dims: number[]; diff --git a/dist/datamodel/node/data/ParameterNode.d.ts.map b/dist/datamodel/node/data/ParameterNode.d.ts.map index 341d6b10..779501e3 100644 --- a/dist/datamodel/node/data/ParameterNode.d.ts.map +++ b/dist/datamodel/node/data/ParameterNode.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ParameterNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/data/ParameterNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ParameterNode.d.ts","sourceRoot":"","sources":["../../../../src/datamodel/node/data/ParameterNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/datamodel/node/data/ParameterNode.js b/dist/datamodel/node/data/ParameterNode.js index fd105573..f7e264e2 100644 --- a/dist/datamodel/node/data/ParameterNode.js +++ b/dist/datamodel/node/data/ParameterNode.js @@ -303,6 +303,29 @@ export default class ParameterNode extends DataNode { } this._followValueShape(); } + // For the undo of an edit of the Value node or of a node under it, an Add, a removal or an + // element edit (childEdit.holdersRestorer): the Dimensions and Complexity as they are now, + // put back after the undone change is reported. That report sets them from the Value it + // restored (_followValueShape), which gives what was read for a file MATLAB wrote, where they + // are the Value's. A hand-edited file's need not be (MATLAB refuses that state): pRow with + // [1 5] for its three elements, cut to two and undone, came back [1 3] and was saved so. + childStructureRestorer(child) { + return child === this._valueNode ? this._shapeRestorer() : null; + } + // What puts back the Dimensions and Complexity as they are now, each the file holds. + _shapeRestorer() { + const sp = this.serial._properties; + const held = sp ? ['Dimensions', 'Complexity'].filter((key) => Object.prototype.hasOwnProperty.call(sp, key)) : []; + const shape = held.map((key) => [key, sp[key]]); + return () => { + const now = this.serial._properties; + if (now) { + for (const [key, value] of shape) { + now[key] = value; + } + } + }; + } // MATLAB keeps a Parameter's Dimensions and Complexity as its Value's: it refuses a numeric // Dimensions other than its size (UDDData_CannotSetCustomDimensions) and any Complexity set // (UDDData_CannotSetComplexity), and after an edit of the Value they are its size and its @@ -316,8 +339,10 @@ export default class ParameterNode extends DataNode { // - keeps both for an empty Value: [] typed over pRow leaves [1 3] and 'complex'; // - keeps the Complexity of a struct Value: [] and then a struct typed over pRow leaves // 'complex'. - // An undo puts back the Value, and these with it: an Add's or a removal's by this same - // rule, a Value typed in by what it held (_restorerFor). + // An undo puts back the Value, and these with it as they were before the edit, by what it + // held: a Value typed in (_restorerFor), and an Add, a removal or an edit of the Value row or + // of an element (childStructureRestorer). Set from the restored Value, a hand-edited file's + // came back as the Value's shape. _followValueShape() { const sp = this.serial._properties; const shape = sp ? this._shapeFromValue() : null; @@ -566,17 +591,10 @@ export default class ParameterNode extends DataNode { return null; } const restore = this._ownStateRestorer(RESTORE_LEAVES); - const sp = this.serial._properties; - const held = sp ? ['Dimensions', 'Complexity'].filter((key) => Object.prototype.hasOwnProperty.call(sp, key)) : []; - const shape = held.map((key) => [key, sp[key]]); + const shape = this._shapeRestorer(); return () => { restore(); - const now = this.serial._properties; - if (now) { - for (const [key, value] of shape) { - now[key] = value; - } - } + shape(); }; } _getSerializedProperties() { diff --git a/dist/datamodel/node/data/ParameterNode.js.map b/dist/datamodel/node/data/ParameterNode.js.map index 8893dfab..442061db 100644 --- a/dist/datamodel/node/data/ParameterNode.js.map +++ b/dist/datamodel/node/data/ParameterNode.js.map @@ -1 +1 @@ -{"version":3,"file":"ParameterNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/data/ParameterNode.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,QAAQ,EAAE,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAI1D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3G,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAChD,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,iBAAiB,EAAE,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,2FAA2F;AAC3F,4FAA4F;AAC5F,4FAA4F;AAC5F,yBAAyB;AACzB,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAE1G,6FAA6F;AAC7F,gGAAgG;AAChG,iGAAiG;AACjG,4FAA4F;AAC5F,wFAAwF;AAExF,2DAA2D;AAC3D,MAAM,mBAAmB,GACrB,kLAAkL,CAAC;AACvL,4FAA4F;AAC5F,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;AAC/D,mGAAmG;AACnG,MAAM,4BAA4B,GAC9B,kGAAkG,CAAC;AAEvG,gGAAgG;AAChG,+FAA+F;AAC/F,+EAA+E;AAC/E,SAAS,cAAc,CAAC,MAAmB;IACvC,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,IAAK,MAAM,CAAC,KAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAChH,CAAC;AAED,kGAAkG;AAClG,gGAAgG;AAChG,SAAS,cAAc,CAAC,MAAmB;IACvC,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,QAAQ;IAY/C,YAAY,IAAY,EAAE,MAAuB,EAAE,KAA8B,EAAE,MAA+B;QAC9G,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,4EAA4E;QAC5E,0EAA0E;QAC1E,0EAA0E;QAC1E,4EAA4E;QAC5E,4EAA4E;QAC5E,qEAAqE;QACrE,IAAI,CAAC,QAAQ,GAAI,KAAK,CAAC,QAAmB,IAAI,MAAM,CAAC;QACrD,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,GAAI,KAAK,CAAC,QAAmB,IAAK,KAAK,CAAC,IAAe,IAAI,EAAE,CAAC;QACvE,IAAI,CAAC,WAAW,GAAI,KAAK,CAAC,WAAsB,IAAI,EAAE,CAAC;IAC3D,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;IAC5D,CAAC;IAED,8EAA8E;IAC9E,iFAAiF;IACjF,wEAAwE;IACxE,qEAAqE;IACrE,yEAAyE;IACzE,iFAAiF;IACjF,iFAAiF;IACjF,eAAe;IACf,IAAI,SAAS;QACT,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAA8C,CAAC;QACvE,OAAO,CAAC,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC;IAC1D,CAAC;IAED,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,8DAA8D;IAC9D,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,YAAY;QACZ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QACxC,CAAC;QACD,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,4FAA4F;IAC5F,8FAA8F;IAC9F,4FAA4F;IAC5F,6CAA6C;IAC7C,IAAI,aAAa;QACb,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,0GAA0G;QAC1G,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,oEAAoE;QACpE,0FAA0F;QAC1F,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC;IAED,8FAA8F;IAC9F,oEAAoE;IACpE,IAAI,mBAAmB;QACnB,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,KAAK,CAAC,mBAAmB,CAAC;IACjE,CAAC;IAED,WAAW,CAAC,YAAuB;QAC/B,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,+FAA+F;IAC/F,8FAA8F;IAC9F,6FAA6F;IAC7F,YAAY;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC;QAC5C,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;IACvF,CAAC;IAED,2FAA2F;IAC3F,sFAAsF;IACtF,iFAAiF;IACjF,kBAAkB,CAAC,WAAmB;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAuC,CAAC;QAC/D,OAAO,OAAO,SAAS,EAAE,iBAAiB,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChH,CAAC;IAED,yFAAyF;IACzF,sFAAsF;IACtF,yFAAyF;IACzF,4FAA4F;IAC5F,4FAA4F;IAC5F,wFAAwF;IACxF,yFAAyF;IACzF,EAAE;IACF,wFAAwF;IACxF,mFAAmF;IACnF,EAAE;IACF,yFAAyF;IACzF,6FAA6F;IAC7F,iBAAiB,CAAC,IAAwB,EAAE,MAAmB,EAAE,WAAmB;QAChF,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACxH,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,CAAC;QACD,yFAAyF;QACzF,wFAAwF;QACxF,IAAI,KAAK,GAAoB,IAAI,CAAC;QAClC,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACzC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;YAC3E,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,0FAA0F;IAC1F,+FAA+F;IAC/F,2FAA2F;IAC3F,8FAA8F;IAC9F,EAAE;IACF,yFAAyF;IACzF,2FAA2F;IAC3F,2CAA2C;IAC3C,yFAAyF;IACzF,uFAAuF;IACvF,kDAAkD;IAClD,4FAA4F;IAC5F,gDAAgD;IAChD,EAAE;IACF,4FAA4F;IAC5F,6FAA6F;IAC7F,sFAAsF;IACtF,gEAAgE;IAChE,qBAAqB,CAAC,SAAmB,EAAE,EAAoB;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,oFAAoF;QACpF,2FAA2F;QAC3F,IAAI,KAAK,GAAoB,SAAS,CAAC;QACvC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC;YAClF,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QACxC,0FAA0F;QAC1F,wFAAwF;QACxF,oCAAoC;QACpC,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QAC5D,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;YACxE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAChF,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,6EAA6E;IAC7E,8EAA8E;IAC9E,6EAA6E;IAC7E,+EAA+E;IAC/E,uEAAuE;IACvE,EAAE;IACF,8EAA8E;IAC9E,qEAAqE;IACrE,yEAAyE;IACzE,4EAA4E;IAC5E,6EAA6E;IAC7E,kEAAkE;IAClE,EAAE;IACF,+EAA+E;IAC/E,6EAA6E;IAC7E,4EAA4E;IAC5E,kEAAkE;IAClE,EAAE;IACF,4EAA4E;IAC5E,yEAAyE;IACzE,qEAAqE;IACrE,kFAAkF;IAClF,6EAA6E;IAC7E,gFAAgF;IAChF,iFAAiF;IACjF,iFAAiF;IACjF,iFAAiF;IACjF,YAAY;IACZ,EAAE;IACF,0EAA0E;IAC1E,4DAA4D;IAC5D,kFAAkF;IAClF,EAAE;IACF,8EAA8E;IAC9E,iFAAiF;IACjF,8EAA8E;IAC9E,+EAA+E;IAC/E,uCAAuC;IACvC,eAAe,CAAC,QAAiB,EAAE,MAAgB;QAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAa,CAAC;QAC/E,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,MAAM,EAAE,CAAC;YACT,SAAS,CAAC,aAAa,EAAE,CAAC;QAC9B,CAAC;QACD,IAAI,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,oFAAoF;IACpF,wFAAwF;IACxF,qFAAqF;IACrF,MAAM,CAAC,cAAc,CAAC,SAAmB;QACrC,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,gFAAgF;IAChF,iFAAiF;IACjF,kFAAkF;IAClF,kFAAkF;IAClF,8EAA8E;IAC9E,EAAE;IACF,yFAAyF;IACzF,0FAA0F;IAC1F,wDAAwD;IACxD,qBAAqB,CAAC,KAAe;QACjC,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QACD,IAAI,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,4EAA4E;YAC5E,4EAA4E;YAC5E,mCAAmC;YACnC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED,4FAA4F;IAC5F,4FAA4F;IAC5F,0FAA0F;IAC1F,2FAA2F;IAC3F,wFAAwF;IACxF,sCAAsC;IACtC,yFAAyF;IACzF,yFAAyF;IACzF,4FAA4F;IAC5F,6CAA6C;IAC7C,oFAAoF;IACpF,0FAA0F;IAC1F,iBAAiB;IACjB,uFAAuF;IACvF,yDAAyD;IACzD,iBAAiB;QACb,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAkD,CAAC;QAC1E,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO;QACX,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACvH,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7D,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;QAC/B,CAAC;QACD,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,EAAE,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;YACvF,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACrC,CAAC;IACL,CAAC;IAED,oEAAoE;IACpE,0FAA0F;IAC1F,0FAA0F;IAC1F,kFAAkF;IAClF,eAAe;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,UAAqF,CAAC;QAC7G,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,iFAAiF;YACjF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gBACxF,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAChD,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC;QAC5C,MAAM,UAAU,GACZ,SAAS,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAChI,OAAO,EAAE,IAAI,EAAG,IAAiB,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC;IAC5D,CAAC;IAED,gFAAgF;IAChF,qFAAqF;IACrF,sFAAsF;IACtF,sFAAsF;IACtF,sFAAsF;IACtF,0EAA0E;IAC1E,IAAI,mBAAmB;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,aAAa;QACT,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9H,CAAC;IAED,6EAA6E;IAC7E,oEAAoE;IAEpE,WAAW,CAAC,QAAgB,EAAE,WAAmB;QAC7C,0EAA0E;QAC1E,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,mGAAmG;QACnG,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACtE,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,cAAc,CAAC;QAC1B,CAAC;QACD,0HAA0H;QAC1H,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACvE,IAAI,aAAa,EAAE,CAAC;YAChB,OAAO,aAAa,CAAC;QACzB,CAAC;QACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,aAAa,EAAE,CAAC;gBAChB,OAAO,aAAa,CAAC;YACzB,CAAC;YACD,iFAAiF;YACjF,wFAAwF;YACxF,uFAAuF;YACvF,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,UAAW,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACP,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,2BAA2B,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1H,CAAC;YACD,yEAAyE;YACzE,2EAA2E;YAC3E,+EAA+E;YAC/E,wEAAwE;YACxE,2EAA2E;YAC3E,4EAA4E;YAC5E,sCAAsC;YACtC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,yEAAyE;YACzE,0EAA0E;YAC1E,qEAAqE;YACrE,wEAAwE;YACxE,0EAA0E;YAC1E,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClH,CAAC;YACD,6EAA6E;YAC7E,4EAA4E;YAC5E,6EAA6E;YAC7E,2EAA2E;YAC3E,+EAA+E;YAC/E,+EAA+E;YAC/E,iDAAiD;YACjD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAkB,CAAC;gBACtC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnB,mEAAmE;oBACnE,wEAAwE;oBACxE,sEAAsE;oBACtE,cAAc;oBACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACJ,sEAAsE;oBACtE,uEAAuE;oBACvE,qEAAqE;oBACrE,mDAAmD;oBACnD,IAAI,CAAC,eAAe,CAChB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAK,EAAE,SAAS,CAAC,EAAE,EAC9E,IAAI,CACP,CAAC;oBACF,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;gBACrB,CAAC;gBACD,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,uEAAuE;YACvE,+EAA+E;YAC/E,8EAA8E;YAC9E,+EAA+E;YAC/E,gFAAgF;YAChF,gFAAgF;YAChF,mDAAmD;YACnD,EAAE;YACF,6EAA6E;YAC7E,4EAA4E;YAC5E,4EAA4E;YAC5E,2EAA2E;YAC3E,gFAAgF;YAChF,8EAA8E;YAC9E,oEAAoE;YACpE,EAAE;YACF,0EAA0E;YAC1E,4EAA4E;YAC5E,uEAAuE;YACvE,4EAA4E;YAC5E,yEAAyE;YACzE,8EAA8E;YAC9E,4EAA4E;YAC5E,4BAA4B;YAC5B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC3C,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC9F,IAAI,QAAiB,CAAC;gBACtB,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBACjC,QAAQ,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC5F,CAAC;qBAAM,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;oBAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC5B,MAAM,IAAI,GAAa,EAAE,CAAC;wBAC1B,kEAAkE;wBAClE,oEAAoE;wBACpE,iEAAiE;wBACjE,8DAA8D;wBAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;4BAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAE,MAAM,CAAC,KAAkB,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBAAC,CAAC;wBACxG,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;oBAC9C,CAAC;oBACD,QAAQ,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvG,CAAC;qBAAM,CAAC;oBACJ,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;gBACrE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,2EAA2E;YAC3E,4EAA4E;YAC5E,wEAAwE;YACxE,2EAA2E;YAC3E,+DAA+D;YAC/D,4EAA4E;YAC5E,uEAAuE;YACvE,0EAA0E;YAC1E,4EAA4E;YAC5E,0EAA0E;YAC1E,2EAA2E;YAC3E,oEAAoE;YACpE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC;IAED,6FAA6F;IAC7F,yFAAyF;IACzF,qBAAqB;IACrB,EAAE;IACF,wFAAwF;IACxF,uFAAuF;IACvF,6FAA6F;IAC7F,0FAA0F;IAC1F,yFAAyF;IACzF,wFAAwF;IACxF,6DAA6D;IAC7D,8FAA8F;IAC9F,8FAA8F;IAC9F,4FAA4F;IAC5F,qFAAqF;IACrF,EAAE;IACF,wFAAwF;IACxF,gDAAgD;IAChD,EAAE;IACF,4FAA4F;IAC5F,2FAA2F;IAC3F,qEAAqE;IACrE,YAAY,CAAC,QAAgB;QACzB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACvD,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAkD,CAAC;QAC1E,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAE,CAAC,YAAY,EAAE,YAAY,CAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9H,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAG,CAAC,GAAG,CAAC,CAAU,CAAC,CAAC;QAC1D,OAAO,GAAG,EAAE;YACR,OAAO,EAAE,CAAC;YACV,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAkD,CAAC;YAC3E,IAAI,GAAG,EAAE,CAAC;gBACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;oBAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrB,CAAC;YACL,CAAC;QACL,CAAC,CAAC;IACN,CAAC;IAED,wBAAwB;QACpB,IAAI,UAAmB,CAAC;QACxB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;QAClD,CAAC;aAAM,CAAC;YACJ,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,CAAC;QACD,kFAAkF;QAClF,gFAAgF;QAChF,kFAAkF;QAClF,kFAAkF;QAClF,+EAA+E;QAC/E,6EAA6E;QAC7E,gFAAgF;QAChF,wDAAwD;QACxD,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAsC,CAAC;QAC9D,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACxB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;QAAC,CAAC;QAC3D,6EAA6E;QAC7E,8EAA8E;QAC9E,yEAAyE;QACzE,gFAAgF;QAChF,gFAAgF;QAChF,iFAAiF;QACjF,iFAAiF;QACjF,iFAAiF;QACjF,iFAAiF;QACjF,IAAI,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACxC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,CAAC;QACD,IAAI,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACxC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,CAAC;QACD,IAAI,UAAU,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAAC,CAAC;QAClE,IAAI,aAAa,IAAI,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAAC,CAAC;QACtF,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,cAAc;QACV,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACnB,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,yFAAyF;QACzF,2EAA2E;QAC3E,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC1B,OAAO,EAAE,GAAI,IAAI,CAAC,MAAM,CAAC,OAAmC,EAAE,CAAC;QACnE,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,EAAE,GAAI,IAAI,CAAC,MAAM,CAAC,OAAmC,EAAE,CAAC;QACvE,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,GAAK,MAAM,CAAC,SAAuB,CAAC,CAAC,CAA6B,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAChH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,YAAY,CAAC,OAAe,EAAE,KAAyC,EAAE,MAAc;QACnF,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACnB,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC,2BAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,KAAK,WAAW,KAAa,OAAO,OAAO,CAAC,CAAC,CAAC;IAEpD,4FAA4F;IAC5F,yFAAyF;IACzF,6FAA6F;IAC7F,iFAAiF;IACjF,gFAAgF;IAChF,4FAA4F;IAC5F,6FAA6F;IAC7F,0DAA0D;IAC1D,EAAE;IACF,oFAAoF;IACpF,4FAA4F;IAC5F,2FAA2F;IAC3F,uFAAuF;IACvF,0FAA0F;IAC1F,MAAM,CAAC,aAAa,CAAC,IAAY,EAAE,MAAuB;QACtD,MAAM,MAAM,GAAG,kBAAkB,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACvK,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAA6B,CAAC,CAAC;IACtH,CAAC;IAED,sFAAsF;IACtF,uFAAuF;IACvF,mFAAmF;IAEnF,MAAM,CAAC,KAAK,CAAC,MAA+B,EAAE,IAAY,EAAE,MAAuB;QAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,IAAK,MAAM,CAAC,SAAuB,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,IAAK,IAAgC,CAAC,WAAW,CAAC,IAAI,EAAE,CAA4B,CAAC;QACzG,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAiC,CAAC,CAAC;QACvF,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAK,KAAK,CAAC,KAAmB,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7H,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"ParameterNode.js","sourceRoot":"","sources":["../../../../src/datamodel/node/data/ParameterNode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/core/DataModel.ts b/src/core/DataModel.ts index 05ef2e80..1b9e9ce4 100644 --- a/src/core/DataModel.ts +++ b/src/core/DataModel.ts @@ -30,6 +30,8 @@ import type { ParseWarning } from '../datamodel/parser/ParseWarning.js'; import type { RowData, UsageResolver, TypeLinkResolver } from '../datamodel/node/BaseNode.js'; import RowCellPool from '../datamodel/node/RowCellPool.js'; import { propNamed } from '../datamodel/node/BaseNode.js'; +import type BaseNode from '../datamodel/node/BaseNode.js'; +import { holdersRestorer } from '../datamodel/node/childEdit.js'; // The session's own vocabulary — what a caller passes in and what these functions hand // back — and the compiler that turns one of those types, FindNodesQuery, into the tests @@ -1750,6 +1752,11 @@ function editProperty( // Unless the node can put the value back itself, which the undo then has it do: the text // it shows is not always its value (an empty's `[ ]` is a 0x0 double, whatever it was). const restore = propertyRestorer(node, propertyName); + // And what a node above it sets from it, put back after the undo has it set again from the + // value restored (childEdit.holdersRestorer): a Simulink.Parameter's Dimensions and Complexity, + // which an edit of its Value row or of an element sets from the Value, and which a hand-edited + // file holds otherwise. + const holders = holdersRestorer(node as unknown as BaseNode); const { result, indexed } = editInEntry(node, () => node.setProperty!(propertyName, newValue)); if (result !== true) { @@ -1775,6 +1782,7 @@ function editProperty( } else { node.setProperty!(propertyName, priorValue); } + holders?.(); }); publish('node/edited', { source: 'undo', nodeId: node.id, kind }); if (kind === 'rename') { diff --git a/src/datamodel/node/BaseNode.ts b/src/datamodel/node/BaseNode.ts index 3588888e..2df2cbf1 100644 --- a/src/datamodel/node/BaseNode.ts +++ b/src/datamodel/node/BaseNode.ts @@ -331,6 +331,15 @@ export default class BaseNode { // levels down can add or remove that row. childStructureChanged(_child: BaseNode): void {} + // What puts back, as it is now, what this node sets from `child` when told of a change to it + // (childStructureChanged), or null where it sets nothing. Asked before an edit at or under + // `child`, and called by the edit's undo once the undone change has been reported + // (childEdit.holdersRestorer): setting it again from the restored child need not give what it + // was. A Simulink.Parameter's Dimensions and Complexity are the one case (ParameterNode). + childStructureRestorer(_child: BaseNode): (() => void) | null { + return null; + } + canAddChild(): boolean { return false; } diff --git a/src/datamodel/node/childEdit.ts b/src/datamodel/node/childEdit.ts index 8d9879cf..53a94d76 100644 --- a/src/datamodel/node/childEdit.ts +++ b/src/datamodel/node/childEdit.ts @@ -43,6 +43,25 @@ function notifyParent(node: ChildEditableNode): void { node.parent?.childStructureChanged(node as unknown as BaseNode); } +// What puts back, as it is now, what every node above `node` sets from it (its +// childStructureRestorer), or null where none sets anything: held before an edit of `node` or +// of a node under it, and called by the edit's undo after the undone change is reported. The +// report sets it again from what the undo restored, and for a Simulink.Parameter that is the +// Value's shape, not the Dimensions and Complexity a hand-edited file held (ParameterNode). The +// edit's redo reports as the edit did, which sets it as the edit set it. +export function holdersRestorer(node: BaseNode): (() => void) | null { + const restorers: (() => void)[] = []; + let child = node; + for (let holder = node.parent; holder; holder = holder.parent) { + const restore = holder.childStructureRestorer(child); + if (restore) { + restorers.push(restore); + } + child = holder; + } + return restorers.length === 0 ? null : () => restorers.forEach((restore) => restore()); +} + export interface ChildUndoRedo { undo: () => void; redo: () => void; @@ -60,6 +79,7 @@ export function addChildUndoable(node: ChildEditableNode) if (!node.canAddChild()) { return null; } + const holders = holdersRestorer(node as unknown as BaseNode); const child = node.addChildNode(); // A second refusal, after the fact: a bus subclass that does not implement // _createElementNode accepts children in principle (canAddChild is @@ -74,6 +94,7 @@ export function addChildUndoable(node: ChildEditableNode) undo: () => { node.removeChildNode(child); notifyParent(node); + holders?.(); }, redo: () => { node.restoreChildNode(child, index); @@ -93,12 +114,14 @@ export function removeChildUndoable(node: ChildEditableNode, child?: BaseNode): if (index < 0) { return null; } + const holders = holdersRestorer(node as unknown as BaseNode); node.removeChildNode(child); notifyParent(node); return { undo: () => { node.restoreChildNode(child, index); notifyParent(node); + holders?.(); }, redo: () => { node.removeChildNode(child); diff --git a/src/datamodel/node/data/ParameterNode.ts b/src/datamodel/node/data/ParameterNode.ts index d3a63649..be685d91 100644 --- a/src/datamodel/node/data/ParameterNode.ts +++ b/src/datamodel/node/data/ParameterNode.ts @@ -343,6 +343,31 @@ export default class ParameterNode extends DataNode { this._followValueShape(); } + // For the undo of an edit of the Value node or of a node under it, an Add, a removal or an + // element edit (childEdit.holdersRestorer): the Dimensions and Complexity as they are now, + // put back after the undone change is reported. That report sets them from the Value it + // restored (_followValueShape), which gives what was read for a file MATLAB wrote, where they + // are the Value's. A hand-edited file's need not be (MATLAB refuses that state): pRow with + // [1 5] for its three elements, cut to two and undone, came back [1 3] and was saved so. + childStructureRestorer(child: BaseNode): (() => void) | null { + return child === this._valueNode ? this._shapeRestorer() : null; + } + + // What puts back the Dimensions and Complexity as they are now, each the file holds. + _shapeRestorer(): () => void { + const sp = this.serial._properties as Record | undefined; + const held = sp ? (['Dimensions', 'Complexity'] as const).filter((key) => Object.prototype.hasOwnProperty.call(sp, key)) : []; + const shape = held.map((key) => [key, sp![key]] as const); + return () => { + const now = this.serial._properties as Record | undefined; + if (now) { + for (const [key, value] of shape) { + now[key] = value; + } + } + }; + } + // MATLAB keeps a Parameter's Dimensions and Complexity as its Value's: it refuses a numeric // Dimensions other than its size (UDDData_CannotSetCustomDimensions) and any Complexity set // (UDDData_CannotSetComplexity), and after an edit of the Value they are its size and its @@ -356,8 +381,10 @@ export default class ParameterNode extends DataNode { // - keeps both for an empty Value: [] typed over pRow leaves [1 3] and 'complex'; // - keeps the Complexity of a struct Value: [] and then a struct typed over pRow leaves // 'complex'. - // An undo puts back the Value, and these with it: an Add's or a removal's by this same - // rule, a Value typed in by what it held (_restorerFor). + // An undo puts back the Value, and these with it as they were before the edit, by what it + // held: a Value typed in (_restorerFor), and an Add, a removal or an edit of the Value row or + // of an element (childStructureRestorer). Set from the restored Value, a hand-edited file's + // came back as the Value's shape. _followValueShape(): void { const sp = this.serial._properties as Record | undefined; const shape = sp ? this._shapeFromValue() : null; @@ -611,17 +638,10 @@ export default class ParameterNode extends DataNode { return null; } const restore = this._ownStateRestorer(RESTORE_LEAVES); - const sp = this.serial._properties as Record | undefined; - const held = sp ? (['Dimensions', 'Complexity'] as const).filter((key) => Object.prototype.hasOwnProperty.call(sp, key)) : []; - const shape = held.map((key) => [key, sp![key]] as const); + const shape = this._shapeRestorer(); return () => { restore(); - const now = this.serial._properties as Record | undefined; - if (now) { - for (const [key, value] of shape) { - now[key] = value; - } - } + shape(); }; } diff --git a/src/datamodel/node/data/Simulink.Parameter.md b/src/datamodel/node/data/Simulink.Parameter.md index 6b9b6d5f..ea96fdda 100644 --- a/src/datamodel/node/data/Simulink.Parameter.md +++ b/src/datamodel/node/data/Simulink.Parameter.md @@ -152,8 +152,13 @@ Exceptions: `ParameterNode._followValueShape` sets both from the Value after every edit: an Add, a removal, a Value typed on the Parameter, on its Value row or on one of its elements, and the undo or redo -of each. Each is set only where the file holds it. The undo of a Value typed in puts back what -the two held (`_restorerFor`). Test: `test/parameterShape.test.ts`. +of each. Each is set only where the file holds it. The undo of each edit then puts back what +the two held before it: for a Value typed in, `_restorerFor`; for an Add, a removal or an edit of +the Value row or of an element, `childStructureRestorer`, which the undo calls through +`childEdit.holdersRestorer`. For a file MATLAB wrote that is the restored Value's shape. A +hand-edited file can hold another (MATLAB refuses that state), and its undo gives back what was +read: pRow with `[1 5]` for its three elements, cut to two and undone, is `[1 5]` again, where it +came back as `[1 3]`. Tests: `test/parameterShape.test.ts`, `test/parameterShapeUndoAsRead.test.ts`. ## Allowed values (enums / comboboxes) diff --git a/test/parameterShapeUndoAsRead.test.ts b/test/parameterShapeUndoAsRead.test.ts new file mode 100644 index 00000000..9114f42c --- /dev/null +++ b/test/parameterShapeUndoAsRead.test.ts @@ -0,0 +1,192 @@ +// Copyright 2026 The MathWorks, Inc. +// +// The undo of an edit of a Simulink.Parameter's Value gives back the Dimensions and Complexity the +// Parameter held before it, as the file holds them, also where they disagree with its Value (B-37). +// +// After every edit of the Value they are set from it, as MATLAB sets them (B-25, +// test/parameterShape.test.ts). MATLAB refuses a numeric Dimensions other than its Value's size +// and any Complexity set, so a file MATLAB writes holds the Value's shape, and setting it again +// from the restored Value gives what was read. A hand-edited file need not: here pRow, a complex +// [1+2i 3+4i 5+6i], says [1 5], or 'real'. The undo of an Add, a removal or an element edit set +// the shape again from the restored Value, so it gave [1 3] and 'complex', and saved them: an undo +// that did not give what was read (theme 1; B-25's own row, "undo gives what was read"). The +// undo of a Value typed on the Parameter already put back both as they were (_restorerFor). +// +// The edits are made through the session as a host makes them (applyStep), on copies made here +// of the repo fixtures with one tag of the entry changed. +import { describe, it, expect } from 'vitest'; +import { readFileSync } from 'node:fs'; +import { strFromU8, strToU8, unzipSync, zipSync } from 'fflate'; +import { fileURLToPath } from 'node:url'; +import { createSession, ingest } from '../src/index.js'; +import '../src/datamodel/node/data/NodeClassMap.js'; +import { applyStep } from './parity/matlab/parameter_shape.mjs'; + +const here = (rel: string): string => fileURLToPath(new URL(rel, import.meta.url)); +const arrayBuffer = (u8: Uint8Array): ArrayBuffer => u8.buffer.slice(u8.byteOffset, u8.byteOffset + u8.byteLength) as ArrayBuffer; + +// The plan's steps (parameter_shape.mjs), and one more: ['row', text] sets the Value row's own +// Value, the value node under the Parameter, as a host does when that row is edited. +type Step = ['cut', number] | ['add'] | ['element', number, string] | ['typed', string] | ['row', string]; +type Shape = [unknown, unknown]; + +const entryOf = (root: any, name: string): any => root.getSection('design').children.find((e: any) => e.name === name); + +function apply(session: any, root: any, name: string, step: Step): void { + if (step[0] !== 'row') { + applyStep(session, root, name, step); + return; + } + const value = entryOf(root, name)._valueNode; + session.setActive(root, value); + if (session.editProperty(value.id, 'Value', step[1]) !== true) { + throw new Error(`${name}: ${JSON.stringify(step)} was refused`); + } +} + +const cellOf = (cell: unknown): string => + cell !== null && typeof cell === 'object' ? String((cell as { text: unknown }).text) : String(cell ?? ''); +const dimsText = (dims: unknown): string => (Array.isArray(dims) ? `[${dims.join(' ')}]` : String(dims)); + +/** The entry's [Dimensions, Complexity] as its save writes them, and as its row shows them. */ +function shapeOf(entry: any): { saved: Shape; rows: string[] } { + const props = entry.serializeValue()._elements[0]._properties; + const row = entry.toRow(); + return { saved: [props.Dimensions, props.Complexity], rows: [cellOf(row.dimensions), cellOf(row.complexity)] }; +} +const shown = (shape: Shape) => ({ saved: shape, rows: [dimsText(shape[0]), String(shape[1])] }); + +/** complex_binary.sldd with, in `entry`'s object, the tag `from` replaced by `to`. */ +function binaryCopy(entry: string, from: string, to: string): ArrayBuffer { + const parts = unzipSync(new Uint8Array(readFileSync(here('./fixtures/mcos/complex_binary.sldd')))); + const xml = strFromU8(parts['data/chunk0.xml']); + const at = xml.indexOf(`

${entry}

`); + const end = xml.indexOf('
', at); + const tag = xml.indexOf(from, at); + if (at < 0 || tag < 0 || tag > end) { + throw new Error(`complex_binary.sldd: no ${from} in ${entry}`); + } + parts['data/chunk0.xml'] = strToU8(xml.slice(0, tag) + to + xml.slice(tag + from.length)); + return arrayBuffer(zipSync(parts)); +} + +const textEntries = (doc: any): any[] => doc.__MW_TEXT_PARTS__['__MW_TEXT_PART__/data/chunk0'].__MW_TEXT_content.entries; + +/** typed_mcos.sldd with pDoubleRow's `key` set to `value`. */ +function textCopy(key: 'Dimensions' | 'Complexity', value: unknown): ArrayBuffer { + const doc = JSON.parse(readFileSync(here('./fixtures/mcos/typed_mcos.sldd'), 'utf8')); + textEntries(doc).find((x) => x.name === 'pDoubleRow').value._elements[0]._properties[key] = value; + return arrayBuffer(strToU8(JSON.stringify(doc, null, '\t'))); +} + +/** The entry `name`'s [Dimensions, Complexity] as the session's save of `root` writes them, read from its bytes. */ +function savedShape(session: any, root: any, name: string): Shape { + const out = session.serializeSource(root.name); + if (out.kind === 'text') { + const props = textEntries(JSON.parse(out.text)).find((x) => x.name === name).value._elements[0]._properties; + return [props.Dimensions, props.Complexity]; + } + const back: any = ingest(createSession(), arrayBuffer(out.bytes), { filename: root.name }); + return shapeOf(entryOf(back, name)).saved; +} + +interface Case { + label: string; + steps: Step[]; + after: Shape; +} + +/** + * Open `bytes`, check that `name` reads as `asRead`, make the steps, check the Value's shape + * `after`, then undo them one by one: each undo gives the shape the one before it left, the last + * one what was read, shown, held and saved. Redone, they give the same shapes again. + */ +function undoesToAsRead(file: string, bytes: ArrayBuffer, name: string, asRead: Shape, c: Case): void { + const session = createSession(); + const root: any = ingest(session, bytes, { filename: file }); + expect(shapeOf(entryOf(root, name)), 'as read').toEqual(shown(asRead)); + expect(savedShape(session, root, name), 'as read, saved').toEqual(asRead); + const before: { saved: Shape; rows: string[] }[] = []; + for (const step of c.steps) { + before.push(shapeOf(entryOf(root, name))); + apply(session, root, name, step); + } + const edited = shapeOf(entryOf(root, name)); + expect(edited, 'after the edit').toEqual(shown(c.after)); + session.setActive(root, entryOf(root, name)); + for (let k = c.steps.length - 1; k >= 0; k--) { + session.undo(); + expect(shapeOf(entryOf(root, name)), `undo of ${JSON.stringify(c.steps[k])}`).toEqual(before[k]); + } + expect(shapeOf(entryOf(root, name)), 'every edit undone').toEqual(shown(asRead)); + expect(savedShape(session, root, name), 'every edit undone, saved').toEqual(asRead); + for (let k = 0; k < c.steps.length; k++) { + session.redo(); + } + expect(shapeOf(entryOf(root, name)), 'redone').toEqual(edited); + expect(savedShape(session, root, name), 'redone, saved').toEqual(c.after); +} + +// pRow's Value is the complex row [1+2i 3+4i 5+6i]: what each edit leaves is the Value's shape. +const binaryCases: Case[] = [ + { label: 'a removal', steps: [['cut', 2]], after: [[1, 2], 'complex'] }, + { label: 'two removals, collapsing it to a scalar', steps: [['cut', 2], ['cut', 1]], after: [[1, 1], 'complex'] }, + { label: 'an Add', steps: [['add']], after: [[1, 4], 'complex'] }, + { label: 'an Add, then a removal', steps: [['add'], ['cut', 3]], after: [[1, 3], 'complex'] }, + { label: 'an element edit', steps: [['element', 0, '7']], after: [[1, 3], 'complex'] }, + { label: 'every element set real', steps: [['element', 0, '7'], ['element', 1, '8'], ['element', 2, '9']], after: [[1, 3], 'real'] }, + { label: 'the Value row typed in', steps: [['row', '[1 2]']], after: [[1, 2], 'real'] }, + { label: 'a Value typed on the Parameter', steps: [['typed', '[1 2 3 4]']], after: [[1, 4], 'real'] }, +]; + +const DIMS_13 = '

1.0 3.0

'; +const COMPLEX = '

complex

'; + +describe('binary: a hand-edited Parameter is given back its Dimensions and Complexity as read by an undo', () => { + const dims15 = binaryCopy('pRow', DIMS_13, '

1.0 5.0

'); + const real = binaryCopy('pRow', COMPLEX, '

real

'); + for (const c of binaryCases) { + it(`Dimensions [1 5]: ${c.label}, undone`, () => { + undoesToAsRead('complex_binary.sldd', dims15, 'pRow', [[1, 5], 'complex'], c); + }); + it(`Complexity 'real': ${c.label}, undone`, () => { + undoesToAsRead('complex_binary.sldd', real, 'pRow', [[1, 3], 'real'], c); + }); + } + + it("a struct Value's Dimensions [1 5]: a field added, undone", () => { + const bytes = binaryCopy( + 'pStruct', + '

1.0 1.0

', + '

1.0 5.0

', + ); + undoesToAsRead('complex_binary.sldd', bytes, 'pStruct', [[1, 5], 'real'], { label: 'a field added', steps: [['add']], after: [[1, 1], 'real'] }); + }); + + it('as MATLAB wrote it: each undo gives back the shape it read, which is its Value\'s', () => { + const bytes = arrayBuffer(new Uint8Array(readFileSync(here('./fixtures/mcos/complex_binary.sldd')))); + for (const c of binaryCases) { + undoesToAsRead('complex_binary.sldd', bytes, 'pRow', [[1, 3], 'complex'], c); + } + }); +}); + +// typed_mcos.sldd's pDoubleRow is the real row [1.1 2.2 3.3], which a text dictionary holds as JSON. +const textCases: Case[] = [ + { label: 'a removal', steps: [['cut', 2]], after: [[1, 2], 'real'] }, + { label: 'an Add', steps: [['add']], after: [[1, 4], 'real'] }, + { label: 'an element edit', steps: [['element', 0, '7']], after: [[1, 3], 'real'] }, + { label: 'the Value row typed in', steps: [['row', '[1 2]']], after: [[1, 2], 'real'] }, + { label: 'a Value typed on the Parameter', steps: [['typed', '[1 2 3 4]']], after: [[1, 4], 'real'] }, +]; + +describe('text: a hand-edited Parameter is given back its Dimensions and Complexity as read by an undo', () => { + for (const c of textCases) { + it(`Dimensions [1 5]: ${c.label}, undone`, () => { + undoesToAsRead('typed_mcos.sldd', textCopy('Dimensions', [1, 5]), 'pDoubleRow', [[1, 5], 'real'], c); + }); + it(`Complexity 'complex': ${c.label}, undone`, () => { + undoesToAsRead('typed_mcos.sldd', textCopy('Complexity', 'complex'), 'pDoubleRow', [[1, 3], 'complex'], c); + }); + } +}); From 3abd651b696390750b340d5ab0c953b1753d9447 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Mon, 19 Oct 2026 04:57:42 -0400 Subject: [PATCH 3/6] Pin that an undo gives a Parameter no Dimensions or Complexity the file does not hold The undo of an edit of a Simulink.Parameter's Value puts back its Dimensions and Complexity only where the file holds them (ParameterNode._shapeRestorer). No test held that: with the filter dropped, so that both were put back whether held or not, the whole suite still passed. Yet the undo then left both keys on the Parameter, and the save wrote a Dimensions and a Complexity the file never held, data nobody changed. test/parameterShapeUndoAsRead.test.ts now opens object_array_binary.sldd and object_array_text.sldd, whose paramArray(1) holds neither, types [1 2 3] on it, then makes a cut, an Add, an element edit, an edit of the Value row or another typed Value, undoes it and makes it again. The save after the undo and after the edit made again holds the keys the file held, and no others. With the filter dropped, all 10 cases fail. --- test/parameterShapeUndoAsRead.test.ts | 62 +++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/test/parameterShapeUndoAsRead.test.ts b/test/parameterShapeUndoAsRead.test.ts index 9114f42c..600ea5e7 100644 --- a/test/parameterShapeUndoAsRead.test.ts +++ b/test/parameterShapeUndoAsRead.test.ts @@ -190,3 +190,65 @@ describe('text: a hand-edited Parameter is given back its Dimensions and Complex }); } }); + +// A Parameter that holds neither Dimensions nor Complexity: paramArray(1) of +// object_array_binary.sldd and object_array_text.sldd, which holds a Value (10), a Description +// and, in the text file, a DataType. The undo puts back each of the two only where the file +// holds it (_shapeRestorer), so it adds neither, and the edits after it, which set them from the +// Value only where they are held (_followValueShape), write neither. Were both put back whether +// held or not, the undo would leave the two keys on the Parameter, and the save would write +// Dimensions and Complexity (after the next cut, [1 2] and 'real'): data nobody changed. +type ParamStep = ['cut', number] | ['add'] | ['element', number, string] | ['row', string] | ['typed', string]; + +/** `step` made on the Parameter `param` through the session, as apply makes it on an entry. */ +function applyOn(session: any, root: any, param: any, step: ParamStep): void { + const value = param._valueNode; + let done: boolean; + if (step[0] === 'cut') { + done = session.deleteNodeById(value.children[step[1]].id) === true; + } else if (step[0] === 'add') { + done = session.addChildTo(value.id) !== null; + } else { + const node = step[0] === 'typed' ? param : step[0] === 'row' ? value : value.children[step[1]]; + session.setActive(root, node); + done = session.editProperty(node.id, 'Value', step[step.length - 1]) === true; + } + if (!done) { + throw new Error(`${param.name}: ${JSON.stringify(step)} was refused`); + } +} + +/** The keys of paramArray's element `k` (0-based) as the session's save of `root` writes them, read from its bytes. */ +function savedElementKeys(session: any, root: any, k: number): string[] { + const out = session.serializeSource(root.name); + if (out.kind === 'text') { + return Object.keys(textEntries(JSON.parse(out.text)).find((x) => x.name === 'paramArray').value._elements[k]._properties); + } + const xml = strFromU8(unzipSync(out.bytes)['data/chunk0.xml']); + const object = xml.split('').find((o) => o.includes('

paramArray

'))!; + const element = object.split('')[k + 1].split('')[0]; + return [...element.matchAll(/

m[1]); +} + +describe('a Parameter that holds neither Dimensions nor Complexity: an undo adds neither, and no edit after it writes them', () => { + const steps: ParamStep[] = [['cut', 2], ['add'], ['element', 0, '7'], ['row', '[4 5]'], ['typed', '[4 5]']]; + for (const file of ['object_array_binary.sldd', 'object_array_text.sldd']) { + for (const step of steps) { + it(`${file}, paramArray(1): a Value typed in, then ${JSON.stringify(step)}, undone and made again`, () => { + const session = createSession(); + const root: any = ingest(session, arrayBuffer(new Uint8Array(readFileSync(here(`./fixtures/${file}`)))), { filename: file }); + const param = entryOf(root, 'paramArray').children[0]; + const asRead = savedElementKeys(session, root, 0); + expect(asRead, 'as read, saved').not.toEqual(expect.arrayContaining(['Dimensions'])); + expect(asRead, 'as read, saved').not.toEqual(expect.arrayContaining(['Complexity'])); + applyOn(session, root, param, ['typed', '[1 2 3]']); + applyOn(session, root, param, step); + session.setActive(root, param); + session.undo(); + expect(savedElementKeys(session, root, 0), 'undone, saved').toEqual(asRead); + applyOn(session, root, param, step); + expect(savedElementKeys(session, root, 0), 'made again, saved').toEqual(asRead); + }); + } + } +}); From 975caba26be888289960c459efde1ea15ee52915 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Mon, 19 Oct 2026 05:00:02 -0400 Subject: [PATCH 4/6] Pin that a cell's complex member with a small imaginary part keeps its literal editor A cell whose complex member has an imaginary part of 0 offers no editor for its literal (MatlabVariableNode._isZeroImaginaryComplex). The only control whose imaginary part was not 0 was 2i, so a test of "near 0" in place of "0" still passed the whole suite: below 1e-9 or below 1, or a test that also took NaN for 0. Each took the editor from a cell whose literal reads back as itself, such as {1+0.5i, 5}, or {-1+1.2246467991473532e-16i, 5} for exp(1i*pi). test/cellZeroImaginaryMember.test.ts now builds .mat cells whose complex member has the imaginary part 0.5, 1.2246467991473532e-16, 1e-16, 5e-324 (the least double above 0) or NaN, with node ceiling 0 and with none. Each cell keeps its editor, takes its literal with only the 5 retyped, and keeps the member complex. Each of those mutants fails both cases, at the editor. --- test/cellZeroImaginaryMember.test.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/cellZeroImaginaryMember.test.ts b/test/cellZeroImaginaryMember.test.ts index 4b260632..00c521e5 100644 --- a/test/cellZeroImaginaryMember.test.ts +++ b/test/cellZeroImaginaryMember.test.ts @@ -184,6 +184,31 @@ describe('a .mat file cell holding a complex member whose imaginary part is 0, w expect(variable('ci').valueEditable).toBe(true); }); } + + // The controls: an imaginary part that is not 0, however small, is not 0. exp(1i*pi)'s is + // 1.2246467991473532e-16, and 5e-324 is the least double above 0; NaN is not 0 either. The + // literal reads such a member back as itself, so the cell keeps its editor, and the literal with + // only the 5 retyped keeps the member complex. + const notZero: [number, number][] = [[1, 0.5], [Math.cos(Math.PI), Math.sin(Math.PI)], [1, 1e-16], [1, 5e-324], [1, NaN]]; + const notZeroFile = (): ArrayBuffer => matFile(notZero.map(([re, im], k) => cellVar(`s${k}`, [dbl([re], [im]), dbl([5])]))); + + for (const nodeCeiling of [0, Number.MAX_SAFE_INTEGER]) { + it(`node ceiling ${nodeCeiling}: a member whose imaginary part is small but not 0 keeps the editor, and the literal keeps it complex`, () => { + const root = (MatNode.fromParsed as any)(parseMat(notZeroFile()), 'f.mat', { nodeCeiling }); + notZero.forEach(([re, im], k) => { + const label = `{complex(${re}, ${im}), 5}`; + const cell = root.children.find((v: any) => v.name === `s${k}`); + const shown = String(cell.displayValue); + const member = /^\{(.+), 5\}$/.exec(shown)?.[1]; + expect(member, label).toMatch(/i$/); + expect(cell.valueEditable, label).toBe(true); + const retyped = `{${member}, 6}`; + expect(cell.setProperty('Value', retyped), label).toBe(true); + expect(cell.displayValue, label).toBe(retyped); + expect(rows(cell), label).toEqual([['double (complex)', member], ['double', '6']]); + }); + }); + } }); type Read = { name: string; class: string; size: number[]; members: string[] }; From 42d92a2f584842f14123f32399fec041add85885 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Mon, 19 Oct 2026 05:38:17 -0400 Subject: [PATCH 5/6] Pin that a cell's member with a negative imaginary part, or a char member, keeps its literal editor A cell whose complex member has an imaginary part of 0 offers no editor for its literal (MatlabVariableNode._isZeroImaginaryComplex). Every control so far had a positive imaginary part and a non-zero real part, and none was a char. So three changes to that test still passed the whole suite: an imaginary part taken as 0 when it is 0 or below, a real part of 0 taken as 0 too, and the check that the member is complex dropped. Each took the editor from a cell whose literal reads back as itself, {1-2i, 5}, {0-2i, 5}, {0+2i, 5} or the char {'1+0i', 5}, and refused its literal set with a reason that is false. test/cellZeroImaginaryMember.test.ts now adds .mat cells whose complex member is 1-2i or 0-2i to the controls, and a .mat cell {'1+0i', 5} whose first member is a char. Each runs with node ceiling 0 and with none. Each cell keeps its editor and takes its literal with only the 5 retyped, and the member keeps its class. Each of those three changes fails both cases, at the editor. --- test/cellZeroImaginaryMember.test.ts | 29 +++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/test/cellZeroImaginaryMember.test.ts b/test/cellZeroImaginaryMember.test.ts index 00c521e5..d90c5350 100644 --- a/test/cellZeroImaginaryMember.test.ts +++ b/test/cellZeroImaginaryMember.test.ts @@ -29,7 +29,7 @@ import { ingest } from '../src/core/ingest.js'; import MatNode from '../src/datamodel/node/container/MatNode.js'; import { parseMat } from '../src/datamodel/parser/MatParser.js'; import '../src/datamodel/node/data/NodeClassMap.js'; -import { CLASS, cellVar, matFile, numericVar } from './tools/matBytes.js'; +import { CLASS, MI, cellVar, charVar, matFile, numericVar } from './tools/matBytes.js'; /* eslint-disable @typescript-eslint/no-explicit-any */ @@ -186,10 +186,12 @@ describe('a .mat file cell holding a complex member whose imaginary part is 0, w } // The controls: an imaginary part that is not 0, however small, is not 0. exp(1i*pi)'s is - // 1.2246467991473532e-16, and 5e-324 is the least double above 0; NaN is not 0 either. The - // literal reads such a member back as itself, so the cell keeps its editor, and the literal with - // only the 5 retyped keeps the member complex. - const notZero: [number, number][] = [[1, 0.5], [Math.cos(Math.PI), Math.sin(Math.PI)], [1, 1e-16], [1, 5e-324], [1, NaN]]; + // 1.2246467991473532e-16, and 5e-324 is the least double above 0; NaN is not 0 either. Nor is + // a negative one, with the real part 0 or not. The literal reads such a member back as itself, + // so the cell keeps its editor, and the literal with only the 5 retyped keeps the member complex. + const notZero: [number, number][] = [ + [1, 0.5], [Math.cos(Math.PI), Math.sin(Math.PI)], [1, 1e-16], [1, 5e-324], [1, NaN], [1, -2], [0, -2], + ]; const notZeroFile = (): ArrayBuffer => matFile(notZero.map(([re, im], k) => cellVar(`s${k}`, [dbl([re], [im]), dbl([5])]))); for (const nodeCeiling of [0, Number.MAX_SAFE_INTEGER]) { @@ -209,6 +211,23 @@ describe('a .mat file cell holding a complex member whose imaginary part is 0, w }); }); } + + // The control: a char member whose text reads like a complex number with imaginary part 0 is + // not a complex number. The literal reads it back as the char it is, so the cell keeps its + // editor, and the literal with only the 5 retyped keeps the member a char. + const charFile = (): ArrayBuffer => matFile([cellVar('k', [charVar('', '1+0i', MI.UTF8), dbl([5])])]); + + for (const nodeCeiling of [0, Number.MAX_SAFE_INTEGER]) { + it(`node ceiling ${nodeCeiling}: a char member that reads like 1+0i keeps the editor, and the literal keeps it a char`, () => { + const root = (MatNode.fromParsed as any)(parseMat(charFile()), 'f.mat', { nodeCeiling }); + const cell = root.children.find((v: any) => v.name === 'k'); + expect(cell.displayValue).toBe("{'1+0i', 5}"); + expect(cell.valueEditable).toBe(true); + expect(cell.setProperty('Value', "{'1+0i', 6}")).toBe(true); + expect(cell.displayValue).toBe("{'1+0i', 6}"); + expect(rows(cell)).toEqual([['char', "'1+0i'"], ['double', '6']]); + }); + } }); type Read = { name: string; class: string; size: number[]; members: string[] }; From e757474c965ef353fde68f7d6458b1874aabaaf6 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Mon, 19 Oct 2026 06:09:28 -0400 Subject: [PATCH 6/6] Pin that a cell's member with imaginary part 0 takes no literal editor at any real part or class A cell whose complex member has an imaginary part of 0 offers no editor for its literal (MatlabVariableNode._isZeroImaginaryComplex). Every such member in the tests had a real part of 1 or 2, and was a double. So four changes to that test still passed the whole suite: one that also asked for a real part other than 0, one for a real part above 0, one for a finite real part, and one that took only a double for complex. Each gave the literal editor back to a cell such as {0+0i, 5}, {-1+0i, 5}, {Inf+0i, 5}, or a single or int16 {1+0i, 5}, and retyping only the 5 then made the member nobody changed a real double. test/cellZeroImaginaryMember.test.ts now builds .mat cells whose member is complex(0, 0), with a -0 in either part or both, complex(-1, 0), complex(Inf, 0), and single and int16 complex(1, 0), with node ceiling 0 and with none. Each cell offers no editor and refuses its literal with the reason. With its 5 set to 6 as an element, the cell copied into a text and a binary dictionary, saved and opened again, keeps the member of its class and complex. Each of the four changes fails both cases, at the editor. --- test/cellZeroImaginaryMember.test.ts | 50 ++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/test/cellZeroImaginaryMember.test.ts b/test/cellZeroImaginaryMember.test.ts index d90c5350..342d2071 100644 --- a/test/cellZeroImaginaryMember.test.ts +++ b/test/cellZeroImaginaryMember.test.ts @@ -30,6 +30,7 @@ import MatNode from '../src/datamodel/node/container/MatNode.js'; import { parseMat } from '../src/datamodel/parser/MatParser.js'; import '../src/datamodel/node/data/NodeClassMap.js'; import { CLASS, MI, cellVar, charVar, matFile, numericVar } from './tools/matBytes.js'; +import { BINARY, TEXT, copyOf, pasteSaveReopen } from './tools/pasteVenues.js'; /* eslint-disable @typescript-eslint/no-explicit-any */ @@ -185,6 +186,55 @@ describe('a .mat file cell holding a complex member whose imaginary part is 0, w }); } + // The imaginary part 0 whatever the real part and the class: complex(0, 0), with a -0 in + // either part or both, complex(-1, 0), complex(Inf, 0), and single and int16 complex(1, 0). A + // literal reads each such member as real, so the cell offers no editor and refuses its literal, + // as it does for complex(1, 0). With its 5 set to 6 as an element, the cell copied into either + // kind of dictionary and saved keeps the member as read, of its class and complex. A cell the + // node ceiling built without its rows has no element to edit, so its copy is saved as read. + const scalar = (cls: number, re: number, im: number): Uint8Array => numericVar({ name: '', cls, dimensions: [1, 1], real: [re], imag: [im] }); + const zero: [string, Uint8Array, string][] = [ + ['complex(0, 0)', scalar(CLASS.DOUBLE, 0, 0), 'double'], + ['complex(-0, 0)', scalar(CLASS.DOUBLE, -0, 0), 'double'], + ['complex(0, -0)', scalar(CLASS.DOUBLE, 0, -0), 'double'], + ['complex(-0, -0)', scalar(CLASS.DOUBLE, -0, -0), 'double'], + ['complex(-1, 0)', scalar(CLASS.DOUBLE, -1, 0), 'double'], + ['complex(Inf, 0)', scalar(CLASS.DOUBLE, Infinity, 0), 'double'], + ['single(complex(1, 0))', scalar(CLASS.SINGLE, 1, 0), 'single'], + ['int16(complex(1, 0))', scalar(CLASS.INT16, 1, 0), 'int16'], + ]; + const zeroFile = (): ArrayBuffer => matFile(zero.map(([, member], k) => cellVar(`z${k}`, [member, dbl([5])]))); + + for (const nodeCeiling of [0, Number.MAX_SAFE_INTEGER]) { + it(`node ceiling ${nodeCeiling}: a member whose imaginary part is 0, at any real part and of any class, offers no editor, and the save keeps it as read`, () => { + const cut = nodeCeiling === 0; + const root = (MatNode.fromParsed as any)(parseMat(zeroFile()), 'f.mat', { nodeCeiling }); + zero.forEach(([label, , cls], k) => { + const cell = root.children.find((v: any) => v.name === `z${k}`); + const shown = String(cell.displayValue); + const member = /^\{(.+), 5\}$/.exec(shown)?.[1]; + expect(member, label).toMatch(/\+0i$/); + expect(cell.valueEditable, label).toBe(false); + expect(cell.setProperty('Value', `{${member}, 6}`), label).toMatchObject({ error: true, reason: REASON }); + expect(cell.displayValue, label).toBe(shown); + const asRead = copyOf(cell) as any; + + expect(cell.children.length, label).toBe(cut ? 0 : 2); + if (!cut) { + expect(rows(cell), label).toEqual([[`${cls} (complex)`, member], ['double', '5']]); + expect(cell.children[1].setProperty('Value', '6'), label).toBe(true); + expect(rows(cell), label).toEqual([[`${cls} (complex)`, member], ['double', '6']]); + } + const copy = copyOf(cell) as any; + expect(copy._elements[0], label).toEqual(asRead._elements[0]); + for (const dictionary of [TEXT, BINARY]) { + const { entry } = pasteSaveReopen(dictionary, copy); + expect(rows(entry), `${label}, ${dictionary}`).toEqual([[`${cls} (complex)`, member], ['double', cut ? '5' : '6']]); + } + }); + }); + } + // The controls: an imaginary part that is not 0, however small, is not 0. exp(1i*pi)'s is // 1.2246467991473532e-16, and 5e-324 is the least double above 0; NaN is not 0 either. Nor is // a negative one, with the real part 0 or not. The literal reads such a member back as itself,