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

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.