Files
regorus/tests/interpreter/cases/loop/chained.yaml
Anand Krishnamoorthi 951bb6b14c Handle chained _ (#27)
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-10-17 19:32:42 -07:00

153 lines
3.5 KiB
YAML

# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
cases:
- note: chained
data: {}
modules:
- |
package test
sites := [
{
"region": "east",
"name": "prod",
"servers": [
{
"name": "web-0",
"hostname": "hydrogen"
},
{
"name": "web-1",
"hostname": "helium"
},
{
"name": "db-0",
"hostname": "lithium"
}
]
},
{
"region": "west",
"name": "smoke",
"servers": [
{
"name": "web-1000",
"hostname": "beryllium"
},
{
"name": "web-1001",
"hostname": "boron"
},
{
"name": "db-1000",
"hostname": "carbon"
}
]
},
{
"region": "west",
"name": "dev",
"servers": [
{
"name": "web-dev",
"hostname": "nitrogen"
},
{
"name": "db-dev",
"hostname": "oxygen"
}
]
}
]
apps := [
{
"name": "web",
"servers": ["web-0", "web-1", "web-1000", "web-1001", "web-dev"]
},
{
"name": "mysql",
"servers": ["db-0", "db-1000"]
},
{
"name": "mongodb",
"servers": ["db-dev"]
}
]
containers := [
{
"image": "redis",
"ipaddress": "10.0.0.1",
"name": "big_stallman"
},
{
"image": "nginx",
"ipaddress": "10.0.0.2",
"name": "cranky_euclid"
}
]
x1[y] {
y = sites[_].servers[_].hostname
}
x5[y] {
y = sites[i].servers[i].hostname
}
obj = {
"a" : {
"a" : "b",
"b" : "c"
},
"c" : {
"c" : "d"
}
}
x6[y] {
y = obj[i][i]
}
# Another definition for x6
x6[y] {
y = obj[i][obj[i][i]]
}
x7[y] {
y = obj[i][obj[i][i]]
}
results = {
"x1" : x1,
"x2" : x1 == { y | y = sites[i].servers[_].hostname },
"x3" : x1 == { y | y = sites[_].servers[i].hostname },
"x4" : x1 == { y | y = sites[i].servers[j].hostname },
"x6" : x6,
"x7" : x7,
}
query: data.test.results
want_result:
x1:
set!: [
"beryllium",
"boron",
"carbon",
"helium",
"hydrogen",
"lithium",
"nitrogen",
"oxygen",
]
x2: true
x3: true
x4: true
x6:
set!: ["b", "c", "d"]
x7:
set!: ["c"]