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