d2ir: Add recursive scenario/step test

This commit is contained in:
Anmol Sethi 2023-01-18 07:47:42 -08:00
parent 26a72e3e0c
commit ece34aaf01
No known key found for this signature in database
GPG key ID: 25BC68888A99A8BA
3 changed files with 3200 additions and 7 deletions

View file

@ -43,8 +43,8 @@ func (c *compiler) compileScenarios(m *Map) {
} }
base := m.Copy(sf).(*Map) base := m.Copy(sf).(*Map)
sf.Composite = Overlay(base, sf.Map()) sf.Composite = Overlay(base, sf.Map())
c.compileScenarios(sf.Map() c.compileScenarios(sf.Map())
c.compileSteps(sf.Map() c.compileSteps(sf.Map())
} }
} }
@ -71,8 +71,8 @@ func (c *compiler) compileSteps(m *Map) {
base = steps.Fields[i-1].Map().Copy(sf).(*Map) base = steps.Fields[i-1].Map().Copy(sf).(*Map)
} }
sf.Composite = Overlay(base, sf.Map()) sf.Composite = Overlay(base, sf.Map())
c.compileScenarios(sf.Map() c.compileScenarios(sf.Map())
c.compileSteps(sf.Map() c.compileSteps(sf.Map())
} }
} }

View file

@ -430,7 +430,7 @@ steps: {
}`) }`)
assert.Success(t, err) assert.Success(t, err)
assertQuery(t, m, 16, 3, nil, "") assertQuery(t, m, 25, 4, nil, "")
assertQuery(t, m, 0, 0, nil, "x") assertQuery(t, m, 0, 0, nil, "x")
assertQuery(t, m, 0, 0, nil, "y") assertQuery(t, m, 0, 0, nil, "y")
@ -444,7 +444,7 @@ steps: {
assertQuery(t, m, 1, 0, nil, "steps.bingo.p.q") assertQuery(t, m, 1, 0, nil, "steps.bingo.p.q")
assertQuery(t, m, 0, 0, nil, "steps.bingo.p.q.z") assertQuery(t, m, 0, 0, nil, "steps.bingo.p.q.z")
assertQuery(t, m, 6, 1, nil, "steps.nuclear") assertQuery(t, m, 15, 2, nil, "steps.nuclear")
assertQuery(t, m, 0, 0, nil, "steps.nuclear.x") assertQuery(t, m, 0, 0, nil, "steps.nuclear.x")
assertQuery(t, m, 0, 0, nil, "steps.nuclear.y") assertQuery(t, m, 0, 0, nil, "steps.nuclear.y")
assertQuery(t, m, 0, 0, nil, `steps.nuclear.(x -> y)[0]`) assertQuery(t, m, 0, 0, nil, `steps.nuclear.(x -> y)[0]`)
@ -453,7 +453,7 @@ steps: {
assertQuery(t, m, 0, 0, nil, "steps.nuclear.p.q.z") assertQuery(t, m, 0, 0, nil, "steps.nuclear.p.q.z")
assertQuery(t, m, 0, 0, nil, "steps.nuclear.quiche") assertQuery(t, m, 0, 0, nil, "steps.nuclear.quiche")
assertQuery(t, m, 6, 1, nil, "steps.nuclear.scenarios.bavarian") assertQuery(t, m, 7, 1, nil, "steps.nuclear.scenarios.bavarian")
assertQuery(t, m, 0, 0, nil, "steps.nuclear.scenarios.bavarian.x") assertQuery(t, m, 0, 0, nil, "steps.nuclear.scenarios.bavarian.x")
assertQuery(t, m, 0, 0, nil, "steps.nuclear.scenarios.bavarian.y") assertQuery(t, m, 0, 0, nil, "steps.nuclear.scenarios.bavarian.y")
assertQuery(t, m, 0, 0, nil, `steps.nuclear.scenarios.bavarian.(x -> y)[0]`) assertQuery(t, m, 0, 0, nil, `steps.nuclear.scenarios.bavarian.(x -> y)[0]`)

3193
testdata/d2ir/TestCompile/steps/recursive.exp.json generated vendored Normal file

File diff suppressed because it is too large Load diff