1
1
mirror of https://github.com/wader/fq.git synced 2024-11-27 14:14:58 +03:00
fq/pkg/interp/testdata/value_array.fqtest
Mattias Wadman 06245d1295 binary,decode,doc: Rename buffer to binary and add some documentation
Rename buffer to binary. Still some work left what to call buffer/binary in decode code.
Document decode value and binary type
Fix proper unit padding for tobytes and add still undocumenated extra padding argument.
Add some additional binary tests
2022-02-08 22:20:28 +01:00

203 lines
5.3 KiB
Plaintext

$ fq -i -d mp3 . /test.mp3
mp3> .headers | ., tovalue, type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.headers[0:1]:
0x00|49 44 33 04 00 00 00 00 00 23 54 53 53 45 00 00|ID3......#TSSE..| [0]{}: (id3v2)
* |until 0x2c.7 (45) | |
[
{
"flags": {
"experimental_indicator": false,
"extended_header": false,
"unsynchronisation": false,
"unused": 0
},
"frames": [
{
"flags": {
"compression": false,
"data_length_indicator": false,
"encryption": false,
"file_alter_preservation": false,
"grouping_identity": false,
"read_only": false,
"tag_alter_preservation": false,
"unsync": false,
"unused0": 0,
"unused1": 0,
"unused2": 0
},
"id": "TSSE",
"size": 15,
"text": "Lavf58.45.100",
"text_encoding": "UTF-8"
}
],
"magic": "ID3",
"padding": "<10>AAAAAAAAAAAAAA==",
"revision": 0,
"size": 35,
"version": 4
}
]
"array"
1
mp3> .headers[0] | ., type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.headers[0]{}: (id3v2)
0x00|49 44 33 |ID3 | magic: "ID3" (valid)
0x00| 04 | . | version: 4
0x00| 00 | . | revision: 0
0x00| 00 | . | flags{}:
0x00| 00 00 00 23 | ...# | size: 35
0x00| 54 53 53 45 00 00| TSSE..| frames[0:1]:
0x10|00 0f 00 00 03 4c 61 76 66 35 38 2e 34 35 2e 31|.....Lavf58.45.1|
0x20|30 30 00 |00. |
0x20| 00 00 00 00 00 00 00 00 00 00 | .......... | padding: raw bits (all zero)
"object"
7
mp3> .headers[-1000] | ., type, length?
null
"null"
0
mp3> .headers[1000] | ., type, length?
null
"null"
0
mp3> .headers[1:3] | ., type, length?
[]
"array"
0
mp3> .headers[0:-1] | ., type, length?
[]
"array"
0
mp3> .headers[-1000:2000] | ., type, length?
[
{
"flags": {
"experimental_indicator": false,
"extended_header": false,
"unsynchronisation": false,
"unused": 0
},
"frames": [
{
"flags": {
"compression": false,
"data_length_indicator": false,
"encryption": false,
"file_alter_preservation": false,
"grouping_identity": false,
"read_only": false,
"tag_alter_preservation": false,
"unsync": false,
"unused0": 0,
"unused1": 0,
"unused2": 0
},
"id": "TSSE",
"size": 15,
"text": "Lavf58.45.100",
"text_encoding": "UTF-8"
}
],
"magic": "ID3",
"padding": "<10>AAAAAAAAAAAAAA==",
"revision": 0,
"size": 35,
"version": 4
}
]
"array"
1
mp3> .headers["test"] | ., type, length?
error: expected an object with key "test" but got: array
mp3> [.headers[]] | type, length?
"array"
1
mp3> .headers | keys
[
0
]
mp3> .headers | has("a")
error: cannot check whether array has a key: a
mp3> .headers | has(0)
true
mp3> .headers | type
"array"
mp3> .headers | tonumber
error: tonumber cannot be applied to: array
mp3> .headers | tostring
error: tostring cannot be applied to: array
mp3> .headers + ""
error: cannot add: array ([{"flags":{"experimental_ ...]) and string ("")
mp3> .headers + 1
error: cannot add: array ([{"flags":{"experimental_ ...]) and number (1)
mp3> .headers._start | ., type, length?
0
"number"
0
mp3> .headers._stop | ., type, length?
360
"number"
360
mp3> .headers._len | ., type, length?
360
"number"
360
mp3> .headers._name | ., type, length?
"headers"
"string"
7
mp3> .headers._sym | ., type, length?
null
"null"
0
mp3> .headers._description | ., type, length?
null
"null"
0
mp3> .headers._path | ., type, length?
[
"headers"
]
"array"
1
mp3> .headers._bits | ., type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x00|49 44 33 04 00 00 00 00 00 23 54 53 53 45 00 00|ID3......#TSSE..|.: raw bits 0x0-0x2c.7 (45)
* |until 0x2c.7 (45) | |
"binary"
360
mp3>
mp3> .headers._bytes | ., type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x00|49 44 33 04 00 00 00 00 00 23 54 53 53 45 00 00|ID3......#TSSE..|.: raw bits 0x0-0x2c.7 (45)
* |until 0x2c.7 (45) | |
"binary"
45
mp3>
mp3> .headers._error | ., type, length?
null
"null"
0
mp3> .headers._unknown | ., type, length?
false
"boolean"
mp3> .headers.a = 1
error: update key a cannot be applied to: array
mp3> .headers[0] = 1
error: update key 0 cannot be applied to: array
mp3> .headers.a |= empty
error: expected an object with key "a" but got: array
mp3> .headers[0] |= empty
error: update key 0 cannot be applied to: array
mp3> .headers | setpath(["a"]; 1)
error: update key a cannot be applied to: array
mp3> .headers | setpath([0]; 1)
error: update key 0 cannot be applied to: array
mp3> .headers | delpaths([["a"]])
error: update key a cannot be applied to: array
mp3> .headers | delpaths([[0]])
error: update key 0 cannot be applied to: array
mp3> ^D