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

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.


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.

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.