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

transparent-1x1.gif was created by this Go program.