tree: 12a0d583b8f01aa23c6501accb19109cb8964148
  1. analysis/
  2. artificial-bzip2/
  3. artificial-deflate/
  4. artificial-gif/
  5. artificial-jpeg/
  6. artificial-png/
  7. artificial-thumbhash/
  8. artificial-xz-filter/
  9. non-ascii/
  10. 0.bytes
  11. 256.bytes
  12. 256.bytes.bz2
  13. 256.bytes.gz
  14. 256.bytes.two-concatenated-streams.xz
  15. 36.png
  16. 49.png
  17. abraca.txt
  18. abraca.txt.bz2
  19. animated-red-blue.000000.nie
  20. animated-red-blue.000001.nie
  21. animated-red-blue.000002.nie
  22. animated-red-blue.000003.nie
  23. animated-red-blue.apng
  24. animated-red-blue.gif
  25. animated-red-blue.nia
  26. archive.7z
  27. archive.cab
  28. archive.iso
  29. archive.password-is-asdf.zip
  30. archive.rar
  31. archive.tar
  32. archive.tar.bz2
  33. archive.tar.gz
  34. archive.zip
  35. australian-abc-local-stations.json
  36. australian-abc-local-stations.tokens
  37. bricks-color.bmp
  38. bricks-color.etc1.pkm
  39. bricks-color.etc1s.pkm
  40. bricks-color.etc2.pkm
  41. bricks-color.handsum
  42. bricks-color.jpeg
  43. bricks-color.lossless.webp
  44. bricks-color.lossy.webp
  45. bricks-color.png
  46. bricks-color.qoi
  47. bricks-color.tga
  48. bricks-color.tiff
  49. bricks-dither.bmp
  50. bricks-dither.gif
  51. bricks-dither.indexes
  52. bricks-dither.indexes.giflzw
  53. bricks-dither.lossless.webp
  54. bricks-dither.no-ancillary.png
  55. bricks-dither.palette
  56. bricks-dither.png
  57. bricks-gray.bmp
  58. bricks-gray.gif
  59. bricks-gray.indexes
  60. bricks-gray.indexes.giflzw
  61. bricks-gray.jpeg
  62. bricks-gray.lossless.webp
  63. bricks-gray.lossy.webp
  64. bricks-gray.no-ancillary.png
  65. bricks-gray.png
  66. bricks-gray.tga
  67. bricks-gray.tiff
  68. bricks-nodither.bmp
  69. bricks-nodither.gif
  70. bricks-nodither.indexes
  71. bricks-nodither.indexes.giflzw
  72. bricks-nodither.lossless.webp
  73. bricks-nodither.palette
  74. bricks-nodither.png
  75. bricks-nodither.tga
  76. bricks-nodither.wbmp
  77. cbor-rfc-7049-examples.cbor
  78. cbor-rfc-7049-examples.sans-comments.json
  79. cbor-rfc-7049-examples.tokens
  80. cbor-rfc-7049-examples.with-comments.json
  81. checkerboard.gamma1dot0.png
  82. checkerboard.gamma2dot2.png
  83. crude-flag.nia
  84. crude-flag.nie
  85. crude-flag.nii
  86. DCI-P3-D65.icc
  87. DCI-P3-D65.icc.zlib
  88. enwik5
  89. enwik5.block-size-32k.xz
  90. enwik5.lzma
  91. enwik5.lzma2-chunk-max-1-13.xz
  92. enwik5.xz
  93. file-sizes.json
  94. gifplayer-muybridge.gif
  95. github-tags.json
  96. harvesters.bmp
  97. harvesters.gif
  98. harvesters.jpeg
  99. harvesters.lossless.webp
  100. harvesters.lossy.webp
  101. harvesters.png
  102. harvesters.tiff
  103. hat.bmp
  104. hat.gif
  105. hat.jpeg
  106. hat.lossless.webp
  107. hat.lossy.webp
  108. hat.png
  109. hat.tiff
  110. hat.wbmp
  111. hello.sh
  112. hibiscus.primitive.bmp
  113. hibiscus.primitive.gif
  114. hibiscus.primitive.jpeg
  115. hibiscus.primitive.lossless.webp
  116. hibiscus.primitive.lossy.webp
  117. hibiscus.primitive.png
  118. hibiscus.primitive.svg
  119. hibiscus.primitive.tiff
  120. hibiscus.regular.bmp
  121. hibiscus.regular.gif
  122. hibiscus.regular.jpeg
  123. hibiscus.regular.lossless.webp
  124. hibiscus.regular.lossy.webp
  125. hibiscus.regular.png
  126. hibiscus.regular.tiff
  127. hippopotamus.bmp
  128. hippopotamus.interlaced.gif
  129. hippopotamus.interlaced.png
  130. hippopotamus.interlaced.truncated.gif
  131. hippopotamus.interlaced.truncated.png
  132. hippopotamus.jpeg
  133. hippopotamus.lossless.webp
  134. hippopotamus.lossy.webp
  135. hippopotamus.masked-with-muybridge.etc2.bgra-binary.pkm
  136. hippopotamus.masked-with-muybridge.etc2.bgra-nonpremul.pkm
  137. hippopotamus.masked-with-muybridge.gif
  138. hippopotamus.masked-with-muybridge.png
  139. hippopotamus.nie
  140. hippopotamus.pgm
  141. hippopotamus.ppm
  142. hippopotamus.regular.gif
  143. hippopotamus.regular.ico
  144. hippopotamus.regular.png
  145. hippopotamus.regular.truncated.png
  146. hippopotamus.tiff
  147. json-quirks.json
  148. json-quirks.tokens
  149. json-things.cbor
  150. json-things.formatted.json
  151. json-things.unformatted.json
  152. json-things.unformatted.tokens
  153. midsummer.txt
  154. midsummer.txt.bz2
  155. midsummer.txt.gz
  156. midsummer.txt.zlib
  157. mona-lisa.21x32.etc2.pkm
  158. mona-lisa.21x32.handsum
  159. mona-lisa.21x32.png
  160. mona-lisa.21x32.q50.jpeg
  161. mona-lisa.21x32.q90.jpeg
  162. mona-lisa.21x32.th
  163. muybridge-frame-000.indexes
  164. muybridge-frame-000.wbmp
  165. muybridge-frame-001.indexes
  166. muybridge-frame-002.indexes
  167. muybridge-frame-003.indexes
  168. muybridge-frame-004.indexes
  169. muybridge-frame-005.indexes
  170. muybridge-frame-006.indexes
  171. muybridge-frame-007.indexes
  172. muybridge-frame-008.indexes
  173. muybridge-frame-009.indexes
  174. muybridge-frame-010.indexes
  175. muybridge-frame-011.indexes
  176. muybridge-frame-012.indexes
  177. muybridge-frame-013.indexes
  178. muybridge-frame-014.indexes
  179. muybridge.apng
  180. muybridge.gif
  181. nobel-prizes.json
  182. peacock.default.jpeg
  183. peacock.default.truncated.decoded-by-djpeg.png
  184. peacock.default.truncated.decoded-by-wuffs.png
  185. peacock.default.truncated.jpeg
  186. peacock.grayscale.jpeg
  187. peacock.optimize.jpeg
  188. peacock.png
  189. peacock.ppm
  190. peacock.progressive.jpeg
  191. peacock.progressive.scan000.jpeg
  192. peacock.progressive.scan001.jpeg
  193. peacock.progressive.scan002.jpeg
  194. peacock.progressive.scan003.jpeg
  195. peacock.progressive.scan004.jpeg
  196. peacock.progressive.scan005.jpeg
  197. peacock.progressive.scan006.jpeg
  198. peacock.progressive.scan007.jpeg
  199. peacock.progressive.scan008.jpeg
  200. peacock.progressive.scan009.jpeg
  201. peacock.progressive.truncated.decoded-by-djpeg.png
  202. peacock.progressive.truncated.decoded-by-wuffs.png
  203. peacock.progressive.truncated.jpeg
  204. peacock.q30.jpeg
  205. peacock.q99.jpeg
  206. peacock.s-very-weird.jpeg
  207. peacock.s-weird.jpeg
  208. peacock.s1x1-444.jpeg
  209. peacock.s1x3.jpeg
  210. peacock.s2x1-422.jpeg
  211. peacock.s2x2-420.jpeg
  212. pi.txt
  213. pi.txt.bz2
  214. pi.txt.giflzw
  215. pi.txt.gz
  216. pi.txt.zlib
  217. pjw-thumbnail.bmp
  218. pjw-thumbnail.gif
  219. pjw-thumbnail.jpeg
  220. pjw-thumbnail.lossless.webp
  221. pjw-thumbnail.lossy.webp
  222. pjw-thumbnail.png
  223. pjw-thumbnail.tiff
  224. README.md
  225. red-blue-gradient.dcip3d65-no-chrm-no-gama.png
  226. red-blue-gradient.gamma1dot0.png
  227. red-blue-gradient.gamma1dot8.png
  228. red-blue-gradient.gamma2dot2.png
  229. red-blue-gradient.vanilla.png
  230. rfc-6901-json-pointer.json
  231. rgb24png.bmp
  232. ridiculously-fast.png
  233. romeo.txt
  234. romeo.txt.bz2
  235. romeo.txt.deflate
  236. romeo.txt.delta1.xz
  237. romeo.txt.fixed-huff.deflate
  238. romeo.txt.gz
  239. romeo.txt.litonlylzma
  240. romeo.txt.lz
  241. romeo.txt.lzma
  242. romeo.txt.xz
  243. romeo.txt.zlib
  244. romeo.txt.zst
  245. sheep-more.rac
test/data/README.md

Unless otherwise noted, the *.gzfiles were generated by the gzip command line tool and the *.deflate and *.zlib versions were then generated by script/extract-deflate-offsets.go. Similarly, the *.giflzw files were generated by script/extract-giflzw.go and the *.palette and *.indexes files were generated by script/extract-palette-indexes.go. The *.tokens files were generated by script/print-json-token-debug-format.c.

The *.jpeg files are usually the canonical versions of the test/data images, and other versions (*.bmp, *.gif, *.png etc) were usually generated by ImageMagick's convert command line tool. The *.wbmp versions were generated by the script/convert-png-to-wbmp.go command line tool. The *.webp versions were generated by the cwebp command line tool. The *.no-ancillary.png files were generated by the script/strip-png-ancillary-chunks.go command line tool. The *.qoi files were generated by the qoiconv command line tool. The *.pkm files were generated by the ETCPACK command line tool, except the *.etc1s.pkm files were generated by a custom etc1tool.

The *.apng files were generated by gif2apng. Those with finite animation loop counts were manually patched to correct for a gif2apng bug. https://bugs.chromium.org/p/chromium/issues/detail?id=592735 argues that GIF and APNG/WEBP have different semantics but gif2apng does not cater for that.


The artificial-* directories hold artificially generated test data, often to explicitly test corner cases of various file formats. The files there usually come in families whose names have a common prefix, such as three files foo.bar, foo.bar.qux, foo.bar.commentary.txt all prefixed by foo.bar. The file whose name is that prefix is usually the canonical (typically hand-crafted) file, and the other files are then derived from that. Outside of the artificial-* directories, the other files in this directory are typically real world examples of various file formats, or deriviations of them.


The non-ascii directory holds trivial UTF-8 (but not ASCII) text files.


36.png and 49.png are simple, artificially generated images. The generation script is gen-36-49.go from https://github.com/nigeltao/etc2

DCI-P3-D65.icc comes from color.org. DCI-P3-D65.icc.zlib is a zlib-compresion of that, created by Go's standard library.

archive.* archives a subset of other files in this directory.

animated-red-blue.gif is an original animation by Nigel Tao nigeltao@golang.org. animated-red-blue.nia and animated-red-blue.*.nie were then generated by example/convert-to-nia and script/extract-nia-frames.go.

australian-abc-local-stations.json was crawled from data.gov.au.

bricks-* are various encodings of an original photo by Nigel Tao nigeltao@golang.org.

cbor-rfc-7049-examples.cbor is the concatenated examples from RFC 7049. The cbor-rfc-7049-examples.*.json files were then generated by example/cbor-to-json.

checkerboard.*.png was generated by script/make-red-blue-gradient.go.

crude-flag.* is an original animation by Nigel Tao nigeltao@golang.org. See the lib/nie documentation.

enwik5 is the first 1e5 bytes of the enwik8 or enwik9 data, derived from the English Wikipedia as of 2006.

file-sizes.json was created by running script/print-file-sizes-json.go in this repository's root directory.

gifplayer-muybridge.gif is an original animation by Nigel Tao nigeltao@golang.org.

harvesters.* are various encodings of a photo of “The Harvesters” by Pieter Bruegel the Elder, held by the Metropolitan Museum of Art. www.metmuseum.org lists that image as in the public domain.

github-tags.json was crawled from api.github.com.

hat.* are various encodings of a photo of “Self-Portrait with a Straw Hat (obverse: The Potato Peeler)” by Vincent van Gogh, held by the Metropolitan Museum of art. www.metmuseum.org lists that image as in the public domain.

hello.sh is a trivial shell script.

hibiscus.regular.* are various encodings of a photo of “Hibiscus and Parrots” by Louis Comfort Tiffany, held by the Metropolitan Museum of Art. www.metmuseum.org lists that image as in the public domain.

hibiscus.primitive.* is the result of running the hibiscus.regular.png image through github.com/fogleman/primitive and other programs:

  • primitive -i hibiscus.regular.png -o hibiscus.primitive.svg -s 442 -n 32
  • inkscape -z -e hibiscus.primitive.png hibiscus.primitive.svg
  • Various invocations of convert and cwebp

hippopotamus.* are various encodings of a cropping of a photo of “Hippopotamus (William)”, held by the Metropolitan Museum of Art. www.metmuseum.org lists that image as in the public domain.

www.metmuseum.org says that “You are welcome to use images of artworks in The Met collection that the Museum believes to be in the public domain, or those to which the Museum waives any copyright it might have, for any purpose, including commercial and noncommercial use, free of charge and without requiring permission from the Museum.”

json-things.* are original JSON objects by Nigel Tao nigeltao@golang.org.

midsummer.txt is an excerpt of Shakespeare‘s "A Midsummer Night’s Dream", copied from shakespeare.mit.edu.

mona-lisa.* is derived from a Wikimedia Commons photo of the Mona Lisa.

muybridge.gif is derived from en.wikipedia.org which is in the public domain.

nobel-prizes.json was crawled from api.nobelprize.org.

peacock.* is derived from this peacock (pavo cristatus) image, “available under the Creative Commons CC0 1.0 Universal Public Domain Dedication”:

  • wget --quiet https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Pavo_Real_Venezolano.jpg/1024px-Pavo_Real_Venezolano.jpg
  • convert 1024px-Pavo_Real_Venezolano.jpg -resize 100x75 peacock.ppm
  • convert peacock.ppm peacock.png
  • rm 1024px-Pavo_Real_Venezolano.jpg
  • cjpeg peacock.ppm > peacock.default.jpeg
  • cjpeg -optimize peacock.ppm > peacock.optimize.jpeg
  • cjpeg -grayscale peacock.ppm > peacock.grayscale.jpeg
  • cjpeg -progressive peacock.ppm > peacock.progressive.jpeg
  • cjpeg -quality 30 peacock.ppm > peacock.q30.jpeg
  • cjpeg -quality 99 peacock.ppm > peacock.q99.jpeg
  • cjpeg -sample 2x2 peacock.ppm > peacock.s2x2-420.jpeg
  • cjpeg -sample 2x1 peacock.ppm > peacock.s2x1-422.jpeg
  • cjpeg -sample 1x1 peacock.ppm > peacock.s1x1-444.jpeg
  • cjpeg -sample 1x3 peacock.ppm > peacock.s1x3.jpeg
  • cjpeg -sample 2x2,2x1,1x1 peacock.ppm > peacock.s-weird.jpeg
  • cjpeg -sample 4x1,2x1,2x2 peacock.ppm > peacock.s-very-weird.jpeg
  • go run ../../script/truncate-progressive-jpeg.go peacock.progressive.jpeg

pi.txt contains the digits of pi.

pjw-thumbnail.* are various encodings of an image derived from an iconic, original photo of Peter J. Weinberger by Rob Pike r@golang.org.

red-blue-gradient.*.png was generated by script/make-red-blue-gradient.go.

rfc-6901-json-pointer.json is the example JSON document given in the RFC 6901 “JavaScript Object Notation (JSON) Pointer” specification.

rgb24png.bmp comes from BMP Suite, which states that its generated images “are in the public domain”.

ridiculously-fast.png is a screenshot of a Richard Geldreich tweet from January 2022. It was lightly edited to darken the non-text areas.

romeo.txt is an excerpt of Shakespeare's “Romeo and Juliet”, copied from shakespeare.mit.edu.

romeo.txt.fixed-huff.deflate was derived from romeo.txt by a custom program to use fixed (not dynamic) Huffman tables for the deflate encoding.

sheep-more.rac is a RAC-compression of original text by Nigel Tao nigeltao@golang.org.