20 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 | Rozszerzenie | Najmniejszy plik | Wierność | Sprawdzany przez |
|---|---|---|---|---|
bmp |
.bmp |
58 | full | pillow |
csv |
.csv |
117 | full | python-csv |
docx |
.docx |
1227 | full | libreoffice |
gif |
.gif |
41 | full | pillow |
html |
.html |
118 | full | python-html |
ico |
.ico |
70 | full | pillow |
jpg |
.jpg |
602 | full | pillow |
json |
.json |
219 | full | node-json |
log |
.log |
155 | full | nie dotyczy |
md |
.md |
0 | full | nie dotyczy |
pdf |
.pdf |
3415 | full | pdftotext |
png |
.png |
73 | full | pillow |
pptx |
.pptx |
4826 | full | libreoffice |
svg |
.svg |
194 | full | inkscape |
targz |
.tar.gz |
9793 | full | 7z |
txt |
.txt |
0 | full | nie dotyczy |
wav |
.wav |
98 | full | ffprobe |
xlsx |
.xlsx |
1735 | full | libreoffice |
xml |
.xml |
264 | full | python-xml |
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 |
|---|---|---|
bmp |
width |
1 - 20000 pikseli |
height |
1 - 20000 pikseli | |
docx |
paragraphs |
1 - 50000 akapitów |
gif |
width |
1 - 20000 pikseli |
height |
1 - 20000 pikseli | |
ico |
width |
1 - 256 pikseli |
height |
1 - 256 pikseli | |
embed |
bmp, png | |
jpg |
width |
1 - 20000 pikseli |
height |
1 - 20000 pikseli | |
quality |
1 - 100 | |
pdf |
pages |
1 - 5000 |
page_size |
a3, a4, a5, legal, letter | |
png |
width |
1 - 20000 pikseli |
height |
1 - 20000 pikseli | |
pptx |
slides |
1 - 500 slajdów |
targz |
entries |
0 - 10000 |
entry_format |
tekst | |
entry_size |
rozmiar, na przykład 2mb | |
wav |
sample_rate |
8000 - 192000 herców |
bit_depth |
8, 16, 24, 32 | |
channels |
1 - 8 | |
content |
noise, silence, sweep, tone | |
xlsx |
rows |
1 - 200000 wierszy |
columns |
1 - 64 kolumn | |
zip |
entries |
0 - 10000 |
entry_format |
tekst | |
entry_size |
rozmiar, na przykład 2mb |
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
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
Formaty, których jeszcze nie ma
7z, tiff, webp, mp3 i mp4 są
zaplanowane i niezbudowane. Nie ma ich na liście wyżej, zamiast być obecne i działać połowicznie,
a poproszenie o któryś kończy się błędem mówiącym, że format jest nieznany.
Jeśli potrzebujesz któregoś z nich albo formatu, którego nie ma na żadnej z tych list, zgłoszenia są miejscem, gdzie się o tym decyduje.