1
1
mirror of https://github.com/wader/fq.git synced 2024-12-03 13:46:37 +03:00
fq/pkg/interp/testdata/value_number.fqtest
Mattias Wadman 00ee10a1a1 interp: Make to{actual,sym} behave similar to tovalue
Before if you did toactual it behaved differently and even gave error for
a scalar that only had actual value set. Now both to{actal,sym} works
similar to tovalue but will force if actual or sym value should be used.
2022-09-25 17:53:12 +02:00

114 lines
3.5 KiB
Plaintext

$ fq -i -d mp3 . test.mp3
mp3> .headers[0].version | ., tovalue, toactual, tosym, type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x0| 04 | . |.headers[0].version: 4
4
4
null
"number"
4
mp3> .headers[0].version[0] | ., type, length?
error: expected an array but got: number
mp3> .headers[0].version[-1000] | ., type, length?
error: expected an array but got: number
mp3> .headers[0].version[1000] | ., type, length?
error: expected an array but got: number
mp3> .headers[0].version[1:3] | ., type, length?
error: expected an array but got: number
mp3> .headers[0].version[0:-1] | ., type, length?
error: expected an array but got: number
mp3> .headers[0].version[-1000:2000] | ., type, length?
error: expected an array but got: number
mp3> .headers[0].version["test"] | ., type, length?
error: expected an object but got: number
mp3> [.headers[0].version[]] | type, length?
error: cannot iterate over: number
mp3> .headers[0].version | keys
error: keys cannot be applied to: number
mp3> .headers[0].version | has("a")
error: has cannot be applied to: number
mp3> .headers[0].version | has(0)
error: has cannot be applied to: number
mp3> .headers[0].version | type
"number"
mp3> .headers[0].version | tonumber
4
mp3> .headers[0].version | tostring
"4"
mp3> .headers[0].version + ""
error: cannot add: number (4) and string ("")
mp3> .headers[0].version + 1
5
mp3> .headers[0].version._start | ., type, length?
24
"number"
24
mp3> .headers[0].version._stop | ., type, length?
32
"number"
32
mp3> .headers[0].version._len | ., type, length?
8
"number"
8
mp3> .headers[0].version._name | ., type, length?
"version"
"string"
7
mp3> .headers[0].version._actual | ., type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x0| 04 | . |.headers[0].version: 4
"number"
4
mp3> .headers[0].version._sym | ., type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x0| 04 | . |.headers[0].version: 4
"null"
0
mp3> .headers[0].version._description | ., type, length?
null
"null"
0
mp3> .headers[0].version._path | ., type, length?
[
"headers",
0,
"version"
]
"array"
3
mp3> .headers[0].version._bits | ., type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x0| 04 | . |.: raw bits 0x3-0x3.7 (1)
"string"
8
mp3> .headers[0].version._bytes | ., type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x0| 04 | . |.: raw bits 0x3-0x3.7 (1)
"string"
1
mp3> .headers[0].version._error | ., type, length?
null
"null"
0
mp3> .headers[0].version._unknown | ., type, length?
false
"boolean"
mp3> .headers[0].version.a = 1
error: expected an object but got: number (4)
mp3> .headers[0].version[0] = 1
error: expected an array but got: number (4)
mp3> .headers[0].version.a |= empty
error: expected an object but got: number
mp3> .headers[0].version[0] |= empty
error: expected an array but got: number
mp3> .headers[0].version | setpath(["a"]; 1)
error: expected an object but got: number (4)
mp3> .headers[0].version | setpath([0]; 1)
error: expected an array but got: number (4)
mp3> .headers[0].version | delpaths([["a"]])
error: expected an object but got: number (4)
mp3> .headers[0].version | delpaths([[0]])
error: expected an array but got: number (4)
mp3> ^D