Testing Files Generator
Русский

26 форматов файлов, каждый создаётся точного размера

Каждый из них - настоящий файл этого формата. Он открывается в своей программе и имеет ровно то число байт, которое вы запросили. Ни один не является нулями-заполнителями с приклеенным расширением.

Формат Название Расширение Наименьший файл Полнота Проверяется с помощью
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
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 не применимо
md Markdown .md 0 full не применимо
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 не применимо
wav Waveform Audio .wav 98 full ffprobe
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

Что означают столбцы

Каждый формат к тому же повторяется до байта: тот же рецепт и тот же seed дают одинаковые файлы на любой машине, и именно это делает безопасным коммит рецепта вместо самих фикстур.

Настройки, которые принимает каждый формат

У большинства форматов есть свои настройки - размеры изображения, качество JPEG, число страниц PDF, строки и столбцы в таблице, сколько записей входит в архив. Задайте их через --set key=value в командной строке или в разделе properties: рецепта.

tfg generate --format jpg --size 500kb --set width=1920 --set height=1080 --set quality=85
Формат Настройка Допускает
avif width 1 - 16384 пикселей
height 1 - 16384 пикселей
quality 1 - 100
bmp width 1 - 20000 пикселей
height 1 - 20000 пикселей
csv delimiter comma, pipe, semicolon, tab
line_ending crlf, lf
header истина или ложь
quote_style all, minimal, none
columns 2 - 32768 столбцов
docx paragraphs 1 - 50000 абзацев
gif width 1 - 20000 пикселей
height 1 - 20000 пикселей
frames 1 - 60
html structure document, fragment
ico width 1 - 256 пикселей
height 1 - 256 пикселей
embed bmp, png
jpg width 1 - 20000 пикселей
height 1 - 20000 пикселей
quality 1 - 100
json formatting indented, minified, record-per-line
jxl width 1 - 16384 пикселей
height 1 - 16384 пикселей
quality 1 - 100
log entry_format apache-combined, apache-common, json-lines, nginx, plain, syslog
timestamps advancing, fixed
rate 1 - 1000000 записей в секунду
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 истина или ложь
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 любой текст
author любой текст
subject любой текст
keywords любой текст
creator любой текст
producer любой текст
created дата вида 2024-02-29 или 2024-02-29T13:45:00+02:00, либо none
modified дата вида 2024-02-29 или 2024-02-29T13:45:00+02:00, либо none
png width 1 - 20000 пикселей
height 1 - 20000 пикселей
pptx slides 1 - 500 слайдов
svg width 1 - 20000 пикселей
height 1 - 20000 пикселей
targz entries 0 - 10000
entry_format id формата в том виде, как его выводит tfg formats
entry_size размер, например 2mb
compression best, default, fast, none
depth 0 - 50
directory_entries истина или ложь
entry_mode 000, 400, 444, 600, 644, 664, 666, 700, 755, 777
entry_owner root, unset, user
tiff width 1 - 20000 пикселей
height 1 - 20000 пикселей
txt encoding utf-16be, utf-16le, utf-8
bom истина или ложь
wav sample_rate 8000 - 192000 герц
bit_depth 8, 16, 24, 32
channels 1 - 8
content noise, silence, sweep, tone
webp width 1 - 16383 пикселей
height 1 - 16383 пикселей
xlsx rows 1 - 200000 строк
columns 1 - 32768 столбцов
xml encoding utf-16be, utf-16le, utf-8
bom истина или ложь
zip entries 0 - 10000
entry_format id формата в том виде, как его выводит tfg formats
entry_size размер, например 2mb
compression best, default, fast, none
depth 0 - 50
directory_entries истина или ложь
password пароль открытым текстом
encryption aes-128, aes-192, aes-256, none, zipcrypto

Значение вне допустимого для настройки отклоняется сообщением с названием настройки, допустимым диапазоном и тем, что использовать вместо этого. Неизвестная настройка тоже ошибка, а не молчаливое значение по умолчанию - опечатка, принятая молча, даёт файл с неверными настройками и час раздумий, почему тест проходит, хотя не должен.

Выполните tfg formats <id>, чтобы увидеть, что именно принимает один формат в вашей сборке.

Архивы содержат настоящие файлы

targz и zip можно наполнить записями, а не оставлять пустой оболочкой. Созданный архив действительно содержит документы, которые заявляет, поэтому всё, что распаковывает его во время теста, находит внутри настоящие файлы.

targets:
  - id: bundle
    format: zip
    contains:
      - format: txt
        count: 200
        size: 4kb