linters+testdata: Reformat all yaml testcases for linting. (#6511)

This commit adds a config for yamllint, mass-reformats all of
the existing Yaml testcases to pass linting, and adds a Yaml
linting job to the pull-request Github Actions workflow. A few 
careful exceptions and ignores were added to the linter's
config to allow keeping our existing Yaml files with minimal
reformatting.

Signed-off-by: Philip Conrad <philipaconrad@gmail.com>
This commit is contained in:
Philip Conrad
2024-01-10 13:16:01 -05:00
committed by GitHub
parent 018b8adc04
commit 63e1877c48
1140 changed files with 30361 additions and 29120 deletions
+14 -2
View File
@@ -128,6 +128,19 @@ jobs:
run: make check
timeout-minutes: 30
yaml-lint:
name: YAML Lint
runs-on: ubuntu-22.04
steps:
- name: Check out code
uses: actions/checkout@v4
- name: YAML Style and Lint Check
run: make check-yaml-tests
timeout-minutes: 30
env:
YAML_LINT_FORMAT: github
wasm:
name: WASM
runs-on: ubuntu-22.04
@@ -291,7 +304,6 @@ jobs:
env:
DOCKER_RUNNING: 0
# Run PR metadata against Rego policies
rego-check-pr:
name: Rego PR checks
@@ -315,7 +327,7 @@ jobs:
run: |
curl --silent --fail --header 'Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' -o files.json \
https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files
opa eval -d build/policy/files.rego -d build/policy/helpers.rego --format values --input files.json \
--fail-defined 'data.files.deny[message]'
env:
+12
View File
@@ -0,0 +1,12 @@
extends: default
rules:
# Some of our testcases end up going past the default 80 character limit.
line-length: false
braces:
max-spaces-inside: 1
comments:
min-spaces-from-content: 1
indentation:
ignore:
- test-time-*
+10
View File
@@ -29,6 +29,8 @@ GO_TAGS = -tags=opa_wasm
endif
GOLANGCI_LINT_VERSION := v1.51.0
YAML_LINT_VERSION := 0.29.0
YAML_LINT_FORMAT ?= auto
DOCKER_RUNNING ?= $(shell docker ps >/dev/null 2>&1 && echo 1 || echo 0)
@@ -474,6 +476,14 @@ check-go-module:
$(RELEASE_BUILD_IMAGE) \
/bin/bash -c "git config --system --add safe.directory /src && go mod vendor -v"
.PHONY: check-yaml-tests
check-yaml-tests:
ifeq ($(DOCKER_RUNNING), 1)
docker run --rm -v $(shell pwd):/data:ro,Z -w /data pipelinecomponents/yamllint:${YAML_LINT_VERSION} yamllint -f $(YAML_LINT_FORMAT) test/cases/testdata
else
@echo "Docker not installed or running. Skipping yamllint run."
endif
######################################################
#
# Release targets
+5
View File
@@ -15,6 +15,7 @@ Requirements:
- GitHub account (if you are contributing)
- Go (version 1.15+ is supported though older versions are likely to work)
- GNU Make
- Python3, pip, yamllint (if linting YAML files manually)
## Getting Started
@@ -71,6 +72,10 @@ git rebase upstream/main
> Be sure to run `make check` before submitting your pull request. You
> may need to run `go fmt` on your code to make it comply with standard Go
> style.
> For YAML files, you may need to run the `yamllint` tool on the
> `test/cases/testdata` folder to make sure any new tests are well-formatted.
> If you have Docker available, you can run `make check-yaml-tests` to
> run `yamllint` on the tests without installing any Python dependencies.
### Submission
+20 -19
View File
@@ -1,21 +1,22 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p[x] {
__local0__ = data.a
count(__local0__, x)
}
note: aggregates/count
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 4
p[x] {
__local0__ = data.a
count(__local0__, x)
}
note: aggregates/count
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 4
+23 -22
View File
@@ -1,25 +1,26 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p[x] {
__local0__ = [y | data.generated.q[y]]
count(__local0__, x)
}
p[x] {
__local0__ = [y | data.generated.q[y]]
count(__local0__, x)
}
q[x] {
x = data.a[_]
}
note: aggregates/count virtual
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 4
q[x] {
x = data.a[_]
}
note: aggregates/count virtual
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 4
+18 -17
View File
@@ -1,19 +1,20 @@
---
cases:
- data:
b:
v1: hello
v2: goodbye
modules:
- |
package generated
- data:
b:
v1: hello
v2: goodbye
modules:
- |
package generated
p[x] {
__local0__ = data.b
count(__local0__, x)
}
note: aggregates/count keys
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 2
p[x] {
__local0__ = data.b
count(__local0__, x)
}
note: aggregates/count keys
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 2
+21 -20
View File
@@ -1,23 +1,24 @@
---
cases:
- data:
b:
v1: hello
v2: goodbye
modules:
- |
package generated
- data:
b:
v1: hello
v2: goodbye
modules:
- |
package generated
p[x] {
__local0__ = [k | data.generated.q[k] = _]
count(__local0__, x)
}
p[x] {
__local0__ = [k | data.generated.q[k] = _]
count(__local0__, x)
}
q[k] = v {
data.b[k] = v
}
note: aggregates/count keys virtual
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 2
q[k] = v {
data.b[k] = v
}
note: aggregates/count keys virtual
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 2
+21 -20
View File
@@ -1,23 +1,24 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p = x {
__local0__ = data.generated.q
count(__local0__, x)
}
p = x {
__local0__ = data.generated.q
count(__local0__, x)
}
q[x] {
x = data.a[_]
}
note: aggregates/count set
query: data.generated.p = x
want_result:
- x: 4
q[x] {
x = data.a[_]
}
note: aggregates/count set
query: data.generated.p = x
want_result:
- x: 4
+14 -13
View File
@@ -1,15 +1,16 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p[x] {
sum([1, 2, 3, 4], x)
}
note: aggregates/sum
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 10
p[x] {
sum([1, 2, 3, 4], x)
}
note: aggregates/sum
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 10
+12 -11
View File
@@ -1,13 +1,14 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
sum({1, 2, 3, 4}, x)
}
note: aggregates/sum set
query: data.generated.p = x
want_result:
- x: 10
p = x {
sum({1, 2, 3, 4}, x)
}
note: aggregates/sum set
query: data.generated.p = x
want_result:
- x: 10
+23 -22
View File
@@ -1,25 +1,26 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p[x] {
__local0__ = [y | data.generated.q[y]]
sum(__local0__, x)
}
p[x] {
__local0__ = [y | data.generated.q[y]]
sum(__local0__, x)
}
q[x] {
data.a[_] = x
}
note: aggregates/sum virtual
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 10
q[x] {
data.a[_] = x
}
note: aggregates/sum virtual
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 10
+21 -20
View File
@@ -1,23 +1,24 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p = x {
__local0__ = data.generated.q
sum(__local0__, x)
}
p = x {
__local0__ = data.generated.q
sum(__local0__, x)
}
q[x] {
data.a[_] = x
}
note: aggregates/sum virtual set
query: data.generated.p = x
want_result:
- x: 10
q[x] {
data.a[_] = x
}
note: aggregates/sum virtual set
query: data.generated.p = x
want_result:
- x: 10
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p {
sum([49649733057, 1], __local0__)
__local0__ = 49649733058
}
note: aggregates/bug 2469 - precision
query: data.generated.p = x
want_result:
- x: true
p {
sum([49649733057, 1], __local0__)
__local0__ = 49649733058
}
note: aggregates/bug 2469 - precision
query: data.generated.p = x
want_result:
- x: true
+12 -11
View File
@@ -1,13 +1,14 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p {
product([1, 2, 3, 4], 24)
}
note: aggregates/product
query: data.generated.p = x
want_result:
- x: true
p {
product([1, 2, 3, 4], 24)
}
note: aggregates/product
query: data.generated.p = x
want_result:
- x: true
+12 -11
View File
@@ -1,13 +1,14 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
product({1, 2, 3, 4}, x)
}
note: aggregates/product set
query: data.generated.p = x
want_result:
- x: 24
p = x {
product({1, 2, 3, 4}, x)
}
note: aggregates/product set
query: data.generated.p = x
want_result:
- x: 24
+14 -13
View File
@@ -1,15 +1,16 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p[x] {
max([1, 2, 3, 4], x)
}
note: aggregates/max
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 4
p[x] {
max([1, 2, 3, 4], x)
}
note: aggregates/max
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 4
+12 -11
View File
@@ -1,13 +1,14 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
max({1, 2, 3, 4}, x)
}
note: aggregates/max set
query: data.generated.p = x
want_result:
- x: 4
p = x {
max({1, 2, 3, 4}, x)
}
note: aggregates/max set
query: data.generated.p = x
want_result:
- x: 4
+23 -22
View File
@@ -1,25 +1,26 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p[x] {
__local0__ = [y | data.generated.q[y]]
max(__local0__, x)
}
p[x] {
__local0__ = [y | data.generated.q[y]]
max(__local0__, x)
}
q[x] {
data.a[_] = x
}
note: aggregates/max virtual
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 4
q[x] {
data.a[_] = x
}
note: aggregates/max virtual
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 4
+21 -20
View File
@@ -1,23 +1,24 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p = x {
__local0__ = data.generated.q
max(__local0__, x)
}
p = x {
__local0__ = data.generated.q
max(__local0__, x)
}
q[x] {
data.a[_] = x
}
note: aggregates/max virtual set
query: data.generated.p = x
want_result:
- x: 4
q[x] {
data.a[_] = x
}
note: aggregates/max virtual set
query: data.generated.p = x
want_result:
- x: 4
+14 -13
View File
@@ -1,15 +1,16 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p[x] {
min([1, 2, 3, 4], x)
}
note: aggregates/min
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 1
p[x] {
min([1, 2, 3, 4], x)
}
note: aggregates/min
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 1
+14 -13
View File
@@ -1,15 +1,16 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p[x] {
min([1, 2, 1, 3, 4], x)
}
note: aggregates/min dups
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 1
p[x] {
min([1, 2, 1, 3, 4], x)
}
note: aggregates/min dups
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 1
+14 -13
View File
@@ -1,15 +1,16 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p[x] {
min([3, 2, 1, 4, 6, -7, 10], x)
}
note: aggregates/min out-of-order
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- -7
p[x] {
min([3, 2, 1, 4, 6, -7, 10], x)
}
note: aggregates/min out-of-order
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- -7
+12 -11
View File
@@ -1,13 +1,14 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
min({1, 2, 3, 4}, x)
}
note: aggregates/min set
query: data.generated.p = x
want_result:
- x: 1
p = x {
min({1, 2, 3, 4}, x)
}
note: aggregates/min set
query: data.generated.p = x
want_result:
- x: 1
+23 -22
View File
@@ -1,25 +1,26 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p[x] {
__local0__ = [y | data.generated.q[y]]
min(__local0__, x)
}
p[x] {
__local0__ = [y | data.generated.q[y]]
min(__local0__, x)
}
q[x] {
data.a[_] = x
}
note: aggregates/min virtual
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 1
q[x] {
data.a[_] = x
}
note: aggregates/min virtual
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 1
+21 -20
View File
@@ -1,23 +1,24 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p = x {
__local0__ = data.generated.q
min(__local0__, x)
}
p = x {
__local0__ = data.generated.q
min(__local0__, x)
}
q[x] {
data.a[_] = x
}
note: aggregates/min virtual set
query: data.generated.p = x
want_result:
- x: 1
q[x] {
data.a[_] = x
}
note: aggregates/min virtual set
query: data.generated.p = x
want_result:
- x: 1
+18 -17
View File
@@ -1,19 +1,20 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p {
__local0__ = data.a[3]
max([1, 2, 3, 4], __local0__)
}
note: aggregates/reduce ref dest
query: data.generated.p = x
want_result:
- x: true
p {
__local0__ = data.a[3]
max([1, 2, 3, 4], __local0__)
}
note: aggregates/reduce ref dest
query: data.generated.p = x
want_result:
- x: true
+18 -17
View File
@@ -1,19 +1,20 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p {
__local0__ = data.a[3]
not max([1, 2, 3, 4, 5], __local0__)
}
note: aggregates/reduce ref dest (2)
query: data.generated.p = x
want_result:
- x: true
p {
__local0__ = data.a[3]
not max([1, 2, 3, 4, 5], __local0__)
}
note: aggregates/reduce ref dest (2)
query: data.generated.p = x
want_result:
- x: true
+16 -15
View File
@@ -1,17 +1,18 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
sort([4, 3, 2, 1], x)
}
note: aggregates/sort
query: data.generated.p = x
want_result:
- x:
- 1
- 2
- 3
- 4
p = x {
sort([4, 3, 2, 1], x)
}
note: aggregates/sort
query: data.generated.p = x
want_result:
- x:
- 1
- 2
- 3
- 4
+16 -15
View File
@@ -1,17 +1,18 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
sort({1, 2, 3, 4}, x)
}
note: aggregates/sort set
query: data.generated.p = x
want_result:
- x:
- 1
- 2
- 3
- 4
p = x {
sort({1, 2, 3, 4}, x)
}
note: aggregates/sort set
query: data.generated.p = x
want_result:
- x:
- 1
- 2
- 3
- 4
+21 -20
View File
@@ -1,23 +1,24 @@
---
cases:
- modules:
- |
package generated
- modules:
- |
package generated
p = x {
count("abcde", x)
}
note: aggregates/count string
query: data.generated.p = x
want_result:
- x: 5
- modules:
- |
package generated
p = x {
count("abcde", x)
}
note: aggregates/count string
query: data.generated.p = x
want_result:
- x: 5
- modules:
- |
package generated
p = x {
count("åäö", x)
}
note: aggregates/count string
query: data.generated.p = x
want_result:
- x: 3
p = x {
count("åäö", x)
}
note: aggregates/count string
query: data.generated.p = x
want_result:
- x: 3
+27 -26
View File
@@ -1,29 +1,30 @@
---
cases:
- modules:
- |
package generated
- modules:
- |
package generated
p = x {
count(input.foo, x)
}
note: aggregates/count error null
query: data.generated.p = x
input:
foo: null
strict_error: true
want_error_code: eval_type_error
want_error: 'operand 1 must be one of {array, object, set, string} but got null'
- modules:
- |
package generated
p = x {
count(input.foo, x)
}
note: aggregates/count error null
query: data.generated.p = x
input:
foo: null
strict_error: true
want_error_code: eval_type_error
want_error: "operand 1 must be one of {array, object, set, string} but got null"
- modules:
- |
package generated
p = x {
count(input.foo, x)
}
note: aggregates/count error number
query: data.generated.p = x
input:
foo: 5
strict_error: true
want_error_code: eval_type_error
want_error: 'operand 1 must be one of {array, object, set, string} but got number'
p = x {
count(input.foo, x)
}
note: aggregates/count error number
query: data.generated.p = x
input:
foo: 5
strict_error: true
want_error_code: eval_type_error
want_error: "operand 1 must be one of {array, object, set, string} but got number"
@@ -1,15 +1,16 @@
---
cases:
- data:
modules:
- |
package test
- data:
modules:
- |
package test
p[x] {
x := count(base64.decode("2E84ZuPUd7zfvCZSNEchVpDEIj6PL7JfLpIqyxVG16k="))
}
note: aggregates/count with invalid utf-8 chars (0xFFFD)
query: data.test.p = x
sort_bindings: true
want_result:
- x:
- 30
p[x] {
x := count(base64.decode("2E84ZuPUd7zfvCZSNEchVpDEIj6PL7JfLpIqyxVG16k="))
}
note: aggregates/count with invalid utf-8 chars (0xFFFD)
query: data.test.p = x
sort_bindings: true
want_result:
- x:
- 30
File diff suppressed because it is too large Load Diff
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = __local0__ {
all(set(), __local1__)
__local0__ = __local1__
}
note: all/empty set
query: data.generated.p = x
want_result:
- x: true
p = __local0__ {
all(set(), __local1__)
__local0__ = __local1__
}
note: all/empty set
query: data.generated.p = x
want_result:
- x: true
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = __local0__ {
all([], __local1__)
__local0__ = __local1__
}
note: all/empty array
query: data.generated.p = x
want_result:
- x: true
p = __local0__ {
all([], __local1__)
__local0__ = __local1__
}
note: all/empty array
query: data.generated.p = x
want_result:
- x: true
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = __local0__ {
all({true}, __local1__)
__local0__ = __local1__
}
note: all/set success
query: data.generated.p = x
want_result:
- x: true
p = __local0__ {
all({true}, __local1__)
__local0__ = __local1__
}
note: all/set success
query: data.generated.p = x
want_result:
- x: true
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = __local0__ {
all([true, true, true], __local1__)
__local0__ = __local1__
}
note: all/array success
query: data.generated.p = x
want_result:
- x: true
p = __local0__ {
all([true, true, true], __local1__)
__local0__ = __local1__
}
note: all/array success
query: data.generated.p = x
want_result:
- x: true
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = __local0__ {
all({false, true}, __local1__)
__local0__ = __local1__
}
note: all/set fail
query: data.generated.p = x
want_result:
- x: false
p = __local0__ {
all({false, true}, __local1__)
__local0__ = __local1__
}
note: all/set fail
query: data.generated.p = x
want_result:
- x: false
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = __local0__ {
all([false, true, true], __local1__)
__local0__ = __local1__
}
note: all/array fail
query: data.generated.p = x
want_result:
- x: false
p = __local0__ {
all([false, true, true], __local1__)
__local0__ = __local1__
}
note: all/array fail
query: data.generated.p = x
want_result:
- x: false
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = __local0__ {
all([{}, "", true, true, 123], __local1__)
__local0__ = __local1__
}
note: all/other types
query: data.generated.p = x
want_result:
- x: false
p = __local0__ {
all([{}, "", true, true, 123], __local1__)
__local0__ = __local1__
}
note: all/other types
query: data.generated.p = x
want_result:
- x: false
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = __local0__ {
any(set(), __local1__)
__local0__ = __local1__
}
note: any/empty set
query: data.generated.p = x
want_result:
- x: false
p = __local0__ {
any(set(), __local1__)
__local0__ = __local1__
}
note: any/empty set
query: data.generated.p = x
want_result:
- x: false
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = __local0__ {
any([], __local1__)
__local0__ = __local1__
}
note: any/empty array
query: data.generated.p = x
want_result:
- x: false
p = __local0__ {
any([], __local1__)
__local0__ = __local1__
}
note: any/empty array
query: data.generated.p = x
want_result:
- x: false
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = __local0__ {
any({false, true}, __local1__)
__local0__ = __local1__
}
note: any/set success
query: data.generated.p = x
want_result:
- x: true
p = __local0__ {
any({false, true}, __local1__)
__local0__ = __local1__
}
note: any/set success
query: data.generated.p = x
want_result:
- x: true
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = __local0__ {
any([true, true, true, false, false], __local1__)
__local0__ = __local1__
}
note: any/array success
query: data.generated.p = x
want_result:
- x: true
p = __local0__ {
any([true, true, true, false, false], __local1__)
__local0__ = __local1__
}
note: any/array success
query: data.generated.p = x
want_result:
- x: true
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = __local0__ {
any({false}, __local1__)
__local0__ = __local1__
}
note: any/set fail
query: data.generated.p = x
want_result:
- x: false
p = __local0__ {
any({false}, __local1__)
__local0__ = __local1__
}
note: any/set fail
query: data.generated.p = x
want_result:
- x: false
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = __local0__ {
any([false], __local1__)
__local0__ = __local1__
}
note: any/array fail
query: data.generated.p = x
want_result:
- x: false
p = __local0__ {
any([false], __local1__)
__local0__ = __local1__
}
note: any/array fail
query: data.generated.p = x
want_result:
- x: false
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = __local0__ {
any([true, {}, "false"], __local1__)
__local0__ = __local1__
}
note: any/other types
query: data.generated.p = x
want_result:
- x: true
p = __local0__ {
any([true, {}, "false"], __local1__)
__local0__ = __local1__
}
note: any/other types
query: data.generated.p = x
want_result:
- x: true
+24 -23
View File
@@ -1,25 +1,26 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p[y] {
data.a[i] = x
__local0__ = i + x
y = __local0__
}
note: arithmetic/plus
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 1
- 3
- 5
- 7
p[y] {
data.a[i] = x
__local0__ = i + x
y = __local0__
}
note: arithmetic/plus
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 1
- 3
- 5
- 7
+21 -20
View File
@@ -1,22 +1,23 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p[y] {
data.a[i] = x
__local0__ = i - x
y = __local0__
}
note: arithmetic/minus
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- -1
p[y] {
data.a[i] = x
__local0__ = i - x
y = __local0__
}
note: arithmetic/minus
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- -1
+24 -23
View File
@@ -1,25 +1,26 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p[y] {
data.a[i] = x
__local0__ = i * x
y = __local0__
}
note: arithmetic/multiply
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 0
- 2
- 6
- 12
p[y] {
data.a[i] = x
__local0__ = i * x
y = __local0__
}
note: arithmetic/multiply
query: data.generated.p = x
sort_bindings: true
want_result:
- x:
- 0
- 2
- 6
- 12
+22 -21
View File
@@ -1,23 +1,24 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package test
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package test
p[z] {
data.a[i] = x
y = i / x
round(y, z)
}
note: arithmetic/divide+round
query: data.test.p = x
sort_bindings: true
want_result:
- x:
- 0
- 1
p[z] {
data.a[i] = x
y = i / x
round(y, z)
}
note: arithmetic/divide+round
query: data.test.p = x
sort_bindings: true
want_result:
- x:
- 0
- 1
+17 -16
View File
@@ -1,18 +1,19 @@
---
cases:
- data:
a:
- 1
modules:
- |
package generated
- data:
a:
- 1
modules:
- |
package generated
p = y {
data.a[i] = x
__local0__ = x / i
y = __local0__
}
note: arithmetic/divide+error
query: data.generated.p = x
strict_error: true
want_error: divide by zero
want_error_code: eval_builtin_error
p = y {
data.a[i] = x
__local0__ = x / i
y = __local0__
}
note: arithmetic/divide+error
query: data.generated.p = x
strict_error: true
want_error: divide by zero
want_error_code: eval_builtin_error
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p {
abs(-10, x)
x = 10
}
note: arithmetic/abs
query: data.generated.p = x
want_result:
- x: true
p {
abs(-10, x)
x = 10
}
note: arithmetic/abs
query: data.generated.p = x
want_result:
- x: true
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
__local0__ = 7 % 4
x = __local0__
}
note: arithmetic/remainder
query: data.generated.p = x
want_result:
- x: 3
p = x {
__local0__ = 7 % 4
x = __local0__
}
note: arithmetic/remainder
query: data.generated.p = x
want_result:
- x: 3
+14 -13
View File
@@ -1,15 +1,16 @@
---
cases:
- data:
modules:
- |
package generated
- data:
modules:
- |
package generated
p = x {
__local0__ = 7 % 0
x = __local0__
}
note: arithmetic/remainder+error
query: data.generated.p = x
want_error: modulo by zero
want_error_code: eval_builtin_error
strict_error: true
p = x {
__local0__ = 7 % 0
x = __local0__
}
note: arithmetic/remainder+error
query: data.generated.p = x
want_error: modulo by zero
want_error_code: eval_builtin_error
strict_error: true
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data:
modules:
- |
package test
- data:
modules:
- |
package test
p = x {
x = 1.1 % 1
}
note: arithmetic/remainder+error+floating
query: data.test.p = x
want_error: modulo on floating-point number
want_error_code: eval_builtin_error
strict_error: true
p = x {
x = 1.1 % 1
}
note: arithmetic/remainder+error+floating
query: data.test.p = x
want_error: modulo on floating-point number
want_error_code: eval_builtin_error
strict_error: true
+18 -17
View File
@@ -1,19 +1,20 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p {
__local0__ = data.a[3]
abs(-4, __local0__)
}
note: arithmetic/arity 1 ref dest
query: data.generated.p = x
want_result:
- x: true
p {
__local0__ = data.a[3]
abs(-4, __local0__)
}
note: arithmetic/arity 1 ref dest
query: data.generated.p = x
want_result:
- x: true
+18 -17
View File
@@ -1,19 +1,20 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p {
__local0__ = data.a[3]
not abs(-5, __local0__)
}
note: arithmetic/arity 1 ref dest (2)
query: data.generated.p = x
want_result:
- x: true
p {
__local0__ = data.a[3]
not abs(-5, __local0__)
}
note: arithmetic/arity 1 ref dest (2)
query: data.generated.p = x
want_result:
- x: true
+18 -17
View File
@@ -1,19 +1,20 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p {
__local0__ = 1 + 2
data.a[2] = __local0__
}
note: arithmetic/arity 2 ref dest
query: data.generated.p = x
want_result:
- x: true
p {
__local0__ = 1 + 2
data.a[2] = __local0__
}
note: arithmetic/arity 2 ref dest
query: data.generated.p = x
want_result:
- x: true
+18 -17
View File
@@ -1,19 +1,20 @@
---
cases:
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
- data:
a:
- 1
- 2
- 3
- 4
modules:
- |
package generated
p {
__local0__ = 2 + 3
not data.a[2] = __local0__
}
note: arithmetic/arity 2 ref dest (2)
query: data.generated.p = x
want_result:
- x: true
p {
__local0__ = 2 + 3
not data.a[2] = __local0__
}
note: arithmetic/arity 2 ref dest (2)
query: data.generated.p = x
want_result:
- x: true
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p {
__local0__ = 49649733057 + 1
__local0__ = 49649733058
}
note: arithmetic/bug 2469 - precision
query: data.generated.p = x
want_result:
- x: true
p {
__local0__ = 49649733057 + 1
__local0__ = 49649733058
}
note: arithmetic/bug 2469 - precision
query: data.generated.p = x
want_result:
- x: true
+56 -55
View File
@@ -1,61 +1,62 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
ceil(1.01, x)
}
note: ceil rounds up
query: data.generated.p = x
want_result:
- x: 2
- data: {}
modules:
- |
package generated
p = x {
ceil(1.01, x)
}
note: ceil rounds up
query: data.generated.p = x
want_result:
- x: 2
- data: {}
modules:
- |
package generated
p = x {
ceil(1.5, x)
}
note: ceil rounds up (2)
query: data.generated.p = x
want_result:
- x: 2
- data: {}
modules:
- |
package generated
p = x {
ceil(1.5, x)
}
note: ceil rounds up (2)
query: data.generated.p = x
want_result:
- x: 2
- data: {}
modules:
- |
package generated
p = x {
ceil(2222.2222222222, x)
}
note: ceil rounds up (3)
query: data.generated.p = x
want_result:
- x: 2223
- data: {}
modules:
- |
package generated
p = x {
ceil(2222.2222222222, x)
}
note: ceil rounds up (3)
query: data.generated.p = x
want_result:
- x: 2223
- data: {}
modules:
- |
package generated
p = x {
ceil(1, x)
}
note: ceil integer
query: data.generated.p = x
want_result:
- x: 1
- data: {}
modules:
- |
package generated
p = x {
ceil(1, x)
}
note: ceil integer
query: data.generated.p = x
want_result:
- x: 1
- data: {}
modules:
- |
package generated
p = x {
ceil(-1.99999, x)
}
note: ceil negative
query: data.generated.p = x
want_result:
- x: -1
p = x {
ceil(-1.99999, x)
}
note: ceil negative
query: data.generated.p = x
want_result:
- x: -1
@@ -1,3 +1,4 @@
---
cases:
- data: {}
modules:
@@ -1,27 +1,28 @@
---
cases:
- data:
modules:
- |
package test
- data:
modules:
- |
package test
p {
{1} - 1
}
note: arithmetic/minus/type error
query: data.test.p = x
want_error: operand 2 must be set but got number
want_error_code: eval_type_error
strict_error: true
- data:
modules:
- |
package test
p {
{1} - 1
}
note: arithmetic/minus/type error
query: data.test.p = x
want_error: operand 2 must be set but got number
want_error_code: eval_type_error
strict_error: true
- data:
modules:
- |
package test
p {
1 - {1}
}
note: arithmetic/minus/type error
query: data.test.p = x
want_error: operand 2 must be number but got set
want_error_code: eval_type_error
strict_error: true
p {
1 - {1}
}
note: arithmetic/minus/type error
query: data.test.p = x
want_error: operand 2 must be number but got set
want_error_code: eval_type_error
strict_error: true
+12 -11
View File
@@ -1,13 +1,14 @@
---
cases:
- data:
modules:
- |
package test
- data:
modules:
- |
package test
p {
28857836529306024611913 != 28857836529306024611912
}
note: arithmetic/big_int
query: data.test.p = x
want_result:
- x: true
p {
28857836529306024611913 != 28857836529306024611912
}
note: arithmetic/big_int
query: data.test.p = x
want_result:
- x: true
+17 -16
View File
@@ -1,18 +1,19 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
array.concat([1, 2], [3, 4], __local0__)
x = __local0__
}
note: array/concat
query: data.generated.p = x
want_result:
- x:
- 1
- 2
- 3
- 4
p = x {
array.concat([1, 2], [3, 4], __local0__)
x = __local0__
}
note: array/concat
query: data.generated.p = x
want_result:
- x:
- 1
- 2
- 3
- 4
+18 -17
View File
@@ -1,19 +1,20 @@
---
cases:
- data:
b:
v1: hello
v2: goodbye
modules:
- |
package generated
- data:
b:
v1: hello
v2: goodbye
modules:
- |
package generated
p = x {
__local1__ = data.b
array.concat(__local1__, [3, 4], __local0__)
x = __local0__
}
note: 'array/concat: err'
query: data.generated.p = x
strict_error: true
want_error: 'array.concat: operand 1 must be array but got object'
want_error_code: eval_type_error
p = x {
__local1__ = data.b
array.concat(__local1__, [3, 4], __local0__)
x = __local0__
}
note: "array/concat: err"
query: data.generated.p = x
strict_error: true
want_error: "array.concat: operand 1 must be array but got object"
want_error_code: eval_type_error
+18 -17
View File
@@ -1,19 +1,20 @@
---
cases:
- data:
b:
v1: hello
v2: goodbye
modules:
- |
package generated
- data:
b:
v1: hello
v2: goodbye
modules:
- |
package generated
p = x {
__local1__ = data.b
array.concat([1, 2], __local1__, __local0__)
x = __local0__
}
note: 'array/concat: err rhs'
query: data.generated.p = x
strict_error: true
want_error: 'array.concat: operand 2 must be array but got object'
want_error_code: eval_type_error
p = x {
__local1__ = data.b
array.concat([1, 2], __local1__, __local0__)
x = __local0__
}
note: "array/concat: err rhs"
query: data.generated.p = x
strict_error: true
want_error: "array.concat: operand 2 must be array but got object"
want_error_code: eval_type_error
+15 -14
View File
@@ -1,16 +1,17 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
array.slice([1, 2, 3, 4, 5], 1, 3, __local0__)
x = __local0__
}
note: array/slice
query: data.generated.p = x
want_result:
- x:
- 2
- 3
p = x {
array.slice([1, 2, 3, 4, 5], 1, 3, __local0__)
x = __local0__
}
note: array/slice
query: data.generated.p = x
want_result:
- x:
- 2
- 3
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
array.slice([1, 2, 3], 0, 0, __local0__)
x = __local0__
}
note: 'array/slice: empty slice'
query: data.generated.p = x
want_result:
- x: []
p = x {
array.slice([1, 2, 3], 0, 0, __local0__)
x = __local0__
}
note: "array/slice: empty slice"
query: data.generated.p = x
want_result:
- x: []
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
array.slice([1, 2, 3, 4, 5], -4, -1, __local0__)
x = __local0__
}
note: 'array/slice: negative indices'
query: data.generated.p = x
want_result:
- x: []
p = x {
array.slice([1, 2, 3, 4, 5], -4, -1, __local0__)
x = __local0__
}
note: "array/slice: negative indices"
query: data.generated.p = x
want_result:
- x: []
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
array.slice([1, 2, 3, 4, 5], 4, 1, __local0__)
x = __local0__
}
note: 'array/slice: stopIndex < startIndex'
query: data.generated.p = x
want_result:
- x: []
p = x {
array.slice([1, 2, 3, 4, 5], 4, 1, __local0__)
x = __local0__
}
note: "array/slice: stopIndex < startIndex"
query: data.generated.p = x
want_result:
- x: []
+15 -14
View File
@@ -1,16 +1,17 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
array.slice([1, 2, 3, 4, 5], -1, 2, __local0__)
x = __local0__
}
note: 'array/slice: clamp startIndex'
query: data.generated.p = x
want_result:
- x:
- 1
- 2
p = x {
array.slice([1, 2, 3, 4, 5], -1, 2, __local0__)
x = __local0__
}
note: "array/slice: clamp startIndex"
query: data.generated.p = x
want_result:
- x:
- 1
- 2
+15 -14
View File
@@ -1,16 +1,17 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
array.slice([1, 2, 3, 4, 5], 3, 6, __local0__)
x = __local0__
}
note: 'array/slice: clamp stopIndex'
query: data.generated.p = x
want_result:
- x:
- 4
- 5
p = x {
array.slice([1, 2, 3, 4, 5], 3, 6, __local0__)
x = __local0__
}
note: "array/slice: clamp stopIndex"
query: data.generated.p = x
want_result:
- x:
- 4
- 5
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
array.slice([], 1000, 2000, __local0__)
x = __local0__
}
note: 'array/slice: clamp both out of range'
query: data.generated.p = x
want_result:
- x: []
p = x {
array.slice([], 1000, 2000, __local0__)
x = __local0__
}
note: "array/slice: clamp both out of range"
query: data.generated.p = x
want_result:
- x: []
+13 -12
View File
@@ -1,14 +1,15 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
array.slice([1, 2, 3], 1000, 2000, __local0__)
x = __local0__
}
note: 'array/slice: clamp both out of range non-empty'
query: data.generated.p = x
want_result:
- x: []
p = x {
array.slice([1, 2, 3], 1000, 2000, __local0__)
x = __local0__
}
note: "array/slice: clamp both out of range non-empty"
query: data.generated.p = x
want_result:
- x: []
+40 -39
View File
@@ -1,43 +1,44 @@
---
cases:
- data:
foo:
- 1
- 2
- 3
modules:
- |
package test
- data:
foo:
- 1
- 2
- 3
modules:
- |
package test
p := array.reverse(data.foo)
note: array/reverse_123
query: data.test.p = x
want_result:
- x:
- 3
- 2
- 1
- data:
foo: []
modules:
- |
package test
p := array.reverse(data.foo)
note: array/reverse_123
query: data.test.p = x
want_result:
- x:
- 3
- 2
- 1
- data:
foo: []
modules:
- |
package test
p := array.reverse(data.foo)
note: array/reverse_empty
query: data.test.p = x
want_result:
- x: []
- data:
foo:
bar: baz
baz: bar
modules:
- |
package test
p := array.reverse(data.foo)
note: array/reverse_empty
query: data.test.p = x
want_result:
- x: []
- data:
foo:
bar: baz
baz: bar
modules:
- |
package test
p := array.reverse(data.foo)
note: array/reverse_object_error
query: data.test.p = x
strict_error: true
want_error: 'array.reverse: operand 1 must be array but got object'
want_error_code: eval_type_error
p := array.reverse(data.foo)
note: array/reverse_object_error
query: data.test.p = x
strict_error: true
want_error: "array.reverse: operand 1 must be array but got object"
want_error_code: eval_type_error
@@ -1,3 +1,4 @@
---
cases:
- note: assignments/file-level/default_value
query: data.test = x
@@ -6,43 +7,43 @@ cases:
package test
default a := 1
want_result: [ { "x": { "a": 1 } } ]
want_result: [{ "x": { "a": 1 } }]
- note: assignments/file-level/rule
query: data.test = x
modules:
- |
package test
b := 2
want_result: [ { "x": { "b": 2 } } ]
want_result: [{ "x": { "b": 2 } }]
- note: assignments/file-level/else_keyword
query: data.test = x
modules:
- |
package test
c := 3 {
false
} else := 4 {
true
}
want_result: [ { "x": { "c": 4, } } ]
want_result: [{ "x": { "c": 4 } }]
- note: assignments/file-level/partial_rule
query: data.test = x
modules:
- |
package test
d[msg] := 5 {
msg = [1, 2, 3][_]
}
want_result: [ { "x": { "d": { "1": 5, "2": 5, "3": 5 } } } ]
want_result: [{ "x": { "d": { "1": 5, "2": 5, "3": 5 } } }]
- note: assignments/file-level/function_return_value
query: data.test = x
modules:
- |
package test
e := f(6)
f(x) := x
want_result: [ { "x": { "e": 6 } } ]
want_result: [{ "x": { "e": 6 } }]
@@ -1,13 +1,14 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
base64.encode("hello", x)
}
note: base64builtins/encode-1
query: data.generated.p = x
want_result:
- x: aGVsbG8=
p = x {
base64.encode("hello", x)
}
note: base64builtins/encode-1
query: data.generated.p = x
want_result:
- x: aGVsbG8=
@@ -1,13 +1,14 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
base64.encode("there", x)
}
note: base64builtins/encode-2
query: data.generated.p = x
want_result:
- x: dGhlcmU=
p = x {
base64.encode("there", x)
}
note: base64builtins/encode-2
query: data.generated.p = x
want_result:
- x: dGhlcmU=
@@ -1,13 +1,14 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
base64.decode("aGVsbG8=", x)
}
note: base64builtins/decode-1
query: data.generated.p = x
want_result:
- x: hello
p = x {
base64.decode("aGVsbG8=", x)
}
note: base64builtins/decode-1
query: data.generated.p = x
want_result:
- x: hello
@@ -1,13 +1,14 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
base64.decode("dGhlcmU=", x)
}
note: base64builtins/decode-2
query: data.generated.p = x
want_result:
- x: there
p = x {
base64.decode("dGhlcmU=", x)
}
note: base64builtins/decode-2
query: data.generated.p = x
want_result:
- x: there
@@ -1,13 +1,14 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
base64.encode("subjects?_d", x)
}
note: base64builtins/encode-slash
query: data.generated.p = x
want_result:
- x: c3ViamVjdHM/X2Q=
p = x {
base64.encode("subjects?_d", x)
}
note: base64builtins/encode-slash
query: data.generated.p = x
want_result:
- x: c3ViamVjdHM/X2Q=
@@ -1,13 +1,14 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
base64.decode("c3ViamVjdHM/X2Q=", x)
}
note: base64builtins/decode-slash
query: data.generated.p = x
want_result:
- x: subjects?_d
p = x {
base64.decode("c3ViamVjdHM/X2Q=", x)
}
note: base64builtins/decode-slash
query: data.generated.p = x
want_result:
- x: subjects?_d
@@ -1,25 +1,26 @@
---
cases:
- data: {}
modules:
- |
package generated
- data: {}
modules:
- |
package generated
p = x {
base64.is_valid("aGVsbG8=", x)
}
note: base64builtins/is_valid-true
query: data.generated.p = x
want_result:
- x: true
- data: {}
modules:
- |
package generated
p = x {
base64.is_valid("aGVsbG8=", x)
}
note: base64builtins/is_valid-true
query: data.generated.p = x
want_result:
- x: true
- data: {}
modules:
- |
package generated
p = x {
base64.is_valid("{'not':'base64'}", x)
}
note: base64builtins/is_valid-false
query: data.generated.p = x
want_result:
- x: false
p = x {
base64.is_valid("{'not':'base64'}", x)
}
note: base64builtins/is_valid-false
query: data.generated.p = x
want_result:
- x: false
@@ -1,25 +1,26 @@
---
cases:
- note: base64urlbuiltins/encode-1
modules:
- |
package generated
- note: base64urlbuiltins/encode-1
modules:
- |
package generated
p = x {
base64url.encode("hello", x)
}
data:
query: data.generated.p = x
want_result:
- x: aGVsbG8=
- note: base64urlbuiltins/encode-2
modules:
- |
package generated
p = x {
base64url.encode("hello", x)
}
data:
query: data.generated.p = x
want_result:
- x: aGVsbG8=
- note: base64urlbuiltins/encode-2
modules:
- |
package generated
p = x {
base64url.encode("there", x)
}
data:
query: data.generated.p = x
want_result:
- x: dGhlcmU=
p = x {
base64url.encode("there", x)
}
data:
query: data.generated.p = x
want_result:
- x: dGhlcmU=
@@ -1,25 +1,26 @@
---
cases:
- note: base64urlbuiltins/decode-1 padded string
modules:
- |
package generated
- note: base64urlbuiltins/decode-1 padded string
modules:
- |
package generated
p = x {
base64url.decode("aGVsbG8=", x)
}
data:
query: data.generated.p = x
want_result:
- x: hello
- note: base64urlbuiltins/decode-2 non-padded string
modules:
- |
package generated
p = x {
base64url.decode("aGVsbG8=", x)
}
data:
query: data.generated.p = x
want_result:
- x: hello
- note: base64urlbuiltins/decode-2 non-padded string
modules:
- |
package generated
p = x {
base64url.decode("aGVsbG8", x)
}
data:
query: data.generated.p = x
want_result:
- x: hello
p = x {
base64url.decode("aGVsbG8", x)
}
data:
query: data.generated.p = x
want_result:
- x: hello
@@ -1,23 +1,24 @@
---
cases:
- note: base64urlbuiltins/encode-1 without padding
query: data.generated.p = x
modules:
- |
package generated
p = x {
base64url.encode_no_pad("hello", x)
}
data:
want_result:
- x: aGVsbG8
- note: base64urlbuiltins/encode-2 without padding
query: data.generated.p = x
modules:
- |
package generated
p = x {
base64url.encode_no_pad("there", x)
}
data:
want_result:
- x: dGhlcmU
- note: base64urlbuiltins/encode-1 without padding
query: data.generated.p = x
modules:
- |
package generated
p = x {
base64url.encode_no_pad("hello", x)
}
data:
want_result:
- x: aGVsbG8
- note: base64urlbuiltins/encode-2 without padding
query: data.generated.p = x
modules:
- |
package generated
p = x {
base64url.encode_no_pad("there", x)
}
data:
want_result:
- x: dGhlcmU
@@ -1,188 +1,189 @@
---
cases:
- data:
topdown:
a:
b:
c:
x:
- data:
topdown:
a:
b:
c:
x:
- 100
- 200
y: false
z:
a: b
input_term: "{}"
modules:
- |
package enum_errors.caller
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package enum_errors.a.b.c
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.a.b.c.undefined1
p {
false
}
p {
false
}
q {
false
}
- |
package topdown
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package topdown.no.base.doc
p = true
- |
package topdown.a.b.c.empty
- |
package topdown.a.b.c.s
w = {"f": 10, "g": 9.9}
- |
package topdown.set
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown.missing.input.value
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.a.b.c
p = [1, 2]
q = [3, 4]
r["a"] = 1
r["b"] = 2
- |
package topdown.a.b.c.undefined2
p {
input.foo
}
- |
package topdown.virtual.constants
p = 1
q = 2
r = 1
- |
package topdown.conflicts
k = "bar"
- |
package topdown.g.h
p {
false
}
note: baseandvirtualdocs/base/virtual
query: data.topdown.p = x
sort_bindings: true
want_result:
- x:
- - c
- p
- 0
- 1
- - c
- p
- 1
- 2
- - c
- q
- 0
- 3
- - c
- q
- 1
- 4
- - c
- r
- a
- 1
- - c
- r
- b
- 2
- - c
- s
- w
- f: 10
g: 9.9
- - c
- x
- 0
- 100
- - c
- x
- 1
- 200
y: false
z:
a: b
input_term: '{}'
modules:
- |
package enum_errors.caller
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package enum_errors.a.b.c
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.a.b.c.undefined1
p {
false
}
p {
false
}
q {
false
}
- |
package topdown
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package topdown.no.base.doc
p = true
- |
package topdown.a.b.c.empty
- |
package topdown.a.b.c.s
w = {"f": 10, "g": 9.9}
- |
package topdown.set
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown.missing.input.value
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.a.b.c
p = [1, 2]
q = [3, 4]
r["a"] = 1
r["b"] = 2
- |
package topdown.a.b.c.undefined2
p {
input.foo
}
- |
package topdown.virtual.constants
p = 1
q = 2
r = 1
- |
package topdown.conflicts
k = "bar"
- |
package topdown.g.h
p {
false
}
note: baseandvirtualdocs/base/virtual
query: data.topdown.p = x
sort_bindings: true
want_result:
- x:
- - c
- p
- 0
- 1
- - c
- p
- 1
- 2
- - c
- q
- 0
- 3
- - c
- q
- 1
- 4
- - c
- r
- a
- 1
- - c
- r
- b
- 2
- - c
- s
- w
- f: 10
g: 9.9
- - c
- x
- 0
- 100
- - c
- x
- 1
- 200
- - c
- z
- a
- b
- - c
- z
- a
- b
@@ -1,272 +1,273 @@
---
cases:
- data:
topdown:
a:
b:
c:
x:
- data:
topdown:
a:
b:
c:
x:
- 100
- 200
y: false
z:
a: b
input_term: "{}"
modules:
- |
package partial.topdown
p[["c", "x", 0, x41]] {
data.topdown.a.b.c.x[0] = x41
}
p[["c", "x", 1, x41]] {
data.topdown.a.b.c.x[1] = x41
}
p[["c", "z", "a", x41]] {
data.topdown.a.b.c.z.a = x41
}
p[[
"c", "p", 0,
1,
]]
p[[
"c", "p", 1,
2,
]]
p[[
"c", "q", 0,
3,
]]
p[[
"c", "q", 1,
4,
]]
p[[
"c", "r",
"a", 1,
]]
p[[
"c", "r",
"b", 2,
]]
p[[
"c", "s", "w",
{"f": 10, "g": 9.9},
]]
p[[
"c", "undefined2", "p",
true,
]] {
input.foo
}
p[["c", "x", 0, x41]] {
data.topdown.a.b.c.x[0] = x41
}
p[["c", "x", 1, x41]] {
data.topdown.a.b.c.x[1] = x41
}
p[["c", "z", "a", x41]] {
data.topdown.a.b.c.z.a = x41
}
p[[
"c", "p", 0,
1,
]]
p[[
"c", "p", 1,
2,
]]
p[[
"c", "q", 0,
3,
]]
p[[
"c", "q", 1,
4,
]]
p[[
"c", "r",
"a", 1,
]]
p[[
"c", "r",
"b", 2,
]]
p[[
"c", "s", "w",
{"f": 10, "g": 9.9},
]]
p[[
"c", "undefined2", "p",
true,
]] {
input.foo
}
- |
package topdown.a.b.c.empty
- |
package topdown.a.b.c
p = [1, 2]
q = [3, 4]
r["a"] = 1
r["b"] = 2
- |
package topdown.a.b.c.undefined2
p {
input.foo
}
- |
package topdown.virtual.constants
p = 1
q = 2
r = 1
- |
package topdown.no.base.doc
p = true
- |
package topdown.a.b.c.s
w = {"f": 10, "g": 9.9}
- |
package topdown.missing.input.value
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.conflicts
k = "bar"
- |
package topdown.g.h
p {
false
}
- |
package enum_errors.a.b.c
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.a.b.c.undefined1
p {
false
}
p {
false
}
q {
false
}
- |
package topdown
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package topdown.set
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown_test_partial
__result__ = _result {
data.partial.topdown.p = _result
}
- |
package enum_errors.caller
p[x] = y {
data.enum_errors.a[x] = y
}
note: "baseandvirtualdocs/base/virtual: ground key"
query: data.topdown.q = x
sort_bindings: true
want_result:
- x:
- - c
- p
- 1
- - c
- q
- 3
- - c
- x
- 100
- 200
y: false
z:
a: b
input_term: '{}'
modules:
- |
package partial.topdown
p[["c", "x", 0, x41]] {
data.topdown.a.b.c.x[0] = x41
}
p[["c", "x", 1, x41]] {
data.topdown.a.b.c.x[1] = x41
}
p[["c", "z", "a", x41]] {
data.topdown.a.b.c.z.a = x41
}
p[[
"c", "p", 0,
1,
]]
p[[
"c", "p", 1,
2,
]]
p[[
"c", "q", 0,
3,
]]
p[[
"c", "q", 1,
4,
]]
p[[
"c", "r",
"a", 1,
]]
p[[
"c", "r",
"b", 2,
]]
p[[
"c", "s", "w",
{"f": 10, "g": 9.9},
]]
p[[
"c", "undefined2", "p",
true,
]] {
input.foo
}
p[["c", "x", 0, x41]] {
data.topdown.a.b.c.x[0] = x41
}
p[["c", "x", 1, x41]] {
data.topdown.a.b.c.x[1] = x41
}
p[["c", "z", "a", x41]] {
data.topdown.a.b.c.z.a = x41
}
p[[
"c", "p", 0,
1,
]]
p[[
"c", "p", 1,
2,
]]
p[[
"c", "q", 0,
3,
]]
p[[
"c", "q", 1,
4,
]]
p[[
"c", "r",
"a", 1,
]]
p[[
"c", "r",
"b", 2,
]]
p[[
"c", "s", "w",
{"f": 10, "g": 9.9},
]]
p[[
"c", "undefined2", "p",
true,
]] {
input.foo
}
- |
package topdown.a.b.c.empty
- |
package topdown.a.b.c
p = [1, 2]
q = [3, 4]
r["a"] = 1
r["b"] = 2
- |
package topdown.a.b.c.undefined2
p {
input.foo
}
- |
package topdown.virtual.constants
p = 1
q = 2
r = 1
- |
package topdown.no.base.doc
p = true
- |
package topdown.a.b.c.s
w = {"f": 10, "g": 9.9}
- |
package topdown.missing.input.value
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.conflicts
k = "bar"
- |
package topdown.g.h
p {
false
}
- |
package enum_errors.a.b.c
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.a.b.c.undefined1
p {
false
}
p {
false
}
q {
false
}
- |
package topdown
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package topdown.set
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown_test_partial
__result__ = _result {
data.partial.topdown.p = _result
}
- |
package enum_errors.caller
p[x] = y {
data.enum_errors.a[x] = y
}
note: 'baseandvirtualdocs/base/virtual: ground key'
query: data.topdown.q = x
sort_bindings: true
want_result:
- x:
- - c
- p
- 1
- - c
- q
- 3
- - c
- x
- 100
@@ -1,292 +1,293 @@
---
cases:
- data:
topdown:
a:
b:
c:
x:
- 100
- 200
y: false
z:
a: b
input_term: '{}'
modules:
- |
package enum_errors.a.b.c
- data:
topdown:
a:
b:
c:
x:
- 100
- 200
y: false
z:
a: b
input_term: "{}"
modules:
- |
package enum_errors.a.b.c
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.virtual.constants
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.virtual.constants
p = 1
p = 1
q = 2
q = 2
r = 1
- |
package partial.topdown
r = 1
- |
package partial.topdown
p[["c", "x", 0, x41]] {
data.topdown.a.b.c.x[0] = x41
}
p[["c", "x", 0, x41]] {
data.topdown.a.b.c.x[0] = x41
}
p[["c", "x", 1, x41]] {
data.topdown.a.b.c.x[1] = x41
}
p[["c", "x", 1, x41]] {
data.topdown.a.b.c.x[1] = x41
}
p[["c", "z", "a", x41]] {
data.topdown.a.b.c.z.a = x41
}
p[["c", "z", "a", x41]] {
data.topdown.a.b.c.z.a = x41
}
p[[
"c", "p", 0,
1,
]]
p[[
"c", "p", 0,
1,
]]
p[[
"c", "p", 1,
2,
]]
p[[
"c", "p", 1,
2,
]]
p[[
"c", "q", 0,
3,
]]
p[[
"c", "q", 0,
3,
]]
p[[
"c", "q", 1,
4,
]]
p[[
"c", "q", 1,
4,
]]
p[[
"c", "r",
"a", 1,
]]
p[[
"c", "r",
"a", 1,
]]
p[[
"c", "r",
"b", 2,
]]
p[[
"c", "r",
"b", 2,
]]
p[[
"c", "s", "w",
{"f": 10, "g": 9.9},
]]
p[[
"c", "s", "w",
{"f": 10, "g": 9.9},
]]
p[[
"c", "undefined2", "p",
true,
]] {
input.foo
}
p[[
"c", "undefined2", "p",
true,
]] {
input.foo
}
p[["c", "x", 0, x41]] {
data.topdown.a.b.c.x[0] = x41
}
p[["c", "x", 0, x41]] {
data.topdown.a.b.c.x[0] = x41
}
p[["c", "x", 1, x41]] {
data.topdown.a.b.c.x[1] = x41
}
p[["c", "x", 1, x41]] {
data.topdown.a.b.c.x[1] = x41
}
p[["c", "z", "a", x41]] {
data.topdown.a.b.c.z.a = x41
}
p[["c", "z", "a", x41]] {
data.topdown.a.b.c.z.a = x41
}
p[[
"c", "p", 0,
1,
]]
p[[
"c", "p", 0,
1,
]]
p[[
"c", "p", 1,
2,
]]
p[[
"c", "p", 1,
2,
]]
p[[
"c", "q", 0,
3,
]]
p[[
"c", "q", 0,
3,
]]
p[[
"c", "q", 1,
4,
]]
p[[
"c", "q", 1,
4,
]]
p[[
"c", "r",
"a", 1,
]]
p[[
"c", "r",
"a", 1,
]]
p[[
"c", "r",
"b", 2,
]]
p[[
"c", "r",
"b", 2,
]]
p[[
"c", "s", "w",
{"f": 10, "g": 9.9},
]]
p[[
"c", "s", "w",
{"f": 10, "g": 9.9},
]]
p[[
"c", "undefined2", "p",
true,
]] {
input.foo
}
- |
package topdown.missing.input.value
p[[
"c", "undefined2", "p",
true,
]] {
input.foo
}
- |
package topdown.missing.input.value
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.conflicts
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.conflicts
k = "bar"
- |
package topdown.g.h
k = "bar"
- |
package topdown.g.h
p {
false
}
- |
package topdown.a.b.c
p {
false
}
- |
package topdown.a.b.c
p = [1, 2]
p = [1, 2]
q = [3, 4]
q = [3, 4]
r["a"] = 1
r["a"] = 1
r["b"] = 2
- |
package topdown.a.b.c.undefined2
r["b"] = 2
- |
package topdown.a.b.c.undefined2
p {
input.foo
}
- |
package topdown.a.b.c.s
p {
input.foo
}
- |
package topdown.a.b.c.s
w = {"f": 10, "g": 9.9}
- |
package topdown
w = {"f": 10, "g": 9.9}
- |
package topdown
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package topdown_test_partial
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package topdown_test_partial
__result__ = _result {
_result = {[
"c", "p",
1,
], [
"c", "q",
3,
], ["c", "x", 100]}
}
- |
package topdown.a.b.c.undefined1
__result__ = _result {
_result = {[
"c", "p",
1,
], [
"c", "q",
3,
], ["c", "x", 100]}
}
- |
package topdown.a.b.c.undefined1
p {
false
}
p {
false
}
p {
false
}
p {
false
}
q {
false
}
- |
package topdown.no.base.doc
q {
false
}
- |
package topdown.no.base.doc
p = true
- |
package topdown.set
p = true
- |
package topdown.set
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package enum_errors.caller
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package enum_errors.caller
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.a.b.c.empty
note: 'baseandvirtualdocs/base/virtual: prefix'
query: data.topdown.r = x
sort_bindings: true
want_result:
- x:
- - c
- empty: {}
p:
- 1
- 2
q:
- 3
- 4
r:
a: 1
b: 2
s:
w:
f: 10
g: 9.9
undefined1: {}
undefined2: {}
x:
- 100
- 200
y: false
z:
a: b
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.a.b.c.empty
note: "baseandvirtualdocs/base/virtual: prefix"
query: data.topdown.r = x
sort_bindings: true
want_result:
- x:
- - c
- empty: {}
p:
- 1
- 2
q:
- 3
- 4
r:
a: 1
b: 2
s:
w:
f: 10
g: 9.9
undefined1: {}
undefined2: {}
x:
- 100
- 200
y: false
z:
a: b
@@ -1,169 +1,170 @@
---
cases:
- data:
topdown:
set:
u:
- 1
- 2
- 3
- 4
input_term: '{}'
modules:
- |
package enum_errors.a.b.c
- data:
topdown:
set:
u:
- 1
- 2
- 3
- 4
input_term: "{}"
modules:
- |
package enum_errors.a.b.c
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.missing.input.value
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.missing.input.value
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.a.b.c.undefined1
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.a.b.c.undefined1
p {
false
}
p {
false
}
p {
false
}
p {
false
}
q {
false
}
- |
package topdown.set
q {
false
}
- |
package topdown.set
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown.conflicts
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown.conflicts
k = "bar"
- |
package topdown.g.h
k = "bar"
- |
package topdown.g.h
p {
false
}
- |
package topdown_test_partial
p {
false
}
- |
package topdown_test_partial
__result__ = _result {
data.partial.topdown.r = _result
}
- |
package topdown.a.b.c.empty
- |
package partial.topdown
__result__ = _result {
data.partial.topdown.r = _result
}
- |
package topdown.a.b.c.empty
- |
package partial.topdown
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
- |
package topdown.a.b.c
r[["c", x21]] {
data.topdown.a.b.c = x21
}
- |
package topdown.a.b.c
p = [1, 2]
p = [1, 2]
q = [3, 4]
q = [3, 4]
r["a"] = 1
r["a"] = 1
r["b"] = 2
- |
package topdown.a.b.c.undefined2
r["b"] = 2
- |
package topdown.a.b.c.undefined2
p {
input.foo
}
- |
package topdown
p {
input.foo
}
- |
package topdown
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package enum_errors.caller
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package enum_errors.caller
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.a.b.c.s
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.a.b.c.s
w = {"f": 10, "g": 9.9}
- |
package topdown.no.base.doc
w = {"f": 10, "g": 9.9}
- |
package topdown.no.base.doc
p = true
- |
package topdown.virtual.constants
p = true
- |
package topdown.virtual.constants
p = 1
p = 1
q = 2
q = 2
r = 1
note: 'baseandvirtualdocs/base/virtual: set'
query: data.topdown.w = x
want_result:
- x:
u:
- 1
- 2
- 3
- 4
v:
- 1
- 2
- 3
- 4
r = 1
note: "baseandvirtualdocs/base/virtual: set"
query: data.topdown.w = x
want_result:
- x:
u:
- 1
- 2
- 3
- 4
v:
- 1
- 2
- 3
- 4
@@ -1,155 +1,156 @@
---
cases:
- data: {}
input_term: '{}'
modules:
- |
package topdown.conflicts
- data: {}
input_term: "{}"
modules:
- |
package topdown.conflicts
k = "bar"
- |
package topdown.no.base.doc
k = "bar"
- |
package topdown.no.base.doc
p = true
- |
package topdown.set
p = true
- |
package topdown.set
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown.a.b.c.empty
- |
package enum_errors.caller
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown.a.b.c.empty
- |
package enum_errors.caller
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.a.b.c.undefined1
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.a.b.c.undefined1
p {
false
}
p {
false
}
p {
false
}
p {
false
}
q {
false
}
- |
package topdown_test_partial
q {
false
}
- |
package topdown_test_partial
__result__ = _result {
_result = {"u": [1, 2, 3, 4], "v": {1, 2, 3, 4}}
}
- |
package topdown.a.b.c
__result__ = _result {
_result = {"u": [1, 2, 3, 4], "v": {1, 2, 3, 4}}
}
- |
package topdown.a.b.c
p = [1, 2]
p = [1, 2]
q = [3, 4]
q = [3, 4]
r["a"] = 1
r["a"] = 1
r["b"] = 2
- |
package topdown.a.b.c.s
r["b"] = 2
- |
package topdown.a.b.c.s
w = {"f": 10, "g": 9.9}
- |
package topdown.a.b.c.undefined2
w = {"f": 10, "g": 9.9}
- |
package topdown.a.b.c.undefined2
p {
input.foo
}
- |
package topdown.virtual.constants
p {
input.foo
}
- |
package topdown.virtual.constants
p = 1
p = 1
q = 2
q = 2
r = 1
- |
package enum_errors.a.b.c
r = 1
- |
package enum_errors.a.b.c
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.missing.input.value
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.missing.input.value
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.g.h
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.g.h
p {
false
}
- |
package topdown
p {
false
}
- |
package topdown
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package partial.topdown
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package partial.topdown
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
note: 'baseandvirtualdocs/base/virtual: no base'
query: data.topdown.s = x
want_result:
- x:
base:
doc:
p: true
r[["c", x21]] {
data.topdown.a.b.c = x21
}
note: "baseandvirtualdocs/base/virtual: no base"
query: data.topdown.s = x
want_result:
- x:
base:
doc:
p: true
@@ -1,152 +1,153 @@
---
cases:
- data: {}
input_term: '{}'
modules:
- |
package enum_errors.caller
- data: {}
input_term: "{}"
modules:
- |
package enum_errors.caller
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.a.b.c.undefined1
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.a.b.c.undefined1
p {
false
}
p {
false
}
p {
false
}
p {
false
}
q {
false
}
- |
package topdown.a.b.c.empty
- |
package topdown.missing.input.value
q {
false
}
- |
package topdown.a.b.c.empty
- |
package topdown.missing.input.value
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.a.b.c.undefined2
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.a.b.c.undefined2
p {
input.foo
}
- |
package topdown.no.base.doc
p {
input.foo
}
- |
package topdown.no.base.doc
p = true
- |
package topdown.set
p = true
- |
package topdown.set
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown.a.b.c
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown.a.b.c
p = [1, 2]
p = [1, 2]
q = [3, 4]
q = [3, 4]
r["a"] = 1
r["a"] = 1
r["b"] = 2
- |
package topdown_test_partial
r["b"] = 2
- |
package topdown_test_partial
__result__ = _result {
_result = {"base": {"doc": {"p": true}}}
}
- |
package topdown
__result__ = _result {
_result = {"base": {"doc": {"p": true}}}
}
- |
package topdown
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package partial.topdown
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package partial.topdown
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
- |
package topdown.virtual.constants
r[["c", x21]] {
data.topdown.a.b.c = x21
}
- |
package topdown.virtual.constants
p = 1
p = 1
q = 2
q = 2
r = 1
- |
package enum_errors.a.b.c
r = 1
- |
package enum_errors.a.b.c
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.g.h
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.g.h
p {
false
}
- |
package topdown.conflicts
p {
false
}
- |
package topdown.conflicts
k = "bar"
- |
package topdown.a.b.c.s
k = "bar"
- |
package topdown.a.b.c.s
w = {"f": 10, "g": 9.9}
note: 'baseandvirtualdocs/base/virtual: undefined'
query: data.topdown.t = x
want_result:
- x: {}
w = {"f": 10, "g": 9.9}
note: "baseandvirtualdocs/base/virtual: undefined"
query: data.topdown.t = x
want_result:
- x: {}
@@ -1,164 +1,165 @@
---
cases:
- data:
topdown:
g:
h:
k:
- 1
- 2
- 3
input_term: '{}'
modules:
- |
package topdown.a.b.c.undefined1
- data:
topdown:
g:
h:
k:
- 1
- 2
- 3
input_term: "{}"
modules:
- |
package topdown.a.b.c.undefined1
p {
false
}
p {
false
}
p {
false
}
p {
false
}
q {
false
}
- |
package topdown.set
q {
false
}
- |
package topdown.set
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown.a.b.c
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown.a.b.c
p = [1, 2]
p = [1, 2]
q = [3, 4]
q = [3, 4]
r["a"] = 1
r["a"] = 1
r["b"] = 2
- |
package topdown_test_partial
r["b"] = 2
- |
package topdown_test_partial
__result__ = _result {
_result = {}
}
- |
package enum_errors.a.b.c
__result__ = _result {
_result = {}
}
- |
package enum_errors.a.b.c
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.g.h
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.g.h
p {
false
}
- |
package topdown.a.b.c.undefined2
p {
false
}
- |
package topdown.a.b.c.undefined2
p {
input.foo
}
- |
package topdown.no.base.doc
p {
input.foo
}
- |
package topdown.no.base.doc
p = true
- |
package topdown.a.b.c.s
p = true
- |
package topdown.a.b.c.s
w = {"f": 10, "g": 9.9}
- |
package enum_errors.caller
w = {"f": 10, "g": 9.9}
- |
package enum_errors.caller
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.virtual.constants
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.virtual.constants
p = 1
p = 1
q = 2
q = 2
r = 1
- |
package topdown.a.b.c.empty
- |
package topdown.missing.input.value
r = 1
- |
package topdown.a.b.c.empty
- |
package topdown.missing.input.value
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.conflicts
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.conflicts
k = "bar"
- |
package topdown
k = "bar"
- |
package topdown
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package partial.topdown
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package partial.topdown
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
note: 'baseandvirtualdocs/base/virtual: undefined-2'
query: data.topdown.v = x
want_result:
- x:
h:
k:
- 1
- 2
- 3
r[["c", x21]] {
data.topdown.a.b.c = x21
}
note: "baseandvirtualdocs/base/virtual: undefined-2"
query: data.topdown.v = x
want_result:
- x:
h:
k:
- 1
- 2
- 3
@@ -1,152 +1,153 @@
---
cases:
- data: {}
input_term: '{}'
modules:
- |
package topdown.no.base.doc
- data: {}
input_term: "{}"
modules:
- |
package topdown.no.base.doc
p = true
- |
package enum_errors.caller
p = true
- |
package enum_errors.caller
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.a.b.c.empty
- |
package topdown.conflicts
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.a.b.c.empty
- |
package topdown.conflicts
k = "bar"
- |
package topdown
k = "bar"
- |
package topdown
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package topdown.g.h
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package topdown.g.h
p {
false
}
- |
package topdown.a.b.c.undefined1
p {
false
}
- |
package topdown.a.b.c.undefined1
p {
false
}
p {
false
}
p {
false
}
p {
false
}
q {
false
}
- |
package partial.topdown
q {
false
}
- |
package partial.topdown
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
- |
package topdown.virtual.constants
r[["c", x21]] {
data.topdown.a.b.c = x21
}
- |
package topdown.virtual.constants
p = 1
p = 1
q = 2
q = 2
r = 1
- |
package topdown.set
r = 1
- |
package topdown.set
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown_test_partial
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown_test_partial
__result__ = _result {
_result = {"h": {"k": [1, 2, 3]}}
}
- |
package enum_errors.a.b.c
__result__ = _result {
_result = {"h": {"k": [1, 2, 3]}}
}
- |
package enum_errors.a.b.c
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.a.b.c.undefined2
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.a.b.c.undefined2
p {
input.foo
}
- |
package topdown.a.b.c.s
p {
input.foo
}
- |
package topdown.a.b.c.s
w = {"f": 10, "g": 9.9}
- |
package topdown.missing.input.value
w = {"f": 10, "g": 9.9}
- |
package topdown.missing.input.value
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.a.b.c
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.a.b.c
p = [1, 2]
p = [1, 2]
q = [3, 4]
q = [3, 4]
r["a"] = 1
r["a"] = 1
r["b"] = 2
note: 'baseandvirtualdocs/base/virtual: missing input value'
query: data.topdown.u = x
want_result:
- x: {}
r["b"] = 2
note: "baseandvirtualdocs/base/virtual: missing input value"
query: data.topdown.u = x
want_result:
- x: {}
@@ -1,155 +1,156 @@
---
cases:
- data: {}
input_term: '{}'
modules:
- |
package topdown.a.b.c
- data: {}
input_term: "{}"
modules:
- |
package topdown.a.b.c
p = [1, 2]
p = [1, 2]
q = [3, 4]
q = [3, 4]
r["a"] = 1
r["a"] = 1
r["b"] = 2
- |
package topdown.a.b.c.s
r["b"] = 2
- |
package topdown.a.b.c.s
w = {"f": 10, "g": 9.9}
- |
package topdown.no.base.doc
w = {"f": 10, "g": 9.9}
- |
package topdown.no.base.doc
p = true
- |
package partial.topdown
p = true
- |
package partial.topdown
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
- |
package enum_errors.a.b.c
r[["c", x21]] {
data.topdown.a.b.c = x21
}
- |
package enum_errors.a.b.c
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.set
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.set
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown.conflicts
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package topdown.conflicts
k = "bar"
- |
package topdown
k = "bar"
- |
package topdown
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package topdown.a.b.c.undefined1
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package topdown.a.b.c.undefined1
p {
false
}
p {
false
}
p {
false
}
p {
false
}
q {
false
}
- |
package topdown.virtual.constants
q {
false
}
- |
package topdown.virtual.constants
p = 1
p = 1
q = 2
q = 2
r = 1
- |
package topdown.missing.input.value
r = 1
- |
package topdown.missing.input.value
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package enum_errors.caller
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package enum_errors.caller
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.a.b.c.empty
- |
package topdown_test_partial
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.a.b.c.empty
- |
package topdown_test_partial
__result__ = _result {
data.topdown.missing.input.value = _result
}
- |
package topdown.g.h
__result__ = _result {
data.topdown.missing.input.value = _result
}
- |
package topdown.g.h
p {
false
}
- |
package topdown.a.b.c.undefined2
p {
false
}
- |
package topdown.a.b.c.undefined2
p {
input.foo
}
note: baseandvirtualdocs/iterate ground
query: data.topdown.iterate_ground = x
sort_bindings: true
want_result:
- x:
- p
- r
p {
input.foo
}
note: baseandvirtualdocs/iterate ground
query: data.topdown.iterate_ground = x
sort_bindings: true
want_result:
- x:
- p
- r
@@ -1,156 +1,157 @@
---
cases:
- data:
topdown:
conflicts:
k: foo
input_term: '{}'
modules:
- |
package topdown_test_partial
- data:
topdown:
conflicts:
k: foo
input_term: "{}"
modules:
- |
package topdown_test_partial
__result__ = _result {
_result = {"p", "r"}
}
- |
package topdown.missing.input.value
__result__ = _result {
_result = {"p", "r"}
}
- |
package topdown.missing.input.value
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.a.b.c.s
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.a.b.c.s
w = {"f": 10, "g": 9.9}
- |
package topdown.a.b.c.undefined1
w = {"f": 10, "g": 9.9}
- |
package topdown.a.b.c.undefined1
p {
false
}
p {
false
}
p {
false
}
p {
false
}
q {
false
}
- |
package topdown.set
q {
false
}
- |
package topdown.set
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package enum_errors.caller
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package enum_errors.caller
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.conflicts
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package topdown.conflicts
k = "bar"
- |
package topdown
k = "bar"
- |
package topdown
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package topdown.no.base.doc
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package topdown.no.base.doc
p = true
- |
package partial.topdown
p = true
- |
package partial.topdown
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
- |
package enum_errors.a.b.c
r[["c", x21]] {
data.topdown.a.b.c = x21
}
- |
package enum_errors.a.b.c
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.a.b.c
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.a.b.c
p = [1, 2]
p = [1, 2]
q = [3, 4]
q = [3, 4]
r["a"] = 1
r["a"] = 1
r["b"] = 2
- |
package topdown.a.b.c.empty
- |
package topdown.a.b.c.undefined2
r["b"] = 2
- |
package topdown.a.b.c.empty
- |
package topdown.a.b.c.undefined2
p {
input.foo
}
- |
package topdown.virtual.constants
p {
input.foo
}
- |
package topdown.virtual.constants
p = 1
p = 1
q = 2
q = 2
r = 1
- |
package topdown.g.h
r = 1
- |
package topdown.g.h
p {
false
}
note: 'baseandvirtualdocs/base/virtual: conflicts'
query: data.topdown.conflicts = x
want_result:
- x:
k: foo
p {
false
}
note: "baseandvirtualdocs/base/virtual: conflicts"
query: data.topdown.conflicts = x
want_result:
- x:
k: foo
@@ -1,157 +1,158 @@
---
cases:
- data: {}
input_term: '{}'
modules:
- |
package topdown.a.b.c.s
- data: {}
input_term: "{}"
modules:
- |
package topdown.a.b.c.s
w = {"f": 10, "g": 9.9}
- |
package topdown.a.b.c.undefined1
w = {"f": 10, "g": 9.9}
- |
package topdown.a.b.c.undefined1
p {
false
}
p {
false
}
p {
false
}
p {
false
}
q {
false
}
- |
package topdown.set
q {
false
}
- |
package topdown.set
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package enum_errors.a.b.c
v[__local6__] {
true
__local6__ = data.topdown.set.u[_]
}
- |
package enum_errors.a.b.c
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.a.b.c.empty
- |
package topdown.virtual.constants
p = x {
__local0__ = 1 / 0
x = __local0__
}
- |
package topdown.a.b.c.empty
- |
package topdown.virtual.constants
p = 1
p = 1
q = 2
q = 2
r = 1
- |
package topdown.g.h
r = 1
- |
package topdown.g.h
p {
false
}
- |
package enum_errors.caller
p {
false
}
- |
package enum_errors.caller
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package partial.topdown
p[x] = y {
data.enum_errors.a[x] = y
}
- |
package partial.topdown
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
r[["c", x21]] {
data.topdown.a.b.c = x21
}
- |
package topdown.missing.input.value
r[["c", x21]] {
data.topdown.a.b.c = x21
}
- |
package topdown.missing.input.value
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.conflicts
p = __local7__ {
true
__local7__ = input.deadbeef
}
- |
package topdown.conflicts
k = "bar"
- |
package topdown.no.base.doc
k = "bar"
- |
package topdown.no.base.doc
p = true
- |
package topdown.a.b.c.undefined2
p = true
- |
package topdown.a.b.c.undefined2
p {
input.foo
}
- |
package topdown_test_partial
p {
input.foo
}
- |
package topdown_test_partial
__result__ = _result {
_result = {"k": "foo"}
}
- |
package topdown
__result__ = _result {
_result = {"k": "foo"}
}
- |
package topdown
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
p[[x1, x2, x3, x4]] {
data.topdown.a.b[x1][x2][x3] = x4
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
q[[x1, x2, x3]] {
data.topdown.a.b[x1][x2][0] = x3
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
r[[x1, x2]] {
data.topdown.a.b[x1] = x2
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
s = __local1__ {
true
__local1__ = data.topdown.no
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
t = __local2__ {
true
__local2__ = data.topdown.a.b.c.undefined1
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
u = __local3__ {
true
__local3__ = data.topdown.missing.input.value
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
v = __local4__ {
true
__local4__ = data.topdown.g
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
w = __local5__ {
true
__local5__ = data.topdown.set
}
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package topdown.a.b.c
iterate_ground[x] {
data.topdown.virtual.constants[x] = 1
}
- |
package topdown.a.b.c
p = [1, 2]
p = [1, 2]
q = [3, 4]
q = [3, 4]
r["a"] = 1
r["a"] = 1
r["b"] = 2
note: baseandvirtualdocs/enumerate virtual errors
query: data.enum_errors.caller.p = x
strict_error: true
want_error: divide by zero
want_error_code: eval_builtin_error
want_result:
- x:
b:
c: {}
r["b"] = 2
note: baseandvirtualdocs/enumerate virtual errors
query: data.enum_errors.caller.p = x
strict_error: true
want_error: divide by zero
want_error_code: eval_builtin_error
want_result:
- x:
b:
c: {}

Some files were not shown because too many files have changed in this diff Show More