Why upload tests need files of an exact size
An upload limit is a boundary, so it needs boundary values: a file exactly at the limit, one byte under and one byte over. A limit of 10 MB is tested with files of 9,999,999, 10,000,000 and 10,000,001 bytes, and because some systems mean 10 MiB, also with 10,485,760 and 10,485,761 bytes. A "roughly 10 MB" file from a downloads folder cannot tell you which side of the limit the system really enforces.
Every file here is built to the byte. PDFs are padded with an unused object, PNG and JPEG images with a metadata block that viewers ignore, and CSV and JSON files by filling the last row, so each file is still valid for its format at the exact size you asked for.