diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index 6dbef495b..557bf32a1 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -18,3 +18,4 @@ - Fixes rare possibility of rendered connections being hidden or cut off. [#828](https://github.com/terrastruct/d2/pull/828) - Creating nested children within `sql_table` and `class` shapes are now prevented (caused confusion when accidentally done). [#834](https://github.com/terrastruct/d2/pull/834) - Fixes graph deserialization bug. [#837](https://github.com/terrastruct/d2/pull/837) +- `steps` with non-map fields could cause panics. [#783](https://github.com/terrastruct/d2/pull/783) diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 3d4a55a7f..8cc6452a7 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -427,7 +427,7 @@ func (c *compiler) compileEdge(obj *d2graph.Object, e *d2ir.Edge) { edge.Attributes.Label.MapKey = e.LastPrimaryKey() for _, er := range e.References { scopeObjIDA := d2ir.IDA(er.Context.ScopeMap) - scopeObj, _ := edge.Src.Graph.Root.HasChildIDVal(d2graphIDA(scopeObjIDA)) + scopeObj, _ := edge.Src.Graph.Root.HasChildIDVal(scopeObjIDA) edge.References = append(edge.References, d2graph.EdgeReference{ Edge: er.Context.Edge, MapKey: er.Context.Key, diff --git a/d2compiler/compile_test.go b/d2compiler/compile_test.go index 3b6f2ac6a..8a8bb33c3 100644 --- a/d2compiler/compile_test.go +++ b/d2compiler/compile_test.go @@ -1774,6 +1774,33 @@ dst.id <-> src.dst_id assert.String(t, "sequence_diagram", g.Objects[0].Attributes.Shape.Value) }, }, + { + name: "sequence-timestamp", + + text: `shape: sequence_diagram +a +b + +"04:20,11:20": { + "loop through each table": { + a."start_time = datetime.datetime.now" + a -> b + } +} +`, + assertions: func(t *testing.T, g *d2graph.Graph) { + tassert.Equal(t, 1, len(g.Edges)) + tassert.Equal(t, 5, len(g.Objects)) + tassert.Equal(t, "a", g.Objects[0].ID) + tassert.Equal(t, "b", g.Objects[1].ID) + tassert.Equal(t, `"04:20,11:20"`, g.Objects[2].ID) + tassert.Equal(t, `loop through each table`, g.Objects[3].ID) + tassert.Equal(t, 1, len(g.Objects[0].ChildrenArray)) + tassert.Equal(t, 0, len(g.Objects[1].ChildrenArray)) + tassert.Equal(t, 1, len(g.Objects[2].ChildrenArray)) + tassert.True(t, g.Edges[0].ContainedBy(g.Objects[3])) + }, + }, { name: "root_sequence", diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index f8e8ad521..99206e667 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -1586,3 +1586,13 @@ func (g *Graph) SortEdgesByAST() { }) g.Edges = edges } + +func (obj *Object) IsDescendantOf(ancestor *Object) bool { + if obj == ancestor { + return true + } + if obj.Parent == nil { + return false + } + return obj.Parent.IsDescendantOf(ancestor) +} diff --git a/d2ir/compile.go b/d2ir/compile.go index 03cc04b85..167fd0972 100644 --- a/d2ir/compile.go +++ b/d2ir/compile.go @@ -38,7 +38,8 @@ func (c *compiler) compileScenarios(m *Map) { } for _, sf := range scenarios.Fields { - if sf.Map() == nil { + if sf.Map() == nil || sf.Primary() != nil { + c.errorf(sf.References[0].Context.Key, "invalid scenario") continue } base := m.CopyBase(sf) @@ -59,8 +60,9 @@ func (c *compiler) compileSteps(m *Map) { return } for i, sf := range steps.Fields { - if sf.Map() == nil { - continue + if sf.Map() == nil || sf.Primary() != nil { + c.errorf(sf.References[0].Context.Key, "invalid step") + break } var base *Map if i == 0 { diff --git a/d2ir/compile_test.go b/d2ir/compile_test.go index bd21d9ae2..71d46c924 100644 --- a/d2ir/compile_test.go +++ b/d2ir/compile_test.go @@ -420,6 +420,22 @@ steps: { assertQuery(t, m, 0, 0, nil, "steps.nuclear.quiche") }, }, + { + name: "steps_panic", + run: func(t testing.TB) { + _, err := compile(t, `steps: { + shape: sql_table + id: int {constraint: primary_key} +} +scenarios: { + shape: sql_table + hey: int {constraint: primary_key} +}`) + assert.ErrorString(t, err, `TestCompile/steps/steps_panic.d2:6:3: invalid scenario +TestCompile/steps/steps_panic.d2:7:3: invalid scenario +TestCompile/steps/steps_panic.d2:2:3: invalid step`) + }, + }, { name: "recursive", run: func(t testing.TB) { diff --git a/d2layouts/d2elklayout/NOTICE.txt b/d2layouts/d2elklayout/NOTICE.txt index 6fdaba655..af6489afd 100644 --- a/d2layouts/d2elklayout/NOTICE.txt +++ b/d2layouts/d2elklayout/NOTICE.txt @@ -1,4 +1,5 @@ elk.js comes from https://github.com/kieler/elkjs +Currently on v0.8.2 Attribution: diff --git a/d2oracle/edit.go b/d2oracle/edit.go index 8905450a7..d189f4d0a 100644 --- a/d2oracle/edit.go +++ b/d2oracle/edit.go @@ -895,6 +895,7 @@ func deleteObject(g *d2graph.Graph, key *d2ast.KeyPath, obj *d2graph.Object) (*d }) if obj.Attributes.Shape.Value == d2target.ShapeSQLTable || obj.Attributes.Shape.Value == d2target.ShapeClass { ref.MapKey.Value.Map = nil + ref.MapKey.Primary = ref.MapKey.Value.ScalarBox() } else if len(withoutSpecial) == 0 { hoistRefChildren(g, key, ref) deleteFromMap(ref.Scope, ref.MapKey) @@ -1538,7 +1539,7 @@ func updateNear(prevG, g *d2graph.Graph, from, to *string) error { if len(n.MapKey.Key.Path) == 0 { continue } - if n.MapKey.Key.Path[0].Unbox().ScalarString() == "near" { + if n.MapKey.Key.Path[len(n.MapKey.Key.Path)-1].Unbox().ScalarString() == "near" { k := n.MapKey.Value.ScalarBox().Unbox().ScalarString() if strings.EqualFold(k, *from) && to == nil { deleteFromMap(obj.Map, n.MapKey) diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go index 7cd1ef697..f4c3d0ce4 100644 --- a/d2oracle/edit_test.go +++ b/d2oracle/edit_test.go @@ -3824,6 +3824,37 @@ y exp: `x y +`, + }, + { + name: "delete_container_of_near", + + text: `direction: down +first input -> start game -> game loop + +game loop: { + direction: down + input -> increase bird top velocity + + move bird -> move pipes -> render + + render -> no collision -> wait 16 milliseconds -> move bird + render -> collision detected -> game over + no collision.near: game loop.collision detected +} +`, + key: `game loop`, + + exp: `direction: down +first input -> start game + +input -> increase bird top velocity + +move bird -> move pipes -> render + +render -> no collision -> wait 16 milliseconds -> move bird +render -> collision detected -> game over +no collision.near: collision detected `, }, { @@ -4768,6 +4799,40 @@ A -> B key: `x.left`, exp: `x +`, + }, + { + name: "chaos_1", + + text: `cm: {shape: cylinder} +cm <-> cm: {source-arrowhead.shape: cf-one-required} +mt: z +cdpdxz + +bymdyk: hdzuj {shape: class} + +bymdyk <-> bymdyk +cm + +cm <-> bymdyk: { + source-arrowhead.shape: cf-many-required + target-arrowhead.shape: arrow +} +bymdyk <-> cdpdxz + +bymdyk -> cm: nk { + target-arrowhead.shape: diamond + target-arrowhead.label: 1 +} +`, + key: `bymdyk`, + + exp: `cm: {shape: cylinder} +cm <-> cm: {source-arrowhead.shape: cf-one-required} +mt: z +cdpdxz + +cm `, }, } diff --git a/d2plugin/plugin_elk.go b/d2plugin/plugin_elk.go index 3b2113c6d..d28fba3cb 100644 --- a/d2plugin/plugin_elk.go +++ b/d2plugin/plugin_elk.go @@ -89,6 +89,7 @@ func (p elkPlugin) Info(ctx context.Context) (*PluginInfo, error) { Type: "bundled", Features: []PluginFeature{ CONTAINER_DIMENSIONS, + DESCENDANT_EDGES, }, ShortHelp: "Eclipse Layout Kernel (ELK) with the Layered algorithm.", LongHelp: fmt.Sprintf(`ELK is a layout engine offered by Eclipse. diff --git a/d2plugin/plugin_features.go b/d2plugin/plugin_features.go index f41462b37..76e1825b4 100644 --- a/d2plugin/plugin_features.go +++ b/d2plugin/plugin_features.go @@ -18,6 +18,9 @@ const CONTAINER_DIMENSIONS PluginFeature = "container_dimensions" // When this is true, objects can specify their `top` and `left` keywords const TOP_LEFT PluginFeature = "top_left" +// When this is true, containers can have connections to descendants +const DESCENDANT_EDGES PluginFeature = "descendant_edges" + func FeatureSupportCheck(info *PluginInfo, g *d2graph.Graph) error { // Older version of plugin. Skip checking. if info.Features == nil { @@ -50,5 +53,22 @@ func FeatureSupportCheck(info *PluginInfo, g *d2graph.Graph) error { } } } + if _, ok := featureMap[DESCENDANT_EDGES]; !ok { + for _, e := range g.Edges { + // descendant edges are ok in sequence diagrams + if e.Src.OuterSequenceDiagram() != nil || e.Dst.OuterSequenceDiagram() != nil { + continue + } + if !e.Src.IsContainer() && !e.Dst.IsContainer() { + continue + } + if e.Src == e.Dst { + return fmt.Errorf(`Connection "%s" is a self loop on a container, but layout engine "%s" does not support this.`, e.AbsID(), info.Name) + } + if e.Src.IsDescendantOf(e.Dst) || e.Dst.IsDescendantOf(e.Src) { + return fmt.Errorf(`Connection "%s" goes from a container to a descendant, but layout engine "%s" does not support this.`, e.AbsID(), info.Name) + } + } + } return nil } diff --git a/e2etests/e2e_test.go b/e2etests/e2e_test.go index 7b8b1b2fd..79ce99005 100644 --- a/e2etests/e2e_test.go +++ b/e2etests/e2e_test.go @@ -24,6 +24,7 @@ import ( "oss.terrastruct.com/d2/d2layouts/d2near" "oss.terrastruct.com/d2/d2layouts/d2sequence" "oss.terrastruct.com/d2/d2lib" + "oss.terrastruct.com/d2/d2plugin" "oss.terrastruct.com/d2/d2renderers/d2svg" "oss.terrastruct.com/d2/d2target" "oss.terrastruct.com/d2/lib/log" @@ -73,12 +74,14 @@ a -> c } type testCase struct { - name string - script string - mtexts []*d2target.MText - assertions func(t *testing.T, diagram *d2target.Diagram) - skip bool - expErr string + name string + script string + mtexts []*d2target.MText + assertions func(t *testing.T, diagram *d2target.Diagram) + skip bool + dagreFeatureError string + elkFeatureError string + expErr string } func runa(t *testing.T, tcs []testCase) { @@ -136,16 +139,20 @@ func run(t *testing.T, tc testCase) { for _, layoutName := range layoutsTested { var layout func(context.Context, *d2graph.Graph) error + var plugin d2plugin.Plugin if layoutName == "dagre" { layout = d2dagrelayout.DefaultLayout + plugin = &d2plugin.DagrePlugin } else if layoutName == "elk" { // If measured texts exists, we are specifically exercising text measurements, no need to run on both layouts if tc.mtexts != nil { continue } layout = d2elklayout.DefaultLayout + plugin = &d2plugin.ELKPlugin } - diagram, _, err := d2lib.Compile(ctx, tc.script, &d2lib.CompileOptions{ + + diagram, g, err := d2lib.Compile(ctx, tc.script, &d2lib.CompileOptions{ Ruler: ruler, MeasuredTexts: tc.mtexts, Layout: layout, @@ -159,6 +166,26 @@ func run(t *testing.T, tc testCase) { assert.Success(t, err) } + pluginInfo, err := plugin.Info(ctx) + assert.Success(t, err) + + err = d2plugin.FeatureSupportCheck(pluginInfo, g) + switch layoutName { + case "dagre": + if tc.dagreFeatureError != "" { + assert.Error(t, err) + assert.ErrorString(t, err, tc.dagreFeatureError) + return + } + case "elk": + if tc.elkFeatureError != "" { + assert.Error(t, err) + assert.ErrorString(t, err, tc.elkFeatureError) + return + } + } + assert.Success(t, err) + if tc.assertions != nil { t.Run("assertions", func(t *testing.T) { tc.assertions(t, diagram) diff --git a/e2etests/regression_test.go b/e2etests/regression_test.go index 17a7e6e18..8b977c988 100644 --- a/e2etests/regression_test.go +++ b/e2etests/regression_test.go @@ -515,6 +515,20 @@ s: { s.n -> y.r: {style.stroke-width: 8; style.stroke: red} y.r -> a.g.i: 1\n2\n3\n4 +`, + }, + { + name: "sequence-note-escape-group", + script: `shape: sequence_diagram +a +b + +"04:20,11:20": { + "loop through each table": { + a."start_time = datetime.datetime.now" + a -> b + } +} `, }, } diff --git a/e2etests/stable_test.go b/e2etests/stable_test.go index 169d1ad1e..615dff3ec 100644 --- a/e2etests/stable_test.go +++ b/e2etests/stable_test.go @@ -448,6 +448,7 @@ eee.shape: document eee <- aaa.ccc (eee <- aaa.ccc)[0]: '222' `, + dagreFeatureError: `Connection "(aaa.ccc -- aaa)[0]" goes from a container to a descendant, but layout engine "dagre" does not support this.`, }, { name: "chaos2", @@ -1792,6 +1793,7 @@ c: { a } `, + dagreFeatureError: `Object "a" has attribute "width" and/or "height" set, but layout engine "dagre" does not support dimensions set on containers.`, }, { name: "crow_foot_arrowhead", diff --git a/e2etests/testdata/todo/child_parent_edges/elk/board.exp.json b/e2etests/testdata/regression/sequence-note-escape-group/dagre/board.exp.json similarity index 63% rename from e2etests/testdata/todo/child_parent_edges/elk/board.exp.json rename to e2etests/testdata/regression/sequence-note-escape-group/dagre/board.exp.json index 5826dc87d..7dc4f3208 100644 --- a/e2etests/testdata/todo/child_parent_edges/elk/board.exp.json +++ b/e2etests/testdata/regression/sequence-note-escape-group/dagre/board.exp.json @@ -7,15 +7,15 @@ "type": "rectangle", "pos": { "x": 12, - "y": 12 + "y": 52 }, - "width": 364, - "height": 451, + "width": 100, + "height": 66, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, "borderRadius": 0, - "fill": "B4", + "fill": "B5", "stroke": "B1", "shadow": false, "3d": false, @@ -30,28 +30,28 @@ "methods": null, "columns": null, "label": "a", - "fontSize": 28, + "fontSize": 16, "fontFamily": "DEFAULT", "language": "", "color": "N1", "italic": false, "bold": false, "underline": false, - "labelWidth": 12, - "labelHeight": 36, - "labelPosition": "INSIDE_TOP_CENTER", + "labelWidth": 7, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, "level": 1 }, { - "id": "a.b", + "id": "b", "type": "rectangle", "pos": { - "x": 62, - "y": 62 + "x": 197, + "y": 52 }, - "width": 264, - "height": 351, + "width": 100, + "height": 66, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -71,33 +71,33 @@ "methods": null, "columns": null, "label": "b", - "fontSize": 24, + "fontSize": 16, "fontFamily": "DEFAULT", "language": "", "color": "N1", "italic": false, "bold": false, "underline": false, - "labelWidth": 12, - "labelHeight": 31, - "labelPosition": "INSIDE_TOP_CENTER", + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, - "level": 2 + "level": 1 }, { - "id": "a.b.c", + "id": "\"04:20,11:20\"", "type": "rectangle", "pos": { - "x": 122, - "y": 112 + "x": -134, + "y": 161 }, - "width": 154, - "height": 166, + "width": 433, + "height": 248, "opacity": 1, "strokeDash": 0, - "strokeWidth": 2, + "strokeWidth": 0, "borderRadius": 0, - "fill": "B6", + "fill": "N5", "stroke": "B1", "shadow": false, "3d": false, @@ -107,32 +107,75 @@ "link": "", "icon": null, "iconPosition": "", - "blend": false, + "blend": true, "fields": null, "methods": null, "columns": null, - "label": "c", - "fontSize": 20, + "label": "04:20,11:20", + "fontSize": 16, "fontFamily": "DEFAULT", "language": "", "color": "N1", "italic": false, "bold": false, "underline": false, - "labelWidth": 9, - "labelHeight": 26, - "labelPosition": "INSIDE_TOP_CENTER", - "zIndex": 0, - "level": 3 + "labelWidth": 76, + "labelHeight": 21, + "labelFill": "N5", + "labelPosition": "INSIDE_TOP_LEFT", + "zIndex": 3, + "level": 1 }, { - "id": "a.b.c.d", + "id": "\"04:20,11:20\".loop through each table", "type": "rectangle", "pos": { - "x": 172, - "y": 162 + "x": -122, + "y": 202 }, - "width": 54, + "width": 409, + "height": 195, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": true, + "fields": null, + "methods": null, + "columns": null, + "label": "loop through each table", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 160, + "labelHeight": 21, + "labelFill": "N5", + "labelPosition": "INSIDE_TOP_LEFT", + "zIndex": 3, + "level": 2 + }, + { + "id": "a.\"start_time = datetime.datetime.now\"", + "type": "page", + "pos": { + "x": -82, + "y": 246 + }, + "width": 289, "height": 66, "opacity": 1, "strokeDash": 0, @@ -152,28 +195,28 @@ "fields": null, "methods": null, "columns": null, - "label": "d", + "label": "start_time = datetime.datetime.now", "fontSize": 16, "fontFamily": "DEFAULT", "language": "", "color": "N1", "italic": false, - "bold": true, + "bold": false, "underline": false, - "labelWidth": 9, + "labelWidth": 244, "labelHeight": 21, "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 4 + "zIndex": 5, + "level": 2 } ], "connections": [ { - "id": "(a.b -> a)[0]", - "src": "a.b", + "id": "(a -> b)[0]", + "src": "a", "srcArrow": "none", "srcLabel": "", - "dst": "a", + "dst": "b", "dstArrow": "triangle", "dstLabel": "", "opacity": 1, @@ -194,31 +237,31 @@ "labelPercentage": 0, "route": [ { - "x": 112, - "y": 413 + "x": 62, + "y": 382 }, { - "x": 112, - "y": 463 + "x": 247, + "y": 382 } ], "animated": false, "tooltip": "", "icon": null, - "zIndex": 0 + "zIndex": 4 }, { - "id": "a.(b -> b.c)[0]", - "src": "a.b", + "id": "(a -- )[0]", + "src": "a", "srcArrow": "none", "srcLabel": "", - "dst": "a.b.c", - "dstArrow": "triangle", + "dst": "a-lifeline-end-2251863791", + "dstArrow": "none", "dstLabel": "", "opacity": 1, - "strokeDash": 0, + "strokeDash": 6, "strokeWidth": 2, - "stroke": "B1", + "stroke": "B2", "label": "", "fontSize": 16, "fontFamily": "DEFAULT", @@ -233,31 +276,31 @@ "labelPercentage": 0, "route": [ { - "x": 172, - "y": 62 + "x": 62, + "y": 118 }, { - "x": 172, - "y": 112 + "x": 62, + "y": 452 } ], "animated": false, "tooltip": "", "icon": null, - "zIndex": 0 + "zIndex": 1 }, { - "id": "a.(b.c.d -> b)[0]", - "src": "a.b.c.d", + "id": "(b -- )[0]", + "src": "b", "srcArrow": "none", "srcLabel": "", - "dst": "a.b", - "dstArrow": "triangle", + "dst": "b-lifeline-end-668380428", + "dstArrow": "none", "dstLabel": "", "opacity": 1, - "strokeDash": 0, + "strokeDash": 6, "strokeWidth": 2, - "stroke": "B1", + "stroke": "B2", "label": "", "fontSize": 16, "fontFamily": "DEFAULT", @@ -272,26 +315,18 @@ "labelPercentage": 0, "route": [ { - "x": 199, - "y": 228 + "x": 247, + "y": 118 }, { - "x": 199, - "y": 323 - }, - { - "x": 112, - "y": 323 - }, - { - "x": 112, - "y": 62 + "x": 247, + "y": 452 } ], "animated": false, "tooltip": "", "icon": null, - "zIndex": 0 + "zIndex": 1 } ] } diff --git a/e2etests/testdata/todo/container_label_loop/elk/sketch.exp.svg b/e2etests/testdata/regression/sequence-note-escape-group/dagre/sketch.exp.svg similarity index 50% rename from e2etests/testdata/todo/container_label_loop/elk/sketch.exp.svg rename to e2etests/testdata/regression/sequence-note-escape-group/dagre/sketch.exp.svg index c42042286..4c7762379 100644 --- a/e2etests/testdata/todo/container_label_loop/elk/sketch.exp.svg +++ b/e2etests/testdata/regression/sequence-note-escape-group/dagre/sketch.exp.svg @@ -1,17 +1,10 @@ - \ No newline at end of file diff --git a/e2etests/testdata/stable/chaos1/dagre/board.exp.json b/e2etests/testdata/regression/sequence-note-escape-group/elk/board.exp.json similarity index 61% rename from e2etests/testdata/stable/chaos1/dagre/board.exp.json rename to e2etests/testdata/regression/sequence-note-escape-group/elk/board.exp.json index 5e8c2781a..7dc4f3208 100644 --- a/e2etests/testdata/stable/chaos1/dagre/board.exp.json +++ b/e2etests/testdata/regression/sequence-note-escape-group/elk/board.exp.json @@ -3,95 +3,13 @@ "fontFamily": "SourceSansPro", "shapes": [ { - "id": "aaa", + "id": "a", "type": "rectangle", "pos": { - "x": 0, - "y": 41 + "x": 12, + "y": 52 }, - "width": 173, - "height": 389, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "aaa", - "fontSize": 28, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 41, - "labelHeight": 36, - "labelPosition": "OUTSIDE_TOP_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "aaa.bbb", - "type": "callout", - "pos": { - "x": 40, - "y": 309 - }, - "width": 72, - "height": 91, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "N7", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "bbb", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 27, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "aaa.ccc", - "type": "rectangle", - "pos": { - "x": 64, - "y": 96 - }, - "width": 68, + "width": 100, "height": 66, "opacity": 1, "strokeDash": 0, @@ -111,34 +29,159 @@ "fields": null, "methods": null, "columns": null, - "label": "ccc", + "label": "a", "fontSize": 16, "fontFamily": "DEFAULT", "language": "", "color": "N1", "italic": false, - "bold": true, + "bold": false, "underline": false, - "labelWidth": 23, + "labelWidth": 7, "labelHeight": 21, "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, + "level": 1 + }, + { + "id": "b", + "type": "rectangle", + "pos": { + "x": 197, + "y": 52 + }, + "width": 100, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "b", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "\"04:20,11:20\"", + "type": "rectangle", + "pos": { + "x": -134, + "y": 161 + }, + "width": 433, + "height": 248, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": true, + "fields": null, + "methods": null, + "columns": null, + "label": "04:20,11:20", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 76, + "labelHeight": 21, + "labelFill": "N5", + "labelPosition": "INSIDE_TOP_LEFT", + "zIndex": 3, + "level": 1 + }, + { + "id": "\"04:20,11:20\".loop through each table", + "type": "rectangle", + "pos": { + "x": -122, + "y": 202 + }, + "width": 409, + "height": 195, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N5", + "stroke": "B1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": true, + "fields": null, + "methods": null, + "columns": null, + "label": "loop through each table", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 160, + "labelHeight": 21, + "labelFill": "N5", + "labelPosition": "INSIDE_TOP_LEFT", + "zIndex": 3, "level": 2 }, { - "id": "ddd", - "type": "cylinder", + "id": "a.\"start_time = datetime.datetime.now\"", + "type": "page", "pos": { - "x": 213, - "y": 50 + "x": -82, + "y": 246 }, - "width": 73, - "height": 118, + "width": 289, + "height": 66, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, "borderRadius": 0, - "fill": "AA4", + "fill": "N7", "stroke": "B1", "shadow": false, "3d": false, @@ -152,76 +195,35 @@ "fields": null, "methods": null, "columns": null, - "label": "ddd", + "label": "start_time = datetime.datetime.now", "fontSize": 16, "fontFamily": "DEFAULT", "language": "", "color": "N1", "italic": false, - "bold": true, + "bold": false, "underline": false, - "labelWidth": 28, + "labelWidth": 244, "labelHeight": 21, "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "eee", - "type": "document", - "pos": { - "x": 213, - "y": 297 - }, - "width": 70, - "height": 76, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "AB4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "eee", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 25, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 1 + "zIndex": 5, + "level": 2 } ], "connections": [ { - "id": "(aaa.ccc -- aaa)[0]", - "src": "aaa.ccc", + "id": "(a -> b)[0]", + "src": "a", "srcArrow": "none", "srcLabel": "", - "dst": "aaa", - "dstArrow": "none", + "dst": "b", + "dstArrow": "triangle", "dstLabel": "", "opacity": 1, "strokeDash": 0, "strokeWidth": 2, "stroke": "B1", - "label": "111", + "label": "", "fontSize": 16, "fontFamily": "DEFAULT", "language": "", @@ -229,47 +231,38 @@ "italic": true, "bold": false, "underline": false, - "labelWidth": 23, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", "labelPercentage": 0, "route": [ { - "x": 91.92468619246861, - "y": 162.5 + "x": 62, + "y": 382 }, { - "x": 79.18493723849372, - "y": 231.7 - }, - { - "x": 76, - "y": 261.1 - }, - { - "x": 76, - "y": 309.5 + "x": 247, + "y": 382 } ], - "isCurve": true, "animated": false, "tooltip": "", "icon": null, - "zIndex": 0 + "zIndex": 4 }, { - "id": "(eee <- aaa.ccc)[0]", - "src": "eee", - "srcArrow": "triangle", + "id": "(a -- )[0]", + "src": "a", + "srcArrow": "none", "srcLabel": "", - "dst": "aaa.ccc", + "dst": "a-lifeline-end-2251863791", "dstArrow": "none", "dstLabel": "", "opacity": 1, - "strokeDash": 0, + "strokeDash": 6, "strokeWidth": 2, - "stroke": "B1", - "label": "222", + "stroke": "B2", + "label": "", "fontSize": 16, "fontFamily": "DEFAULT", "language": "", @@ -277,33 +270,63 @@ "italic": true, "bold": false, "underline": false, - "labelWidth": 25, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", "labelPercentage": 0, "route": [ { - "x": 213, - "y": 305 + "x": 62, + "y": 118 }, { - "x": 138.6, - "y": 243.8 - }, - { - "x": 116.8, - "y": 215.2 - }, - { - "x": 104, - "y": 162 + "x": 62, + "y": 452 } ], - "isCurve": true, "animated": false, "tooltip": "", "icon": null, - "zIndex": 0 + "zIndex": 1 + }, + { + "id": "(b -- )[0]", + "src": "b", + "srcArrow": "none", + "srcLabel": "", + "dst": "b-lifeline-end-668380428", + "dstArrow": "none", + "dstLabel": "", + "opacity": 1, + "strokeDash": 6, + "strokeWidth": 2, + "stroke": "B2", + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 247, + "y": 118 + }, + { + "x": 247, + "y": 452 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 1 } ] } diff --git a/e2etests/testdata/todo/container_label_loop/dagre/sketch.exp.svg b/e2etests/testdata/regression/sequence-note-escape-group/elk/sketch.exp.svg similarity index 50% rename from e2etests/testdata/todo/container_label_loop/dagre/sketch.exp.svg rename to e2etests/testdata/regression/sequence-note-escape-group/elk/sketch.exp.svg index b9763895b..4c7762379 100644 --- a/e2etests/testdata/todo/container_label_loop/dagre/sketch.exp.svg +++ b/e2etests/testdata/regression/sequence-note-escape-group/elk/sketch.exp.svg @@ -1,17 +1,10 @@ - \ No newline at end of file diff --git a/e2etests/testdata/stable/chaos1/dagre/sketch.exp.svg b/e2etests/testdata/stable/chaos1/dagre/sketch.exp.svg deleted file mode 100644 index ed0f4bd3c..000000000 --- a/e2etests/testdata/stable/chaos1/dagre/sketch.exp.svg +++ /dev/null @@ -1,58 +0,0 @@ -aaadddeeebbbccc111 222 - - - - \ No newline at end of file diff --git a/e2etests/testdata/stable/chaos1/elk/board.exp.json b/e2etests/testdata/stable/chaos1/elk/board.exp.json deleted file mode 100644 index e33b45226..000000000 --- a/e2etests/testdata/stable/chaos1/elk/board.exp.json +++ /dev/null @@ -1,291 +0,0 @@ -{ - "name": "", - "fontFamily": "SourceSansPro", - "shapes": [ - { - "id": "aaa", - "type": "rectangle", - "pos": { - "x": 12, - "y": 296 - }, - "width": 260, - "height": 282, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "aaa", - "fontSize": 28, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 41, - "labelHeight": 36, - "labelPosition": "INSIDE_TOP_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "aaa.bbb", - "type": "callout", - "pos": { - "x": 62, - "y": 346 - }, - "width": 72, - "height": 91, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "N7", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "bbb", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 27, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "aaa.ccc", - "type": "rectangle", - "pos": { - "x": 154, - "y": 358 - }, - "width": 68, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "ccc", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 23, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "ddd", - "type": "cylinder", - "pos": { - "x": 60, - "y": 12 - }, - "width": 73, - "height": 118, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "AA4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "ddd", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 28, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "eee", - "type": "document", - "pos": { - "x": 153, - "y": 54 - }, - "width": 70, - "height": 76, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "AB4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "eee", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 25, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 1 - } - ], - "connections": [ - { - "id": "(aaa.ccc -- aaa)[0]", - "src": "aaa.ccc", - "srcArrow": "none", - "srcLabel": "", - "dst": "aaa", - "dstArrow": "none", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "111", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 23, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "labelPercentage": 0, - "route": [ - { - "x": 188, - "y": 424.5 - }, - { - "x": 188, - "y": 578 - } - ], - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - }, - { - "id": "(eee <- aaa.ccc)[0]", - "src": "eee", - "srcArrow": "triangle", - "srcLabel": "", - "dst": "aaa.ccc", - "dstArrow": "none", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "222", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 25, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "labelPercentage": 0, - "route": [ - { - "x": 188, - "y": 119 - }, - { - "x": 188, - "y": 358.5 - } - ], - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - } - ] -} diff --git a/e2etests/testdata/stable/chaos1/elk/sketch.exp.svg b/e2etests/testdata/stable/chaos1/elk/sketch.exp.svg deleted file mode 100644 index 65a1c34e2..000000000 --- a/e2etests/testdata/stable/chaos1/elk/sketch.exp.svg +++ /dev/null @@ -1,58 +0,0 @@ -aaadddeeebbbccc111 222 - - - - \ No newline at end of file diff --git a/e2etests/testdata/stable/container_dimensions/dagre/board.exp.json b/e2etests/testdata/stable/container_dimensions/dagre/board.exp.json deleted file mode 100644 index f6c758ec4..000000000 --- a/e2etests/testdata/stable/container_dimensions/dagre/board.exp.json +++ /dev/null @@ -1,473 +0,0 @@ -{ - "name": "", - "fontFamily": "SourceSansPro", - "shapes": [ - { - "id": "a", - "type": "rectangle", - "pos": { - "x": 0, - "y": 41 - }, - "width": 680, - "height": 575, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "a", - "fontSize": 28, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 12, - "labelHeight": 36, - "labelPosition": "OUTSIDE_TOP_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "a.b", - "type": "rectangle", - "pos": { - "x": 140, - "y": 73 - }, - "width": 400, - "height": 61, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "b", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "a.c", - "type": "rectangle", - "pos": { - "x": 40, - "y": 406 - }, - "width": 600, - "height": 61, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "c", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "b", - "type": "rectangle", - "pos": { - "x": 853, - "y": 41 - }, - "width": 241, - "height": 575, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "b", - "fontSize": 28, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 13, - "labelHeight": 36, - "labelPosition": "OUTSIDE_TOP_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "b.b", - "type": "rectangle", - "pos": { - "x": 893, - "y": 70 - }, - "width": 53, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "b", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "b.c", - "type": "rectangle", - "pos": { - "x": 893, - "y": 403 - }, - "width": 53, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "c", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "b.e", - "type": "rectangle", - "pos": { - "x": 1006, - "y": 286 - }, - "width": 48, - "height": 300, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "e", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "c", - "type": "rectangle", - "pos": { - "x": 700, - "y": 41 - }, - "width": 133, - "height": 125, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "c", - "fontSize": 28, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 12, - "labelHeight": 36, - "labelPosition": "OUTSIDE_TOP_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "c.a", - "type": "rectangle", - "pos": { - "x": 740, - "y": 70 - }, - "width": 53, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "a", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - } - ], - "connections": [ - { - "id": "a.(b -> c)[0]", - "src": "a.b", - "srcArrow": "none", - "srcLabel": "", - "dst": "a.c", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 0, - "labelHeight": 0, - "labelPosition": "", - "labelPercentage": 0, - "route": [ - { - "x": 340, - "y": 135 - }, - { - "x": 340, - "y": 176.2 - }, - { - "x": 340, - "y": 270.4 - }, - { - "x": 340, - "y": 406 - } - ], - "isCurve": true, - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - }, - { - "id": "b.(b -> c)[0]", - "src": "b.b", - "srcArrow": "none", - "srcLabel": "", - "dst": "b.c", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 0, - "labelHeight": 0, - "labelPosition": "", - "labelPercentage": 0, - "route": [ - { - "x": 919.5, - "y": 136.5 - }, - { - "x": 919.5, - "y": 176.5 - }, - { - "x": 919.5, - "y": 269.9 - }, - { - "x": 919.5, - "y": 403.5 - } - ], - "isCurve": true, - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - } - ] -} diff --git a/e2etests/testdata/stable/container_dimensions/dagre/sketch.exp.svg b/e2etests/testdata/stable/container_dimensions/dagre/sketch.exp.svg deleted file mode 100644 index 3ed02122c..000000000 --- a/e2etests/testdata/stable/container_dimensions/dagre/sketch.exp.svg +++ /dev/null @@ -1,50 +0,0 @@ -abcbcbcea - - - \ No newline at end of file diff --git a/e2etests/testdata/stable/container_dimensions/elk/board.exp.json b/e2etests/testdata/stable/container_dimensions/elk/board.exp.json deleted file mode 100644 index f49b81426..000000000 --- a/e2etests/testdata/stable/container_dimensions/elk/board.exp.json +++ /dev/null @@ -1,455 +0,0 @@ -{ - "name": "", - "fontFamily": "SourceSansPro", - "shapes": [ - { - "id": "a", - "type": "rectangle", - "pos": { - "x": 12, - "y": 134 - }, - "width": 700, - "height": 292, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "a", - "fontSize": 28, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 12, - "labelHeight": 36, - "labelPosition": "INSIDE_TOP_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "a.b", - "type": "rectangle", - "pos": { - "x": 162, - "y": 184 - }, - "width": 400, - "height": 61, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "b", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "a.c", - "type": "rectangle", - "pos": { - "x": 62, - "y": 315 - }, - "width": 600, - "height": 61, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "c", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "b", - "type": "rectangle", - "pos": { - "x": 732, - "y": 12 - }, - "width": 700, - "height": 536, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "b", - "fontSize": 28, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 13, - "labelHeight": 36, - "labelPosition": "INSIDE_TOP_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "b.b", - "type": "rectangle", - "pos": { - "x": 782, - "y": 296 - }, - "width": 53, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "b", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "b.c", - "type": "rectangle", - "pos": { - "x": 782, - "y": 432 - }, - "width": 53, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "c", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "b.e", - "type": "rectangle", - "pos": { - "x": 855, - "y": 62 - }, - "width": 48, - "height": 300, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "e", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "c", - "type": "rectangle", - "pos": { - "x": 1452, - "y": 130 - }, - "width": 200, - "height": 300, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "c", - "fontSize": 28, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 12, - "labelHeight": 36, - "labelPosition": "INSIDE_TOP_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "c.a", - "type": "rectangle", - "pos": { - "x": 1502, - "y": 180 - }, - "width": 53, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "a", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - } - ], - "connections": [ - { - "id": "a.(b -> c)[0]", - "src": "a.b", - "srcArrow": "none", - "srcLabel": "", - "dst": "a.c", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 0, - "labelHeight": 0, - "labelPosition": "", - "labelPercentage": 0, - "route": [ - { - "x": 362, - "y": 245 - }, - { - "x": 362, - "y": 315 - } - ], - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - }, - { - "id": "b.(b -> c)[0]", - "src": "b.b", - "srcArrow": "none", - "srcLabel": "", - "dst": "b.c", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 0, - "labelHeight": 0, - "labelPosition": "", - "labelPercentage": 0, - "route": [ - { - "x": 808.5, - "y": 362 - }, - { - "x": 808.5, - "y": 432 - } - ], - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - } - ] -} diff --git a/e2etests/testdata/stable/container_dimensions/elk/sketch.exp.svg b/e2etests/testdata/stable/container_dimensions/elk/sketch.exp.svg deleted file mode 100644 index d7c922310..000000000 --- a/e2etests/testdata/stable/container_dimensions/elk/sketch.exp.svg +++ /dev/null @@ -1,50 +0,0 @@ -abcbcbcea - - - \ No newline at end of file diff --git a/e2etests/testdata/todo/child_parent_edges/dagre/board.exp.json b/e2etests/testdata/todo/child_parent_edges/dagre/board.exp.json deleted file mode 100644 index aa52cee9f..000000000 --- a/e2etests/testdata/todo/child_parent_edges/dagre/board.exp.json +++ /dev/null @@ -1,379 +0,0 @@ -{ - "name": "", - "fontFamily": "SourceSansPro", - "shapes": [ - { - "id": "a", - "type": "rectangle", - "pos": { - "x": 0, - "y": 41 - }, - "width": 274, - "height": 325, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "a", - "fontSize": 28, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 12, - "labelHeight": 36, - "labelPosition": "OUTSIDE_TOP_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "a.b", - "type": "rectangle", - "pos": { - "x": 20, - "y": 106 - }, - "width": 234, - "height": 230, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "b", - "fontSize": 24, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 12, - "labelHeight": 31, - "labelPosition": "OUTSIDE_TOP_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "a.b.c", - "type": "rectangle", - "pos": { - "x": 40, - "y": 169 - }, - "width": 194, - "height": 135, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B6", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "c", - "fontSize": 20, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 9, - "labelHeight": 26, - "labelPosition": "OUTSIDE_TOP_CENTER", - "zIndex": 0, - "level": 3 - }, - { - "id": "a.b.c.d", - "type": "rectangle", - "pos": { - "x": 80, - "y": 204 - }, - "width": 54, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "N7", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "d", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 9, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 4 - } - ], - "connections": [ - { - "id": "(a.b -> a)[0]", - "src": "a.b", - "srcArrow": "none", - "srcLabel": "", - "dst": "a", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 0, - "labelHeight": 0, - "labelPosition": "", - "labelPercentage": 0, - "route": [ - { - "x": 134, - "y": 222.8975155279503 - }, - { - "x": 155.33333333333331, - "y": 180.97950310559006 - }, - { - "x": 162, - "y": 170.5 - }, - { - "x": 164, - "y": 170.5 - }, - { - "x": 166, - "y": 170.5 - }, - { - "x": 168.66666666666669, - "y": 177.1 - }, - { - "x": 170.66666666666669, - "y": 187 - }, - { - "x": 172.66666666666666, - "y": 196.9 - }, - { - "x": 172.66666666666666, - "y": 210.1 - }, - { - "x": 170.66666666666669, - "y": 220 - }, - { - "x": 168.66666666666669, - "y": 229.9 - }, - { - "x": 155.33333333333331, - "y": 233.22049689440993 - }, - { - "x": 134, - "y": 220.1024844720497 - } - ], - "isCurve": true, - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - }, - { - "id": "a.(b -> b.c)[0]", - "src": "a.b", - "srcArrow": "none", - "srcLabel": "", - "dst": "a.b.c", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 0, - "labelHeight": 0, - "labelPosition": "", - "labelPercentage": 0, - "route": [ - { - "x": 134, - "y": 208.20149253731344 - }, - { - "x": 166, - "y": 192.4402985074627 - }, - { - "x": 176, - "y": 188.5 - }, - { - "x": 179, - "y": 188.5 - }, - { - "x": 182, - "y": 188.5 - }, - { - "x": 186, - "y": 195.1 - }, - { - "x": 189, - "y": 205 - }, - { - "x": 192, - "y": 214.9 - }, - { - "x": 192, - "y": 228.1 - }, - { - "x": 189, - "y": 238 - }, - { - "x": 186, - "y": 247.9 - }, - { - "x": 166, - "y": 256.7597014925373 - }, - { - "x": 134, - "y": 265.79850746268653 - } - ], - "isCurve": true, - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - }, - { - "id": "a.(b.c.d -> b)[0]", - "src": "a.b.c.d", - "srcArrow": "none", - "srcLabel": "", - "dst": "a.b", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 0, - "labelHeight": 0, - "labelPosition": "", - "labelPercentage": 0, - "route": [ - { - "x": 134.33333333333334, - "y": 248 - }, - { - "x": 134, - "y": 232.59128630705393 - } - ], - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - } - ] -} diff --git a/e2etests/testdata/todo/child_parent_edges/dagre/sketch.exp.svg b/e2etests/testdata/todo/child_parent_edges/dagre/sketch.exp.svg deleted file mode 100644 index 325eca5bc..000000000 --- a/e2etests/testdata/todo/child_parent_edges/dagre/sketch.exp.svg +++ /dev/null @@ -1,50 +0,0 @@ -abcd - - - \ No newline at end of file diff --git a/e2etests/testdata/todo/child_parent_edges/elk/sketch.exp.svg b/e2etests/testdata/todo/child_parent_edges/elk/sketch.exp.svg deleted file mode 100644 index a24d74a50..000000000 --- a/e2etests/testdata/todo/child_parent_edges/elk/sketch.exp.svg +++ /dev/null @@ -1,50 +0,0 @@ -abcd - - - \ No newline at end of file diff --git a/e2etests/testdata/todo/container_child_edge/dagre/board.exp.json b/e2etests/testdata/todo/container_child_edge/dagre/board.exp.json deleted file mode 100644 index 8a5bca2b5..000000000 --- a/e2etests/testdata/todo/container_child_edge/dagre/board.exp.json +++ /dev/null @@ -1,227 +0,0 @@ -{ - "name": "", - "fontFamily": "SourceSansPro", - "shapes": [ - { - "id": "container", - "type": "rectangle", - "pos": { - "x": 0, - "y": 41 - }, - "width": 175, - "height": 312, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "container", - "fontSize": 28, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 112, - "labelHeight": 36, - "labelPosition": "OUTSIDE_TOP_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "container.first", - "type": "rectangle", - "pos": { - "x": 50, - "y": 70 - }, - "width": 75, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "first", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 30, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "container.second", - "type": "rectangle", - "pos": { - "x": 40, - "y": 257 - }, - "width": 95, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "second", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 50, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - } - ], - "connections": [ - { - "id": "container.(first -> second)[0]", - "src": "container.first", - "srcArrow": "none", - "srcLabel": "", - "dst": "container.second", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "1->2", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 29, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "labelPercentage": 0, - "route": [ - { - "x": 78.1470588235294, - "y": 136.5 - }, - { - "x": 64.42941176470588, - "y": 184.9 - }, - { - "x": 64.4, - "y": 209.2 - }, - { - "x": 78, - "y": 258 - } - ], - "isCurve": true, - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - }, - { - "id": "(container -> container.second)[0]", - "src": "container", - "srcArrow": "none", - "srcLabel": "", - "dst": "container.second", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "c->2", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 28, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "labelPercentage": 0, - "route": [ - { - "x": 96.94117647058823, - "y": 136.5 - }, - { - "x": 110.78823529411764, - "y": 184.9 - }, - { - "x": 110.85, - "y": 209.2 - }, - { - "x": 97.25, - "y": 258 - } - ], - "isCurve": true, - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - } - ] -} diff --git a/e2etests/testdata/todo/container_child_edge/dagre/sketch.exp.svg b/e2etests/testdata/todo/container_child_edge/dagre/sketch.exp.svg deleted file mode 100644 index 17b0d7b79..000000000 --- a/e2etests/testdata/todo/container_child_edge/dagre/sketch.exp.svg +++ /dev/null @@ -1,58 +0,0 @@ -containerfirstsecond 1->2c->2 - - - - \ No newline at end of file diff --git a/e2etests/testdata/todo/container_child_edge/elk/board.exp.json b/e2etests/testdata/todo/container_child_edge/elk/board.exp.json deleted file mode 100644 index 2d6e3f594..000000000 --- a/e2etests/testdata/todo/container_child_edge/elk/board.exp.json +++ /dev/null @@ -1,217 +0,0 @@ -{ - "name": "", - "fontFamily": "SourceSansPro", - "shapes": [ - { - "id": "container", - "type": "rectangle", - "pos": { - "x": 12, - "y": 12 - }, - "width": 224, - "height": 403, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "container", - "fontSize": 28, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 112, - "labelHeight": 36, - "labelPosition": "INSIDE_TOP_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "container.first", - "type": "rectangle", - "pos": { - "x": 111, - "y": 62 - }, - "width": 75, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "first", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 30, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "container.second", - "type": "rectangle", - "pos": { - "x": 85, - "y": 299 - }, - "width": 95, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "second", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 50, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - } - ], - "connections": [ - { - "id": "container.(first -> second)[0]", - "src": "container.first", - "srcArrow": "none", - "srcLabel": "", - "dst": "container.second", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "1->2", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 29, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "labelPercentage": 0, - "route": [ - { - "x": 148.5, - "y": 128 - }, - { - "x": 148.5, - "y": 299 - } - ], - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - }, - { - "id": "(container -> container.second)[0]", - "src": "container", - "srcArrow": "none", - "srcLabel": "", - "dst": "container.second", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "c->2", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 28, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "labelPercentage": 0, - "route": [ - { - "x": 76, - "y": 12 - }, - { - "x": 76, - "y": 259 - }, - { - "x": 116.83333333333333, - "y": 259 - }, - { - "x": 116.83333333333333, - "y": 299 - } - ], - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - } - ] -} diff --git a/e2etests/testdata/todo/container_child_edge/elk/sketch.exp.svg b/e2etests/testdata/todo/container_child_edge/elk/sketch.exp.svg deleted file mode 100644 index 6834b5f5f..000000000 --- a/e2etests/testdata/todo/container_child_edge/elk/sketch.exp.svg +++ /dev/null @@ -1,58 +0,0 @@ -containerfirstsecond 1->2c->2 - - - - \ No newline at end of file diff --git a/e2etests/testdata/todo/container_label_loop/dagre/board.exp.json b/e2etests/testdata/todo/container_label_loop/dagre/board.exp.json deleted file mode 100644 index 725e09aca..000000000 --- a/e2etests/testdata/todo/container_label_loop/dagre/board.exp.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "name": "", - "fontFamily": "SourceSansPro", - "shapes": [ - { - "id": "a", - "type": "rectangle", - "pos": { - "x": 0, - "y": 41 - }, - "width": 153, - "height": 291, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "If we were meant to fly, we wouldn't keep losing our luggage", - "fontSize": 28, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 702, - "labelHeight": 36, - "labelPosition": "OUTSIDE_TOP_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "a.b", - "type": "rectangle", - "pos": { - "x": 40, - "y": 70 - }, - "width": 53, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "b", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "a.c", - "type": "rectangle", - "pos": { - "x": 40, - "y": 236 - }, - "width": 53, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "c", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - } - ], - "connections": [ - { - "id": "a.(b -> c)[0]", - "src": "a.b", - "srcArrow": "none", - "srcLabel": "", - "dst": "a.c", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 0, - "labelHeight": 0, - "labelPosition": "", - "labelPercentage": 0, - "route": [ - { - "x": 66.5, - "y": 136.5 - }, - { - "x": 66.5, - "y": 176.5 - }, - { - "x": 66.5, - "y": 196.5 - }, - { - "x": 66.5, - "y": 236.5 - } - ], - "isCurve": true, - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - }, - { - "id": "(a -> a)[0]", - "src": "a", - "srcArrow": "none", - "srcLabel": "", - "dst": "a", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 0, - "labelHeight": 0, - "labelPosition": "", - "labelPercentage": 0, - "route": [ - { - "x": 93, - "y": 107.55172413793103 - }, - { - "x": 114.33333333333334, - "y": 94.3103448275862 - }, - { - "x": 121, - "y": 91 - }, - { - "x": 123, - "y": 91 - }, - { - "x": 125.00000000000001, - "y": 91 - }, - { - "x": 127.66666666666667, - "y": 97.6 - }, - { - "x": 129.66666666666669, - "y": 107.5 - }, - { - "x": 131.66666666666666, - "y": 117.4 - }, - { - "x": 131.66666666666666, - "y": 130.6 - }, - { - "x": 129.66666666666669, - "y": 140.5 - }, - { - "x": 127.66666666666667, - "y": 150.4 - }, - { - "x": 114.33333333333334, - "y": 153.68965517241378 - }, - { - "x": 93, - "y": 140.44827586206895 - } - ], - "isCurve": true, - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - } - ] -} diff --git a/e2etests/testdata/todo/container_label_loop/elk/board.exp.json b/e2etests/testdata/todo/container_label_loop/elk/board.exp.json deleted file mode 100644 index 9b02bd52b..000000000 --- a/e2etests/testdata/todo/container_label_loop/elk/board.exp.json +++ /dev/null @@ -1,217 +0,0 @@ -{ - "name": "", - "fontFamily": "SourceSansPro", - "shapes": [ - { - "id": "a", - "type": "rectangle", - "pos": { - "x": 62, - "y": 12 - }, - "width": 153, - "height": 302, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B4", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "If we were meant to fly, we wouldn't keep losing our luggage", - "fontSize": 28, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": false, - "underline": false, - "labelWidth": 702, - "labelHeight": 36, - "labelPosition": "INSIDE_TOP_CENTER", - "zIndex": 0, - "level": 1 - }, - { - "id": "a.b", - "type": "rectangle", - "pos": { - "x": 112, - "y": 62 - }, - "width": 53, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "b", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - }, - { - "id": "a.c", - "type": "rectangle", - "pos": { - "x": 112, - "y": 198 - }, - "width": 53, - "height": 66, - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "borderRadius": 0, - "fill": "B5", - "stroke": "B1", - "shadow": false, - "3d": false, - "multiple": false, - "double-border": false, - "tooltip": "", - "link": "", - "icon": null, - "iconPosition": "", - "blend": false, - "fields": null, - "methods": null, - "columns": null, - "label": "c", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N1", - "italic": false, - "bold": true, - "underline": false, - "labelWidth": 8, - "labelHeight": 21, - "labelPosition": "INSIDE_MIDDLE_CENTER", - "zIndex": 0, - "level": 2 - } - ], - "connections": [ - { - "id": "a.(b -> c)[0]", - "src": "a.b", - "srcArrow": "none", - "srcLabel": "", - "dst": "a.c", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 0, - "labelHeight": 0, - "labelPosition": "", - "labelPercentage": 0, - "route": [ - { - "x": 138.5, - "y": 128 - }, - { - "x": 138.5, - "y": 198 - } - ], - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - }, - { - "id": "(a -> a)[0]", - "src": "a", - "srcArrow": "none", - "srcLabel": "", - "dst": "a", - "dstArrow": "triangle", - "dstLabel": "", - "opacity": 1, - "strokeDash": 0, - "strokeWidth": 2, - "stroke": "B1", - "label": "", - "fontSize": 16, - "fontFamily": "DEFAULT", - "language": "", - "color": "N2", - "italic": true, - "bold": false, - "underline": false, - "labelWidth": 0, - "labelHeight": 0, - "labelPosition": "", - "labelPercentage": 0, - "route": [ - { - "x": 62, - "y": 112.66666666666667 - }, - { - "x": 12, - "y": 112.66666666666667 - }, - { - "x": 12, - "y": 213.33333333333334 - }, - { - "x": 62, - "y": 213.33333333333334 - } - ], - "animated": false, - "tooltip": "", - "icon": null, - "zIndex": 0 - } - ] -} diff --git a/e2etests/todo_test.go b/e2etests/todo_test.go index 5d5953cdd..17903edbd 100644 --- a/e2etests/todo_test.go +++ b/e2etests/todo_test.go @@ -14,12 +14,14 @@ func testTodo(t *testing.T) { container.first -> container.second: 1->2 container -> container.second: c->2 `, + dagreFeatureError: `Connection "(container -> container.second)[0]" goes from a container to a descendant, but layout engine "dagre" does not support this.`, }, { name: "child_parent_edges", script: `a.b -> a a.b -> a.b.c a.b.c.d -> a.b`, + dagreFeatureError: `Connection "(a.b -> a)[0]" goes from a container to a descendant, but layout engine "dagre" does not support this.`, }, { name: "container_label_loop", @@ -27,6 +29,7 @@ a.b.c.d -> a.b`, b -> c } a -> a`, + dagreFeatureError: `Connection "(a -> a)[0]" is a self loop on a container, but layout engine "dagre" does not support this.`, }, { // as nesting gets deeper, the groups advance towards `c` and may overlap its lifeline diff --git a/testdata/d2compiler/TestCompile/sequence-timestamp.exp.json b/testdata/d2compiler/TestCompile/sequence-timestamp.exp.json new file mode 100644 index 000000000..c41a4f00b --- /dev/null +++ b/testdata/d2compiler/TestCompile/sequence-timestamp.exp.json @@ -0,0 +1,608 @@ +{ + "graph": { + "name": "", + "ast": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,0:0:0-10:0:137", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,0:0:0-0:23:23", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,0:0:0-0:5:5", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,0:0:0-0:5:5", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,0:7:7-0:23:23", + "value": [ + { + "string": "sequence_diagram", + "raw_string": "sequence_diagram" + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,1:0:24-1:1:25", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,1:0:24-1:1:25", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,1:0:24-1:1:25", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,2:0:26-2:1:27", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,2:0:26-2:1:27", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,2:0:26-2:1:27", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,4:0:29-9:1:136", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,4:0:29-4:13:42", + "path": [ + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,4:0:29-4:13:42", + "value": [ + { + "string": "04:20,11:20", + "raw_string": "04:20,11:20" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,4:15:44-9:0:135", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,5:2:48-8:3:134", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,5:2:48-5:27:73", + "path": [ + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,5:2:48-5:27:73", + "value": [ + { + "string": "loop through each table", + "raw_string": "loop through each table" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,5:29:75-8:2:133", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,6:4:81-6:42:119", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,6:4:81-6:42:119", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,6:4:81-6:5:82", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,6:6:83-6:42:119", + "value": [ + { + "string": "start_time = datetime.datetime.now", + "raw_string": "start_time = datetime.datetime.now" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,7:4:124-7:10:130", + "edges": [ + { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,7:4:124-7:10:130", + "src": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,7:4:124-7:6:126", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,7:4:124-7:5:125", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,7:8:128-7:10:130", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,7:9:129-7:10:130", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "sequence_diagram" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "a", + "id_val": "a", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,1:0:24-1:1:25", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,1:0:24-1:1:25", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,6:4:81-6:42:119", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,6:4:81-6:5:82", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,6:6:83-6:42:119", + "value": [ + { + "string": "start_time = datetime.datetime.now", + "raw_string": "start_time = datetime.datetime.now" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,7:4:124-7:6:126", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,7:4:124-7:5:125", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,2:0:26-2:1:27", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,2:0:26-2:1:27", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,7:8:128-7:10:130", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,7:9:129-7:10:130", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "\"04:20,11:20\"", + "id_val": "04:20,11:20", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,4:0:29-4:13:42", + "path": [ + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,4:0:29-4:13:42", + "value": [ + { + "string": "04:20,11:20", + "raw_string": "04:20,11:20" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "04:20,11:20" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "loop through each table", + "id_val": "loop through each table", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,5:2:48-5:27:73", + "path": [ + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,5:2:48-5:27:73", + "value": [ + { + "string": "loop through each table", + "raw_string": "loop through each table" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "loop through each table" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "\"start_time = datetime.datetime.now\"", + "id_val": "start_time = datetime.datetime.now", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,6:4:81-6:42:119", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,6:4:81-6:5:82", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/sequence-timestamp.d2,6:6:83-6:42:119", + "value": [ + { + "string": "start_time = datetime.datetime.now", + "raw_string": "start_time = datetime.datetime.now" + } + ] + } + } + ] + }, + "key_path_index": 1, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "start_time = datetime.datetime.now" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ] + }, + "err": null +} diff --git a/testdata/d2oracle/TestDelete/chaos_1.exp.json b/testdata/d2oracle/TestDelete/chaos_1.exp.json new file mode 100644 index 000000000..8c4a7ec9f --- /dev/null +++ b/testdata/d2oracle/TestDelete/chaos_1.exp.json @@ -0,0 +1,528 @@ +{ + "graph": { + "name": "", + "ast": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,0:0:0-8:0:94", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,0:0:0-0:21:21", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,0:0:0-0:2:2", + "value": [ + { + "string": "cm", + "raw_string": "cm" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,0:4:4-0:20:20", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,0:5:5-0:20:20", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,0:5:5-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,0:5:5-0:10:10", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,0:12:12-0:20:20", + "value": [ + { + "string": "cylinder", + "raw_string": "cylinder" + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:0:22-1:52:74", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:0:22-1:9:31", + "src": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:0:22-1:3:25", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:0:22-1:2:24", + "value": [ + { + "string": "cm", + "raw_string": "cm" + } + ] + } + } + ] + }, + "src_arrow": "<", + "dst": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:6:28-1:9:31", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:7:29-1:9:31", + "value": [ + { + "string": "cm", + "raw_string": "cm" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:11:33-1:51:73", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:12:34-1:51:73", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:12:34-1:34:56", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:12:34-1:28:50", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:29:51-1:34:56", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:36:58-1:51:73", + "value": [ + { + "string": "cf-one-required", + "raw_string": "cf-one-required" + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,2:0:75-2:5:80", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,2:0:75-2:2:77", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,2:0:75-2:2:77", + "value": [ + { + "string": "mt", + "raw_string": "mt" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,2:4:79-2:5:80", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,3:0:81-3:6:87", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,3:0:81-3:6:87", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,3:0:81-3:6:87", + "value": [ + { + "string": "cdpdxz", + "raw_string": "cdpdxz" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,7:0:91-7:2:93", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,7:0:91-7:2:93", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,7:0:91-7:2:93", + "value": [ + { + "string": "cm", + "raw_string": "cm" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": true, + "srcArrowhead": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "cf-one-required" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "cm", + "id_val": "cm", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,0:0:0-0:2:2", + "value": [ + { + "string": "cm", + "raw_string": "cm" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:0:22-1:3:25", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:0:22-1:2:24", + "value": [ + { + "string": "cm", + "raw_string": "cm" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:6:28-1:9:31", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,1:7:29-1:9:31", + "value": [ + { + "string": "cm", + "raw_string": "cm" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,7:0:91-7:2:93", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,7:0:91-7:2:93", + "value": [ + { + "string": "cm", + "raw_string": "cm" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "cm" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "cylinder" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "mt", + "id_val": "mt", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,2:0:75-2:2:77", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,2:0:75-2:2:77", + "value": [ + { + "string": "mt", + "raw_string": "mt" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "z" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "cdpdxz", + "id_val": "cdpdxz", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,3:0:81-3:6:87", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/chaos_1.d2,3:0:81-3:6:87", + "value": [ + { + "string": "cdpdxz", + "raw_string": "cdpdxz" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "cdpdxz" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestDelete/delete_container_of_near.exp.json b/testdata/d2oracle/TestDelete/delete_container_of_near.exp.json new file mode 100644 index 000000000..9dcbd5845 --- /dev/null +++ b/testdata/d2oracle/TestDelete/delete_container_of_near.exp.json @@ -0,0 +1,1504 @@ +{ + "graph": { + "name": "", + "ast": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,0:0:0-10:0:255", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,0:0:0-0:15:15", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,0:0:0-0:9:9", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,0:0:0-0:9:9", + "value": [ + { + "string": "direction", + "raw_string": "direction" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,0:11:11-0:15:15", + "value": [ + { + "string": "down", + "raw_string": "down" + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,1:0:16-1:25:41", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,1:0:16-1:25:41", + "src": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,1:0:16-1:12:28", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,1:0:16-1:11:27", + "value": [ + { + "string": "first input", + "raw_string": "first input" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,1:14:30-1:25:41", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,1:15:31-1:25:41", + "value": [ + { + "string": "start game", + "raw_string": "start game" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,3:0:43-3:35:78", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,3:0:43-3:35:78", + "src": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,3:0:43-3:6:49", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,3:0:43-3:5:48", + "value": [ + { + "string": "input", + "raw_string": "input" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,3:8:51-3:35:78", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,3:9:52-3:35:78", + "value": [ + { + "string": "increase bird top velocity", + "raw_string": "increase bird top velocity" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:0:80-5:33:113", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:0:80-5:24:104", + "src": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:0:80-5:10:90", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:0:80-5:9:89", + "value": [ + { + "string": "move bird", + "raw_string": "move bird" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:12:92-5:24:104", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:13:93-5:23:103", + "value": [ + { + "string": "move pipes", + "raw_string": "move pipes" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:12:92-5:33:113", + "src": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:12:92-5:24:104", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:13:93-5:23:103", + "value": [ + { + "string": "move pipes", + "raw_string": "move pipes" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:26:106-5:33:113", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:27:107-5:33:113", + "value": [ + { + "string": "render", + "raw_string": "render" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:0:115-7:59:174", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:0:115-7:23:138", + "src": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:0:115-7:7:122", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:0:115-7:6:121", + "value": [ + { + "string": "render", + "raw_string": "render" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:9:124-7:23:138", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:10:125-7:22:137", + "value": [ + { + "string": "no collision", + "raw_string": "no collision" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:9:124-7:47:162", + "src": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:9:124-7:23:138", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:10:125-7:22:137", + "value": [ + { + "string": "no collision", + "raw_string": "no collision" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:25:140-7:47:162", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:26:141-7:46:161", + "value": [ + { + "string": "wait 16 milliseconds", + "raw_string": "wait 16 milliseconds" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:25:140-7:59:174", + "src": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:25:140-7:47:162", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:26:141-7:46:161", + "value": [ + { + "string": "wait 16 milliseconds", + "raw_string": "wait 16 milliseconds" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:49:164-7:59:174", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:50:165-7:59:174", + "value": [ + { + "string": "move bird", + "raw_string": "move bird" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:0:175-8:41:216", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:0:175-8:29:204", + "src": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:0:175-8:7:182", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:0:175-8:6:181", + "value": [ + { + "string": "render", + "raw_string": "render" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:9:184-8:29:204", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:10:185-8:28:203", + "value": [ + { + "string": "collision detected", + "raw_string": "collision detected" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:9:184-8:41:216", + "src": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:9:184-8:29:204", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:10:185-8:28:203", + "value": [ + { + "string": "collision detected", + "raw_string": "collision detected" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:31:206-8:41:216", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:32:207-8:41:216", + "value": [ + { + "string": "game over", + "raw_string": "game over" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,9:0:217-9:37:254", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,9:0:217-9:17:234", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,9:0:217-9:12:229", + "value": [ + { + "string": "no collision", + "raw_string": "no collision" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,9:13:230-9:17:234", + "value": [ + { + "string": "near", + "raw_string": "near" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,9:19:236-9:37:254", + "value": [ + { + "string": "collision detected", + "raw_string": "collision detected" + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "down" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 1 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 1 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 2 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 1 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "first input", + "id_val": "first input", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,1:0:16-1:12:28", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,1:0:16-1:11:27", + "value": [ + { + "string": "first input", + "raw_string": "first input" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "first input" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "start game", + "id_val": "start game", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,1:14:30-1:25:41", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,1:15:31-1:25:41", + "value": [ + { + "string": "start game", + "raw_string": "start game" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "start game" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "input", + "id_val": "input", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,3:0:43-3:6:49", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,3:0:43-3:5:48", + "value": [ + { + "string": "input", + "raw_string": "input" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "input" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "increase bird top velocity", + "id_val": "increase bird top velocity", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,3:8:51-3:35:78", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,3:9:52-3:35:78", + "value": [ + { + "string": "increase bird top velocity", + "raw_string": "increase bird top velocity" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "increase bird top velocity" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "move bird", + "id_val": "move bird", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:0:80-5:10:90", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:0:80-5:9:89", + "value": [ + { + "string": "move bird", + "raw_string": "move bird" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:49:164-7:59:174", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:50:165-7:59:174", + "value": [ + { + "string": "move bird", + "raw_string": "move bird" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 2 + } + ], + "attributes": { + "label": { + "value": "move bird" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "move pipes", + "id_val": "move pipes", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:12:92-5:24:104", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:13:93-5:23:103", + "value": [ + { + "string": "move pipes", + "raw_string": "move pipes" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:12:92-5:24:104", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:13:93-5:23:103", + "value": [ + { + "string": "move pipes", + "raw_string": "move pipes" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 1 + } + ], + "attributes": { + "label": { + "value": "move pipes" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "render", + "id_val": "render", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:26:106-5:33:113", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,5:27:107-5:33:113", + "value": [ + { + "string": "render", + "raw_string": "render" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:0:115-7:7:122", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:0:115-7:6:121", + "value": [ + { + "string": "render", + "raw_string": "render" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:0:175-8:7:182", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:0:175-8:6:181", + "value": [ + { + "string": "render", + "raw_string": "render" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "render" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "no collision", + "id_val": "no collision", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:9:124-7:23:138", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:10:125-7:22:137", + "value": [ + { + "string": "no collision", + "raw_string": "no collision" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:9:124-7:23:138", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:10:125-7:22:137", + "value": [ + { + "string": "no collision", + "raw_string": "no collision" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,9:0:217-9:17:234", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,9:0:217-9:12:229", + "value": [ + { + "string": "no collision", + "raw_string": "no collision" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,9:13:230-9:17:234", + "value": [ + { + "string": "near", + "raw_string": "near" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "no collision" + }, + "style": {}, + "near_key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,9:19:236-9:37:254", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:18:18", + "value": [ + { + "string": "collision detected", + "raw_string": "collision detected" + } + ] + } + } + ] + }, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "wait 16 milliseconds", + "id_val": "wait 16 milliseconds", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:25:140-7:47:162", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:26:141-7:46:161", + "value": [ + { + "string": "wait 16 milliseconds", + "raw_string": "wait 16 milliseconds" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:25:140-7:47:162", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,7:26:141-7:46:161", + "value": [ + { + "string": "wait 16 milliseconds", + "raw_string": "wait 16 milliseconds" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 2 + } + ], + "attributes": { + "label": { + "value": "wait 16 milliseconds" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "collision detected", + "id_val": "collision detected", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:9:184-8:29:204", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:10:185-8:28:203", + "value": [ + { + "string": "collision detected", + "raw_string": "collision detected" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:9:184-8:29:204", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:10:185-8:28:203", + "value": [ + { + "string": "collision detected", + "raw_string": "collision detected" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 1 + } + ], + "attributes": { + "label": { + "value": "collision detected" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "game over", + "id_val": "game over", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:31:206-8:41:216", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/delete_container_of_near.d2,8:32:207-8:41:216", + "value": [ + { + "string": "game over", + "raw_string": "game over" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 1 + } + ], + "attributes": { + "label": { + "value": "game over" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ] + }, + "err": "" +}