mirror of
https://github.com/microsoft/regorus.git
synced 2026-08-05 02:16:11 +00:00
More library functions (#51)
- units.parse, units.parse_bytes - json.is_valid, json.marshal, json.unmarshal - yaml.is_valid, yaml.marshal, yaml.unmarshal - object.subset - set_diff * Also print number of errors due to each missing function * Also lock down fully passing OPA suites Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
This commit is contained in:
committed by
GitHub
parent
e838d5af65
commit
4db2270dcf
@@ -0,0 +1,153 @@
|
||||
# Copyright (c) Microsoft Corporation.
|
||||
# Licensed under the MIT License.
|
||||
|
||||
cases:
|
||||
- note: all
|
||||
data: {}
|
||||
modules:
|
||||
- |
|
||||
package test
|
||||
|
||||
# Supportex by OPA
|
||||
a = [ "E", "e", "P", "p", "T", "t" , "G" , "g" , "M" , "K" , "k" , "m" ]
|
||||
|
||||
# Not supported by OPA
|
||||
b = [ "Q", "R", "Y", "Z", "h", "da", "d", "c",
|
||||
"μ", "n", "f", "a", "z", "y", "r", "q"
|
||||
]
|
||||
|
||||
c = [
|
||||
"ki", "Ki", "kI", "KI",
|
||||
"mi", "Mi", "mI", "MI",
|
||||
"gi", "Gi", "gI", "GI",
|
||||
"ti", "Ti", "tI", "TI",
|
||||
"pi", "Pi", "pI", "PI",
|
||||
"ei", "Ei", "eI", "EI",
|
||||
]
|
||||
|
||||
d = [
|
||||
"zi", "Zi", "zI", "ZI",
|
||||
"yi", "Yi", "yI", "YI",
|
||||
]
|
||||
|
||||
results = {
|
||||
"p1" : [ units.parse(s) | s = concat("", ["1", a[_]]) ],
|
||||
"p2" : [ units.parse(s) | s = concat("", ["1", b[_]]) ],
|
||||
"p3" : [ units.parse(s) | s = concat("", ["1", c[_]]) ],
|
||||
"p4" : [ units.parse(s) | s = concat("", ["1", d[_]]) ],
|
||||
# No suffix, quoted.
|
||||
"p5" : [ units.parse("1"), units.parse("\"1\"") ]
|
||||
}
|
||||
query: data.test.results
|
||||
want_result:
|
||||
p1:
|
||||
- 1e18
|
||||
- 1e18
|
||||
- 1e15
|
||||
- 1e15
|
||||
- 1e12
|
||||
- 1e12
|
||||
- 1e9
|
||||
- 1e9
|
||||
- 1e6
|
||||
- 1e3
|
||||
- 1e3
|
||||
- 1e-3
|
||||
p2:
|
||||
- 1e30
|
||||
- 1e27
|
||||
- 1e24
|
||||
- 1e21
|
||||
- 1e2
|
||||
- 1e1
|
||||
- 1e-1
|
||||
- 1e-2
|
||||
- 1e-6
|
||||
- 1e-9
|
||||
- 1e-15
|
||||
- 1e-18
|
||||
- 1e-21
|
||||
- 1e-24
|
||||
- 1e-27
|
||||
- 1e-30
|
||||
p3:
|
||||
- 1024
|
||||
- 1024
|
||||
- 1024
|
||||
- 1024
|
||||
- 1048576
|
||||
- 1048576
|
||||
- 1048576
|
||||
- 1048576
|
||||
- 1073741824
|
||||
- 1073741824
|
||||
- 1073741824
|
||||
- 1073741824
|
||||
- 1099511627776
|
||||
- 1099511627776
|
||||
- 1099511627776
|
||||
- 1099511627776
|
||||
- 1125899906842624
|
||||
- 1125899906842624
|
||||
- 1125899906842624
|
||||
- 1125899906842624
|
||||
- 1152921504606846976
|
||||
- 1152921504606846976
|
||||
- 1152921504606846976
|
||||
- 1152921504606846976
|
||||
p4:
|
||||
- 1.1805916207174113e21
|
||||
- 1.1805916207174113e21
|
||||
- 1.1805916207174113e21
|
||||
- 1.1805916207174113e21
|
||||
- 1.2089258196146292e24
|
||||
- 1.2089258196146292e24
|
||||
- 1.2089258196146292e24
|
||||
- 1.2089258196146292e24
|
||||
p5: [1, 1]
|
||||
|
||||
- note: extra argument
|
||||
data: {}
|
||||
modules:
|
||||
- |
|
||||
package test
|
||||
a = units.parse("1m", "")
|
||||
query: data.test
|
||||
error: expects 1 argument
|
||||
|
||||
- note: zero arguments
|
||||
data: {}
|
||||
modules:
|
||||
- |
|
||||
package test
|
||||
a = units.parse()
|
||||
query: data.test
|
||||
error: expects 1 argument
|
||||
|
||||
- note: array
|
||||
data: {}
|
||||
modules:
|
||||
- |
|
||||
package test
|
||||
a = units.parse(["1"])
|
||||
query: data.test
|
||||
error: expects string argument
|
||||
|
||||
- note: space
|
||||
data: {}
|
||||
modules:
|
||||
- |
|
||||
package test
|
||||
a = units.parse("1 m")
|
||||
query: data.test
|
||||
error: spaces not allowed in resource string
|
||||
|
||||
- note: b suffix not supported
|
||||
data: {}
|
||||
modules:
|
||||
- |
|
||||
package test
|
||||
a = units.parse("1mb")
|
||||
query: data.test
|
||||
want_result: {}
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
# Copyright (c) Microsoft Corporation.
|
||||
# Licensed under the MIT License.
|
||||
|
||||
cases:
|
||||
- note: all
|
||||
data: {}
|
||||
modules:
|
||||
- |
|
||||
package test
|
||||
a = [
|
||||
"y",
|
||||
"z",
|
||||
"e",
|
||||
"p",
|
||||
"t",
|
||||
"g",
|
||||
"m",
|
||||
"k",
|
||||
]
|
||||
|
||||
p1 = [ units.parse_bytes(s) | s = concat("", ["1", a[_], "i"])]
|
||||
p1 = [ units.parse_bytes(s) | s = concat("", ["1", a[_], "i", "b"])]
|
||||
p1 = [ units.parse_bytes(s) | s = concat("", ["1", a[_], "i", "B"])]
|
||||
|
||||
p1 = [ units.parse_bytes(s) | s = concat("", ["1", a[_], "I"])]
|
||||
p1 = [ units.parse_bytes(s) | s = concat("", ["1", a[_], "I", "b"])]
|
||||
p1 = [ units.parse_bytes(s) | s = concat("", ["1", a[_], "I", "B"])]
|
||||
|
||||
p1 = [ units.parse_bytes(s) | s = concat("", ["1", upper(a[_]), "i", "b"])]
|
||||
p1 = [ units.parse_bytes(s) | s = concat("", ["1", upper(a[_]), "i", "B"])]
|
||||
|
||||
p1 = [ units.parse_bytes(s) | s = concat("", ["1", upper(a[_]), "I", "b"])]
|
||||
p1 = [ units.parse_bytes(s) | s = concat("", ["1", upper(a[_]), "I", "B"])]
|
||||
|
||||
b = [
|
||||
"q",
|
||||
"r",
|
||||
"y",
|
||||
"z",
|
||||
"e",
|
||||
"p",
|
||||
"t",
|
||||
"g",
|
||||
"m",
|
||||
"k",
|
||||
]
|
||||
|
||||
p2 = [ units.parse_bytes(s) | s = concat("", ["1", b[_], "b"])]
|
||||
p2 = [ units.parse_bytes(s) | s = concat("", ["1", b[_], "B"])]
|
||||
p2 = [ units.parse_bytes(s) | s = concat("", ["1", upper(b[_]), "b"])]
|
||||
p2 = [ units.parse_bytes(s) | s = concat("", ["1", upper(b[_]), "B"])]
|
||||
|
||||
|
||||
results= {
|
||||
"p1": p1,
|
||||
"p2": p2,
|
||||
}
|
||||
query: data.test.results
|
||||
want_result:
|
||||
p1:
|
||||
- 1.2089258196146292e24
|
||||
- 1.1805916207174113e21
|
||||
- 1152921504606846976
|
||||
- 1125899906842624
|
||||
- 1099511627776
|
||||
- 1073741824
|
||||
- 1048576
|
||||
- 1024
|
||||
p2:
|
||||
- 1e30
|
||||
- 1e27
|
||||
- 1e24
|
||||
- 1e21
|
||||
- 1e18
|
||||
- 1e15
|
||||
- 1e12
|
||||
- 1e9
|
||||
- 1e6
|
||||
- 1e3
|
||||
|
||||
- note: extra argument
|
||||
data: {}
|
||||
modules:
|
||||
- |
|
||||
package test
|
||||
a = units.parse_bytes("1m", "")
|
||||
query: data.test
|
||||
error: expects 1 argument
|
||||
|
||||
- note: zero arguments
|
||||
data: {}
|
||||
modules:
|
||||
- |
|
||||
package test
|
||||
a = units.parse_bytes()
|
||||
query: data.test
|
||||
error: expects 1 argument
|
||||
|
||||
- note: array
|
||||
data: {}
|
||||
modules:
|
||||
- |
|
||||
package test
|
||||
a = units.parse_bytes(["1"])
|
||||
query: data.test
|
||||
error: expects string argument
|
||||
|
||||
- note: space
|
||||
data: {}
|
||||
modules:
|
||||
- |
|
||||
package test
|
||||
a = units.parse_bytes("1 m")
|
||||
query: data.test
|
||||
error: spaces not allowed in resource string
|
||||
Reference in New Issue
Block a user