factor-work/flac/flac-tests.factor

176 lines
5.4 KiB
Factor

USING: tools.test io.encodings.binary io.streams.byte-array kernel accessors ;
USING: flac.format flac.metadata flac.metadata.private flac.stream flac.decoder ;
IN: flac.tests
CONSTANT: example-1 B{
0x66 0x4c 0x61 0x43 0x80 0x00 0x00 0x22 0x10 0x00 0x10 0x00
0x00 0x00 0x0f 0x00 0x00 0x0f 0x0a 0xc4 0x42 0xf0 0x00 0x00
0x00 0x01 0x3e 0x84 0xb4 0x18 0x07 0xdc 0x69 0x03 0x07 0x58
0x6a 0x3d 0xad 0x1a 0x2e 0x0f 0xff 0xf8 0x69 0x18 0x00 0x00
0xbf 0x03 0x58 0xfd 0x03 0x12 0x8b 0xaa 0x9a
}
CONSTANT: example-2 B{
0x66 0x4c 0x61 0x43 0x00 0x00 0x00 0x22 0x00 0x10 0x00 0x10
0x00 0x00 0x17 0x00 0x00 0x44 0x0a 0xc4 0x42 0xf0 0x00 0x00
0x00 0x13 0xd5 0xb0 0x56 0x49 0x75 0xe9 0x8b 0x8d 0x8b 0x93
0x04 0x22 0x75 0x7b 0x81 0x03 0x03 0x00 0x00 0x12 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x10 0x04 0x00 0x00 0x3a 0x20 0x00 0x00 0x00
0x72 0x65 0x66 0x65 0x72 0x65 0x6e 0x63 0x65 0x20 0x6c 0x69
0x62 0x46 0x4c 0x41 0x43 0x20 0x31 0x2e 0x33 0x2e 0x33 0x20
0x32 0x30 0x31 0x39 0x30 0x38 0x30 0x34 0x01 0x00 0x00 0x00
0x0e 0x00 0x00 0x00 0x54 0x49 0x54 0x4c 0x45 0x3d 0xd7 0xa9
0xd7 0x9c 0xd7 0x95 0xd7 0x9d 0x81 0x00 0x00 0x06 0x00 0x00
0x00 0x00 0x00 0x00 0xff 0xf8 0x69 0x98 0x00 0x0f 0x99 0x12
0x08 0x67 0x01 0x62 0x3d 0x14 0x42 0x99 0x8f 0x5d 0xf7 0x0d
0x6f 0xe0 0x0c 0x17 0xca 0xeb 0x21 0x00 0x0e 0xe7 0xa7 0x7a
0x24 0xa1 0x59 0x0c 0x12 0x17 0xb6 0x03 0x09 0x7b 0x78 0x4f
0xaa 0x9a 0x33 0xd2 0x85 0xe0 0x70 0xad 0x5b 0x1b 0x48 0x51
0xb4 0x01 0x0d 0x99 0xd2 0xcd 0x1a 0x68 0xf1 0xe6 0xb8 0x10
0xff 0xf8 0x69 0x18 0x01 0x02 0xa4 0x02 0xc3 0x82 0xc4 0x0b
0xc1 0x4a 0x03 0xee 0x48 0xdd 0x03 0xb6 0x7c 0x13 0x30
}
CONSTANT: example-3 B{
0x66 0x4c 0x61 0x43 0x80 0x00 0x00 0x22 0x10 0x00 0x10 0x00
0x00 0x00 0x1f 0x00 0x00 0x1f 0x07 0xd0 0x00 0x70 0x00 0x00
0x00 0x18 0xf8 0xf9 0xe3 0x96 0xf5 0xcb 0xcf 0xc6 0xdc 0x80
0x7f 0x99 0x77 0x90 0x6b 0x32 0xff 0xf8 0x68 0x02 0x00 0x17
0xe9 0x44 0x00 0x4f 0x6f 0x31 0x3d 0x10 0x47 0xd2 0x27 0xcb
0x6d 0x09 0x08 0x31 0x45 0x2b 0xdc 0x28 0x22 0x22 0x80 0x57
0xa3
}
{
T{ metadata
{ stream-info
T{ stream-info
{ min-block-size 4096 }
{ max-block-size 4096 }
{ min-frame-size 15 }
{ max-frame-size 15 }
{ sample-rate 44100 }
{ channels 2 }
{ bits-per-sample 16 }
{ samples 1 }
{ md5 "3e84b41807dc690307586a3dad1a2e0f" }
}
}
{ padding f }
{ application f }
{ seek-table f }
{ vorbis-comment f }
{ cuesheet f }
{ picture { } }
}
T{ flac-frame
{ header
T{ flac-frame-header
{ blocking-strategy fixed-blocksize }
{ blocksize 1 }
{ sample-rate 44100 }
{ channel-assignment channel-assignment-independent }
{ bits-per-sample 16 }
{ crc 191 }
}
}
{ subframes
{
T{ flac-subframe
{ header
T{ flac-subframe-header
{ subframe-type subframe-type-verbatim }
{ wasted-bits 2 }
}
}
{ data
T{ flac-subframe-verbatim
{ value { 25588 } }
}
}
}
T{ flac-subframe
{ header
T{ flac-subframe-header
{ subframe-type subframe-type-verbatim }
{ wasted-bits 4 }
}
}
{ data
T{ flac-subframe-verbatim
{ value { 10416 } }
}
}
}
}
}
{ footer T{ flac-frame-footer { crc 43674 } } }
}
} [
example-1 binary <byte-reader> [
read-flac-metadata dup stream-info>>
read-flac-frame
] with-flac-stream-reader
] unit-test
{
T{ metadata
{ stream-info
T{ stream-info
{ min-block-size 16 }
{ max-block-size 16 }
{ min-frame-size 23 }
{ max-frame-size 68 }
{ sample-rate 44100 }
{ channels 2 }
{ bits-per-sample 16 }
{ samples 19 }
{ md5 "d5b0564975e98b8d8b930422757b8103" }
}
}
{ padding T{ flac-padding { length 6 } } }
{ seek-table
T{ seek-table
{ seek-points
{ T{ seek-point { total-samples 16 } } }
}
}
}
{ vorbis-comment
T{ vorbis-comment
{ vendor-string "reference libFLAC 1.3.3 20190804" }
{ comments { { "TITLE" "שלום" } } }
}
}
}
} [
example-2 binary <byte-reader> [
read-flac-metadata dup stream-info>>
read-flac-frame
] with-flac-stream-reader
] unit-test
{
T{ metadata
{ stream-info
T{ stream-info
{ min-block-size 4096 }
{ max-block-size 4096 }
{ min-frame-size 31 }
{ max-frame-size 31 }
{ sample-rate 32000 }
{ channels 1 }
{ bits-per-sample 8 }
{ samples 24 }
{ md5 "f8f9e396f5cbcfc6dc807f9977906b32" }
}
}
}
} [
example-3 binary <byte-reader> [
read-flac-metadata
] with-flac-stream-reader
] unit-test