30 formatów plików, każdy generowany o dokładnym rozmiarze
Każdy z nich to prawdziwy plik tego formatu. Otwiera się w programie, do którego należy, i ma dokładnie tyle bajtów, ile zamówiłeś. Żaden nie jest zerami z doklejonym rozszerzeniem.
| Format | Nazwa | Rozszerzenie | Najmniejszy plik | Wierność | Sprawdzany przez |
|---|---|---|---|---|---|
avif |
AV1 Image File Format | .avif |
311 | full | pillow |
bmp |
Windows Bitmap | .bmp |
58 | full | pillow |
csv |
Comma-Separated Values | .csv |
115 | full | python-csv |
docx |
Word (Office Open XML) | .docx |
1220 | full | libreoffice |
eml |
Email message | .eml |
289 | full | python-email |
geojson |
GeoJSON | .geojson |
875 | full | gdal-geojson |
gif |
Graphics Interchange Format | .gif |
114 | full | pillow |
html |
HyperText Markup Language | .html |
118 | full | python-html |
ico |
Windows Icon | .ico |
70 | full | pillow |
jpg |
JPEG | .jpg |
602 | full | pillow |
json |
JavaScript Object Notation | .json |
219 | full | node-json |
jxl |
JPEG XL | .jxl |
147 | full | pillow-jxl |
log |
Server and application log | .log |
155 | full | nie dotyczy |
md |
Markdown | .md |
0 | full | nie dotyczy |
mp4 |
MP4 video | .mp4 |
3312 | full | libaom |
pdf |
Portable Document Format | .pdf |
3415 | full | pdftotext |
png |
Portable Network Graphics | .png |
74 | full | pillow |
pptx |
PowerPoint (Office Open XML) | .pptx |
4809 | full | libreoffice |
svg |
Scalable Vector Graphics | .svg |
194 | full | inkscape |
targz |
tar + gzip | .tar.gz |
9790 | full | 7z |
tiff |
Tagged Image File Format | .tiff |
183 | full | pillow |
toml |
TOML | .toml |
212 | full | python-toml |
txt |
Plain text | .txt |
0 | full | nie dotyczy |
wav |
Waveform Audio | .wav |
98 | full | ffprobe |
webm |
WebM video | .webm |
3284 | full | libaom |
webp |
WebP | .webp |
148 | full | pillow |
xlsx |
Excel (Office Open XML) | .xlsx |
1726 | full | libreoffice |
xml |
Extensible Markup Language | .xml |
264 | full | python-xml |
yaml |
YAML | .yaml |
241 | full | python-yaml |
zip |
ZIP | .zip |
8382 | full | 7z |
Co znaczą kolumny
-
Najmniejszy plik
Najmniejsza liczba bajtów, jaką narzędzie przyjmie dla tego formatu, razem z etykietą, którą zapisuje w środku pliku. Poproś o mniej, a dostaniesz błąd nazywający to ograniczenie i jego powód, nigdy plik o innym rozmiarze.
-
Wierność
Jak kompletny jest plik.
fullznaczy, że czytnik naprawdę parsujący ten format przyjmuje plik, a nie tylko że zgadza się rozszerzenie. -
Sprawdzany przez
Niezależny czytnik, który otwiera każdy wygenerowany plik, zanim format trafi do wydania - inna implementacja, a nie nasz własny kod oceniający własną pracę.
Każdy format powtarza się też co do bajta: ten sam przepis i ziarno dają identyczne pliki na dowolnej maszynie, i właśnie dlatego przepis można bezpiecznie commitować zamiast samych danych testowych.
Ustawienia, które przyjmuje każdy format
Większość formatów ma własne ustawienia - wymiary obrazu, jakość JPEG, liczbę stron PDF, wiersze
i kolumny arkusza, liczbę wpisów w archiwum. Podajesz je przez --set klucz=wartość
w wierszu poleceń albo pod properties: w przepisie.
tfg generate --format jpg --size 500kb --set width=1920 --set height=1080 --set quality=85
| Format | Ustawienie | Przyjmuje |
|---|---|---|
avif |
width |
1 - 16384 pikseli |
height |
1 - 16384 pikseli | |
quality |
1 - 100 | |
bmp |
width |
1 - 20000 pikseli |
height |
1 - 20000 pikseli | |
csv |
delimiter |
comma, pipe, semicolon, tab |
line_ending |
crlf, lf | |
header |
prawda albo fałsz | |
quote_style |
all, minimal, none | |
columns |
2 - 32768 kolumn | |
docx |
paragraphs |
1 - 50000 akapitów |
eml |
body |
alternative, html, plain |
text_encoding |
7bit, 8bit, quoted-printable | |
headers |
ascii, encoded, utf8 | |
line_endings |
crlf, lf | |
attachments |
0 - 10000 | |
attachment_format |
identyfikator formatu, tak jak wypisuje go tfg formats | |
attachment_size |
rozmiar, na przykład 2mb | |
filename_style |
both, content-type, rfc2047, rfc2231 | |
geojson |
geometry |
geometrycollection, linestring, mixed, multilinestring, multipoint, multipolygon, point, polygon |
formatting |
indented, minified, record-per-line | |
precision |
0 - 15 miejsc po przecinku | |
altitude |
prawda albo fałsz | |
vertices |
3 - 1000000 punktów | |
holes |
0 - 100000 dziur | |
winding |
reversed, rfc7946 | |
antimeridian |
prawda albo fałsz | |
unlocated |
all, none, some | |
ids |
mixed, none, number, string | |
bbox |
prawda albo fałsz | |
gif |
width |
1 - 20000 pikseli |
height |
1 - 20000 pikseli | |
frames |
1 - 60 | |
html |
structure |
document, fragment |
ico |
width |
1 - 256 pikseli |
height |
1 - 256 pikseli | |
embed |
bmp, png | |
jpg |
width |
1 - 20000 pikseli |
height |
1 - 20000 pikseli | |
quality |
1 - 100 | |
json |
formatting |
indented, minified, record-per-line |
jxl |
width |
1 - 16384 pikseli |
height |
1 - 16384 pikseli | |
quality |
1 - 100 | |
log |
entry_format |
apache-combined, apache-common, json-lines, nginx, plain, syslog |
timestamps |
advancing, fixed | |
rate |
1 - 1000000 wpisów na sekundę | |
methods |
get, mixed, read | |
status_mix |
client-errors, realistic, server-errors, success | |
level_mix |
debug, errors, quiet, realistic | |
ip_version |
mixed, v4, v6 | |
line_ending |
crlf, lf | |
md |
encoding |
utf-16be, utf-16le, utf-8 |
bom |
prawda albo fałsz | |
mp4 |
width |
1 - 16384 pikseli |
height |
1 - 16384 pikseli | |
duration |
czas trwania, na przykład 10s | |
change_interval |
czas trwania, na przykład 10s | |
frame_rate |
1, 5, 10, 12, 15, 24, 25, 30, 48, 50, 60 | |
keyframe_interval |
czas trwania, na przykład 10s | |
quality |
1 - 100 | |
pdf |
pages |
1 - 5000 |
page_size |
a3, a4, a5, legal, letter, mixed | |
orientation |
landscape, mixed, portrait | |
rotate |
0, 90, 180, 270 | |
pdf_version |
1.4, 1.7 | |
title |
dowolny tekst | |
author |
dowolny tekst | |
subject |
dowolny tekst | |
keywords |
dowolny tekst | |
creator |
dowolny tekst | |
producer |
dowolny tekst | |
created |
data, np. 2024-02-29 albo 2024-02-29T13:45:00+02:00, albo none | |
modified |
data, np. 2024-02-29 albo 2024-02-29T13:45:00+02:00, albo none | |
png |
width |
1 - 20000 pikseli |
height |
1 - 20000 pikseli | |
pptx |
slides |
1 - 500 slajdów |
svg |
width |
1 - 20000 pikseli |
height |
1 - 20000 pikseli | |
targz |
entries |
0 - 10000 |
entry_format |
identyfikator formatu, tak jak wypisuje go tfg formats | |
entry_size |
rozmiar, na przykład 2mb | |
compression |
best, default, fast, none | |
depth |
0 - 50 | |
directory_entries |
prawda albo fałsz | |
entry_mode |
000, 400, 444, 600, 644, 664, 666, 700, 755, 777 | |
entry_owner |
root, unset, user | |
tiff |
width |
1 - 20000 pikseli |
height |
1 - 20000 pikseli | |
txt |
encoding |
utf-16be, utf-16le, utf-8 |
bom |
prawda albo fałsz | |
wav |
sample_rate |
8000 - 192000 herców |
bit_depth |
8, 16, 24, 32 | |
channels |
1 - 8 | |
content |
noise, silence, sweep, tone | |
webm |
width |
1 - 16384 pikseli |
height |
1 - 16384 pikseli | |
duration |
czas trwania, na przykład 10s | |
change_interval |
czas trwania, na przykład 10s | |
frame_rate |
1, 5, 10, 12, 15, 24, 25, 30, 48, 50, 60 | |
keyframe_interval |
czas trwania, na przykład 10s | |
quality |
1 - 100 | |
webp |
width |
1 - 16383 pikseli |
height |
1 - 16383 pikseli | |
xlsx |
rows |
1 - 200000 wierszy |
columns |
1 - 32768 kolumn | |
xml |
encoding |
utf-16be, utf-16le, utf-8 |
bom |
prawda albo fałsz | |
zip |
entries |
0 - 10000 |
entry_format |
identyfikator formatu, tak jak wypisuje go tfg formats | |
entry_size |
rozmiar, na przykład 2mb | |
compression |
best, default, fast, none | |
depth |
0 - 50 | |
directory_entries |
prawda albo fałsz | |
password |
hasło, zwykłym tekstem | |
encryption |
aes-128, aes-192, aes-256, none, zipcrypto |
Wartość spoza tego, co ustawienie przyjmuje, jest odrzucana komunikatem nazywającym ustawienie, dozwolony zakres i to, czego użyć zamiast tego. Nieznane ustawienie też jest błędem, nigdy cichym pominięciem - literówka przyjęta w milczeniu daje plik z niewłaściwymi ustawieniami i godzinę zastanawiania się, czemu test przechodzi, choć nie powinien.
Uruchom tfg formats <id>, żeby zobaczyć, co dokładnie przyjmuje jeden format
w wersji, którą masz.
Archiwa zawierają prawdziwe pliki
eml oraz targz oraz zip
można wypełnić wpisami, zamiast zostawiać jako pustą skorupę. Wygenerowane archiwum naprawdę
zawiera dokumenty, o których mówi, więc cokolwiek rozpakowuje je w trakcie testu, znajduje
w środku prawdziwe pliki.
targets:
- id: bundle
format: zip
contains:
- format: txt
count: 200
size: 4kb