Files
regorus/tests/interpreter/cases/some/tests.yaml
Anand Krishnamoorthi 70bf371ebf crypto builtins (#57)
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-12-06 07:59:04 -08:00

117 lines
2.6 KiB
YAML

# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
cases:
- note: array
data: {}
modules:
- |
package test
import future.keywords
r1 = y {
# value
y1 = [x | some x in [1, 2, 3]; x >= 2]
# key and value
y2 = [y | some x, y in [1, 2, 3]; x >= 2]
y = [y1, y2]
}
r2[x] {
# Constant value
some x, "l" in ["h", "e", "l", "l", "o"]
}
r3[x] {
# Constant value
some 1, x in ["h", "e", "l", "l", "o"]
}
r4[x] {
# Extract array element
some [5, x] in [[0, 1], [5, 1], [5, 2]]
}
r5[x+y] {
# Extract multiple array elements
some [5, x, y, 9] in [[0, 1], [5, 1, 2, 9], [5, 2, 8, 9]]
}
# Undefined
r6 {
some x in []
}
r7 {
some x in r6
}
query: data.test
want_result:
r1: [ [2, 3], [3]]
r2:
set!: [2, 3]
r3:
set!: ["e"]
r4:
set!: [1, 2]
r5:
set!: [3, 10]
- note: type-mismatch
data: {}
modules:
- |
package test
import future.keywords
x { some [1] in [1] }
query: data.test
error: "Cannot bind pattern of type `array`"
# TODO: How to raise errors only for static mismatches.
skip: true
- note: array-length-mismatch
data: {}
modules:
- |
package test
import future.keywords
x { some [1] in [[1, 2]] }
query: data.test
error: "array length mismatch. Expected 1 got 2."
- note: array-length-mismatch-skipped
data: {}
modules:
- |
package test
import future.keywords
x { some [1] in [[1, 2], [1]] }
query: data.test
want_result:
x: true
- note: invalid-null
data: {}
modules: ["package test\nimport future.keywords\nx { some _ in null}"]
query: data.test
error: "`some .. in collection` expects array/set/object."
- note: invalid-bool
data: {}
modules: ["package test\nimport future.keywords\nx { some _ in false}"]
query: data.test
error: "`some .. in collection` expects array/set/object."
- note: invalid-number
data: {}
modules: ["package test\nimport future.keywords\nx { some _ in 0}"]
query: data.test
error: "`some .. in collection` expects array/set/object."
- note: invalid-string
data: {}
modules: ["package test\nimport future.keywords\nx { some _ in \"\"}"]
query: data.test
error: "`some .. in collection` expects array/set/object."