picky-statistics 4.5.0 → 4.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (607) hide show
  1. data/lib/picky-statistics.rb +4 -2
  2. data/lib/picky-statistics/application/app.rb +10 -4
  3. data/lib/picky-statistics/application/javascripts/crossfilter.v1.min.js +1 -0
  4. data/lib/picky-statistics/application/javascripts/d3.v2.min.js +4 -0
  5. data/lib/picky-statistics/application/javascripts/helpers.js +258 -0
  6. data/lib/picky-statistics/application/javascripts/statistics.js +203 -63
  7. data/lib/picky-statistics/application/stylesheets/statistics.css +137 -71
  8. data/lib/picky-statistics/application/views/index.haml +42 -33
  9. data/lib/picky-statistics/logfile_reader.rb +106 -0
  10. data/spec/lib/picky-statistics/logfile_reader_spec.rb +57 -0
  11. metadata +12 -604
  12. data/lib/picky-statistics/application/javascripts/d3/LICENSE +0 -26
  13. data/lib/picky-statistics/application/javascripts/d3/Makefile +0 -268
  14. data/lib/picky-statistics/application/javascripts/d3/README.md +0 -51
  15. data/lib/picky-statistics/application/javascripts/d3/d3.chart.js +0 -984
  16. data/lib/picky-statistics/application/javascripts/d3/d3.chart.min.js +0 -1
  17. data/lib/picky-statistics/application/javascripts/d3/d3.csv.js +0 -92
  18. data/lib/picky-statistics/application/javascripts/d3/d3.csv.min.js +0 -1
  19. data/lib/picky-statistics/application/javascripts/d3/d3.geo.js +0 -938
  20. data/lib/picky-statistics/application/javascripts/d3/d3.geo.min.js +0 -1
  21. data/lib/picky-statistics/application/javascripts/d3/d3.geom.js +0 -835
  22. data/lib/picky-statistics/application/javascripts/d3/d3.geom.min.js +0 -1
  23. data/lib/picky-statistics/application/javascripts/d3/d3.js +0 -4690
  24. data/lib/picky-statistics/application/javascripts/d3/d3.layout.js +0 -1891
  25. data/lib/picky-statistics/application/javascripts/d3/d3.layout.min.js +0 -1
  26. data/lib/picky-statistics/application/javascripts/d3/d3.min.js +0 -2
  27. data/lib/picky-statistics/application/javascripts/d3/d3.time.js +0 -687
  28. data/lib/picky-statistics/application/javascripts/d3/d3.time.min.js +0 -1
  29. data/lib/picky-statistics/application/javascripts/d3/examples/albers/albers.html +0 -168
  30. data/lib/picky-statistics/application/javascripts/d3/examples/area/area-radial.html +0 -48
  31. data/lib/picky-statistics/application/javascripts/d3/examples/area/area.html +0 -113
  32. data/lib/picky-statistics/application/javascripts/d3/examples/axis/axis-alternating.html +0 -50
  33. data/lib/picky-statistics/application/javascripts/d3/examples/axis/axis-ggplot2.html +0 -68
  34. data/lib/picky-statistics/application/javascripts/d3/examples/axis/axis-multiples.html +0 -117
  35. data/lib/picky-statistics/application/javascripts/d3/examples/axis/axis-orientations.html +0 -63
  36. data/lib/picky-statistics/application/javascripts/d3/examples/axis/axis-transition.html +0 -153
  37. data/lib/picky-statistics/application/javascripts/d3/examples/azimuthal/azimuthal.css +0 -21
  38. data/lib/picky-statistics/application/javascripts/d3/examples/azimuthal/azimuthal.html +0 -99
  39. data/lib/picky-statistics/application/javascripts/d3/examples/azimuthal/azimuthal.js +0 -29
  40. data/lib/picky-statistics/application/javascripts/d3/examples/bar/bar-hierarchy.html +0 -223
  41. data/lib/picky-statistics/application/javascripts/d3/examples/bar/bar.html +0 -101
  42. data/lib/picky-statistics/application/javascripts/d3/examples/bar/sample-data.csv +0 -53
  43. data/lib/picky-statistics/application/javascripts/d3/examples/bonne/bonne.html +0 -159
  44. data/lib/picky-statistics/application/javascripts/d3/examples/box/box.css +0 -4
  45. data/lib/picky-statistics/application/javascripts/d3/examples/box/box.html +0 -19
  46. data/lib/picky-statistics/application/javascripts/d3/examples/box/box.js +0 -68
  47. data/lib/picky-statistics/application/javascripts/d3/examples/brush/brush-ordinal.html +0 -92
  48. data/lib/picky-statistics/application/javascripts/d3/examples/brush/brush-x.html +0 -92
  49. data/lib/picky-statistics/application/javascripts/d3/examples/brush/brush-y.html +0 -91
  50. data/lib/picky-statistics/application/javascripts/d3/examples/brush/brush.html +0 -98
  51. data/lib/picky-statistics/application/javascripts/d3/examples/bubble/bubble.css +0 -8
  52. data/lib/picky-statistics/application/javascripts/d3/examples/bubble/bubble.html +0 -14
  53. data/lib/picky-statistics/application/javascripts/d3/examples/bubble/bubble.js +0 -46
  54. data/lib/picky-statistics/application/javascripts/d3/examples/bullet/bullet.css +0 -10
  55. data/lib/picky-statistics/application/javascripts/d3/examples/bullet/bullet.html +0 -18
  56. data/lib/picky-statistics/application/javascripts/d3/examples/bullet/bullet.js +0 -53
  57. data/lib/picky-statistics/application/javascripts/d3/examples/bullet/bullets.json +0 -7
  58. data/lib/picky-statistics/application/javascripts/d3/examples/bundle/bundle-radial.css +0 -9
  59. data/lib/picky-statistics/application/javascripts/d3/examples/bundle/bundle-radial.html +0 -15
  60. data/lib/picky-statistics/application/javascripts/d3/examples/bundle/bundle-radial.js +0 -50
  61. data/lib/picky-statistics/application/javascripts/d3/examples/bundle/bundle-treemap.css +0 -14
  62. data/lib/picky-statistics/application/javascripts/d3/examples/bundle/bundle-treemap.html +0 -16
  63. data/lib/picky-statistics/application/javascripts/d3/examples/bundle/bundle-treemap.js +0 -53
  64. data/lib/picky-statistics/application/javascripts/d3/examples/bundle/packages.js +0 -49
  65. data/lib/picky-statistics/application/javascripts/d3/examples/button.css +0 -35
  66. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/calendar.css +0 -15
  67. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/dji-area.html +0 -120
  68. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/dji.csv +0 -5233
  69. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/dji.html +0 -15
  70. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/dji.js +0 -65
  71. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/vix.csv +0 -5231
  72. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/vix.html +0 -15
  73. data/lib/picky-statistics/application/javascripts/d3/examples/calendar/vix.js +0 -65
  74. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/cartogram.css +0 -20
  75. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/cartogram.html +0 -15
  76. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/cartogram.js +0 -51
  77. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/demers.css +0 -9
  78. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/demers.html +0 -16
  79. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/demers.js +0 -79
  80. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/dorling.css +0 -9
  81. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/dorling.html +0 -16
  82. data/lib/picky-statistics/application/javascripts/d3/examples/cartogram/dorling.js +0 -80
  83. data/lib/picky-statistics/application/javascripts/d3/examples/chord/chord-flare.html +0 -109
  84. data/lib/picky-statistics/application/javascripts/d3/examples/chord/chord.css +0 -9
  85. data/lib/picky-statistics/application/javascripts/d3/examples/chord/chord.html +0 -14
  86. data/lib/picky-statistics/application/javascripts/d3/examples/chord/chord.js +0 -98
  87. data/lib/picky-statistics/application/javascripts/d3/examples/choropleth/choropleth-area.html +0 -51
  88. data/lib/picky-statistics/application/javascripts/d3/examples/choropleth/choropleth-bounds.html +0 -46
  89. data/lib/picky-statistics/application/javascripts/d3/examples/choropleth/choropleth.css +0 -16
  90. data/lib/picky-statistics/application/javascripts/d3/examples/choropleth/choropleth.html +0 -15
  91. data/lib/picky-statistics/application/javascripts/d3/examples/choropleth/choropleth.js +0 -38
  92. data/lib/picky-statistics/application/javascripts/d3/examples/choropleth/unemployment.json +0 -1
  93. data/lib/picky-statistics/application/javascripts/d3/examples/clock/clock.css +0 -23
  94. data/lib/picky-statistics/application/javascripts/d3/examples/clock/clock.html +0 -17
  95. data/lib/picky-statistics/application/javascripts/d3/examples/clock/clock.js +0 -87
  96. data/lib/picky-statistics/application/javascripts/d3/examples/cluster/cluster-radial.html +0 -14
  97. data/lib/picky-statistics/application/javascripts/d3/examples/cluster/cluster-radial.js +0 -39
  98. data/lib/picky-statistics/application/javascripts/d3/examples/cluster/cluster.css +0 -15
  99. data/lib/picky-statistics/application/javascripts/d3/examples/cluster/cluster.html +0 -14
  100. data/lib/picky-statistics/application/javascripts/d3/examples/cluster/cluster.js +0 -39
  101. data/lib/picky-statistics/application/javascripts/d3/examples/contour/contour.html +0 -108
  102. data/lib/picky-statistics/application/javascripts/d3/examples/crimea/crimea-stacked-area.html +0 -109
  103. data/lib/picky-statistics/application/javascripts/d3/examples/crimea/crimea-stacked-bar.html +0 -98
  104. data/lib/picky-statistics/application/javascripts/d3/examples/crimea/crimea.csv +0 -24
  105. data/lib/picky-statistics/application/javascripts/d3/examples/custom/custom.html +0 -83
  106. data/lib/picky-statistics/application/javascripts/d3/examples/data/README.md +0 -13
  107. data/lib/picky-statistics/application/javascripts/d3/examples/data/faithful.json +0 -8
  108. data/lib/picky-statistics/application/javascripts/d3/examples/data/flare-imports.json +0 -222
  109. data/lib/picky-statistics/application/javascripts/d3/examples/data/flare.json +0 -380
  110. data/lib/picky-statistics/application/javascripts/d3/examples/data/morley.csv +0 -101
  111. data/lib/picky-statistics/application/javascripts/d3/examples/data/sample.csv +0 -2
  112. data/lib/picky-statistics/application/javascripts/d3/examples/data/sample.html +0 -5
  113. data/lib/picky-statistics/application/javascripts/d3/examples/data/sample.json +0 -1
  114. data/lib/picky-statistics/application/javascripts/d3/examples/data/sample.txt +0 -1
  115. data/lib/picky-statistics/application/javascripts/d3/examples/data/sample.xml +0 -4
  116. data/lib/picky-statistics/application/javascripts/d3/examples/data/stocks.csv +0 -807
  117. data/lib/picky-statistics/application/javascripts/d3/examples/data/unemployment.csv +0 -1709
  118. data/lib/picky-statistics/application/javascripts/d3/examples/data/us-borders.json +0 -1
  119. data/lib/picky-statistics/application/javascripts/d3/examples/data/us-counties.json +0 -3216
  120. data/lib/picky-statistics/application/javascripts/d3/examples/data/us-state-centroids.json +0 -54
  121. data/lib/picky-statistics/application/javascripts/d3/examples/data/us-states.json +0 -54
  122. data/lib/picky-statistics/application/javascripts/d3/examples/data/world-countries.json +0 -179
  123. data/lib/picky-statistics/application/javascripts/d3/examples/delaunay/delaunay.html +0 -44
  124. data/lib/picky-statistics/application/javascripts/d3/examples/donut/donut.html +0 -124
  125. data/lib/picky-statistics/application/javascripts/d3/examples/dot/dot.html +0 -103
  126. data/lib/picky-statistics/application/javascripts/d3/examples/drag/drag.html +0 -44
  127. data/lib/picky-statistics/application/javascripts/d3/examples/force/README +0 -10
  128. data/lib/picky-statistics/application/javascripts/d3/examples/force/force-bounds.html +0 -70
  129. data/lib/picky-statistics/application/javascripts/d3/examples/force/force-cluster.html +0 -249
  130. data/lib/picky-statistics/application/javascripts/d3/examples/force/force-collapsible.html +0 -144
  131. data/lib/picky-statistics/application/javascripts/d3/examples/force/force-dynamic.html +0 -118
  132. data/lib/picky-statistics/application/javascripts/d3/examples/force/force-map.html +0 -104
  133. data/lib/picky-statistics/application/javascripts/d3/examples/force/force-multi-foci.html +0 -68
  134. data/lib/picky-statistics/application/javascripts/d3/examples/force/force.css +0 -9
  135. data/lib/picky-statistics/application/javascripts/d3/examples/force/force.html +0 -14
  136. data/lib/picky-statistics/application/javascripts/d3/examples/force/force.js +0 -50
  137. data/lib/picky-statistics/application/javascripts/d3/examples/force/miserables.json +0 -1
  138. data/lib/picky-statistics/application/javascripts/d3/examples/great-arc/great-arc.html +0 -78
  139. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-data-key.html +0 -60
  140. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-data-nested-key.html +0 -75
  141. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-data-nested.html +0 -77
  142. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-data.html +0 -46
  143. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-event.html +0 -53
  144. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-node-key.html +0 -25
  145. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-order.html +0 -25
  146. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-sort.html +0 -75
  147. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-transform.html +0 -41
  148. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-transition-undefined.html +0 -43
  149. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-transition.html +0 -47
  150. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/hello-webkit-transition.html +0 -64
  151. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/select-enter-add.html +0 -29
  152. data/lib/picky-statistics/application/javascripts/d3/examples/hello-world/selectAll-enter-add.html +0 -20
  153. data/lib/picky-statistics/application/javascripts/d3/examples/histogram/histogram.html +0 -80
  154. data/lib/picky-statistics/application/javascripts/d3/examples/horizon/horizon.css +0 -9
  155. data/lib/picky-statistics/application/javascripts/d3/examples/horizon/horizon.html +0 -25
  156. data/lib/picky-statistics/application/javascripts/d3/examples/horizon/horizon.js +0 -43
  157. data/lib/picky-statistics/application/javascripts/d3/examples/horizon/unemployment.json +0 -1
  158. data/lib/picky-statistics/application/javascripts/d3/examples/hull/hull.html +0 -75
  159. data/lib/picky-statistics/application/javascripts/d3/examples/kde/kde.css +0 -9
  160. data/lib/picky-statistics/application/javascripts/d3/examples/kde/kde.html +0 -14
  161. data/lib/picky-statistics/application/javascripts/d3/examples/kde/kde.js +0 -40
  162. data/lib/picky-statistics/application/javascripts/d3/examples/line/line.css +0 -22
  163. data/lib/picky-statistics/application/javascripts/d3/examples/line/line.html +0 -11
  164. data/lib/picky-statistics/application/javascripts/d3/examples/line/line.js +0 -63
  165. data/lib/picky-statistics/application/javascripts/d3/examples/marimekko/marimekko.html +0 -116
  166. data/lib/picky-statistics/application/javascripts/d3/examples/marimekko/marimekko.json +0 -18
  167. data/lib/picky-statistics/application/javascripts/d3/examples/marker/marker.html +0 -169
  168. data/lib/picky-statistics/application/javascripts/d3/examples/mercator/mercator.html +0 -133
  169. data/lib/picky-statistics/application/javascripts/d3/examples/moire/moire.html +0 -53
  170. data/lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js +0 -70
  171. data/lib/picky-statistics/application/javascripts/d3/examples/pack/pack.css +0 -15
  172. data/lib/picky-statistics/application/javascripts/d3/examples/pack/pack.html +0 -14
  173. data/lib/picky-statistics/application/javascripts/d3/examples/pack/pack.js +0 -33
  174. data/lib/picky-statistics/application/javascripts/d3/examples/parallel/cars.csv +0 -407
  175. data/lib/picky-statistics/application/javascripts/d3/examples/parallel/parallel.html +0 -134
  176. data/lib/picky-statistics/application/javascripts/d3/examples/partition/partition-icicle-zoom.html +0 -59
  177. data/lib/picky-statistics/application/javascripts/d3/examples/partition/partition-icicle.html +0 -45
  178. data/lib/picky-statistics/application/javascripts/d3/examples/partition/partition-sunburst-zoom.html +0 -72
  179. data/lib/picky-statistics/application/javascripts/d3/examples/partition/partition-sunburst.html +0 -21
  180. data/lib/picky-statistics/application/javascripts/d3/examples/partition/partition-sunburst.js +0 -72
  181. data/lib/picky-statistics/application/javascripts/d3/examples/pie/pie-transition.html +0 -69
  182. data/lib/picky-statistics/application/javascripts/d3/examples/pie/pie.html +0 -51
  183. data/lib/picky-statistics/application/javascripts/d3/examples/population/population.css +0 -28
  184. data/lib/picky-statistics/application/javascripts/d3/examples/population/population.csv +0 -571
  185. data/lib/picky-statistics/application/javascripts/d3/examples/population/population.html +0 -13
  186. data/lib/picky-statistics/application/javascripts/d3/examples/population/population.js +0 -126
  187. data/lib/picky-statistics/application/javascripts/d3/examples/qq/qq.css +0 -18
  188. data/lib/picky-statistics/application/javascripts/d3/examples/qq/qq.html +0 -21
  189. data/lib/picky-statistics/application/javascripts/d3/examples/qq/qq.js +0 -66
  190. data/lib/picky-statistics/application/javascripts/d3/examples/qq/stats.js +0 -28
  191. data/lib/picky-statistics/application/javascripts/d3/examples/qq/turkers.json +0 -1
  192. data/lib/picky-statistics/application/javascripts/d3/examples/quadtree/quadtree.html +0 -114
  193. data/lib/picky-statistics/application/javascripts/d3/examples/showreel/showreel.html +0 -661
  194. data/lib/picky-statistics/application/javascripts/d3/examples/sizzle/sizzle.html +0 -27
  195. data/lib/picky-statistics/application/javascripts/d3/examples/sort/sort.css +0 -4
  196. data/lib/picky-statistics/application/javascripts/d3/examples/sort/sort.html +0 -12
  197. data/lib/picky-statistics/application/javascripts/d3/examples/sort/sort.js +0 -112
  198. data/lib/picky-statistics/application/javascripts/d3/examples/spline/spline.css +0 -30
  199. data/lib/picky-statistics/application/javascripts/d3/examples/spline/spline.html +0 -14
  200. data/lib/picky-statistics/application/javascripts/d3/examples/spline/spline.js +0 -113
  201. data/lib/picky-statistics/application/javascripts/d3/examples/splom/flowers.json +0 -1
  202. data/lib/picky-statistics/application/javascripts/d3/examples/splom/splom.css +0 -49
  203. data/lib/picky-statistics/application/javascripts/d3/examples/splom/splom.html +0 -13
  204. data/lib/picky-statistics/application/javascripts/d3/examples/splom/splom.js +0 -119
  205. data/lib/picky-statistics/application/javascripts/d3/examples/stream/stack.css +0 -7
  206. data/lib/picky-statistics/application/javascripts/d3/examples/stream/stack.html +0 -22
  207. data/lib/picky-statistics/application/javascripts/d3/examples/stream/stack.js +0 -119
  208. data/lib/picky-statistics/application/javascripts/d3/examples/stream/stream.css +0 -3
  209. data/lib/picky-statistics/application/javascripts/d3/examples/stream/stream.html +0 -19
  210. data/lib/picky-statistics/application/javascripts/d3/examples/stream/stream.js +0 -42
  211. data/lib/picky-statistics/application/javascripts/d3/examples/stream/stream_layers.js +0 -33
  212. data/lib/picky-statistics/application/javascripts/d3/examples/superformula/dot.html +0 -104
  213. data/lib/picky-statistics/application/javascripts/d3/examples/superformula/explorer.html +0 -120
  214. data/lib/picky-statistics/application/javascripts/d3/examples/superformula/superformula.html +0 -70
  215. data/lib/picky-statistics/application/javascripts/d3/examples/superformula/superformula.js +0 -98
  216. data/lib/picky-statistics/application/javascripts/d3/examples/symbol-map/symbol-map.html +0 -67
  217. data/lib/picky-statistics/application/javascripts/d3/examples/touch/touch.html +0 -65
  218. data/lib/picky-statistics/application/javascripts/d3/examples/transform/test.html +0 -85
  219. data/lib/picky-statistics/application/javascripts/d3/examples/transform/transform.html +0 -60
  220. data/lib/picky-statistics/application/javascripts/d3/examples/tree/tree-dynamic.html +0 -111
  221. data/lib/picky-statistics/application/javascripts/d3/examples/tree/tree-interactive.html +0 -172
  222. data/lib/picky-statistics/application/javascripts/d3/examples/tree/tree-radial.html +0 -14
  223. data/lib/picky-statistics/application/javascripts/d3/examples/tree/tree-radial.js +0 -40
  224. data/lib/picky-statistics/application/javascripts/d3/examples/tree/tree.css +0 -15
  225. data/lib/picky-statistics/application/javascripts/d3/examples/tree/tree.html +0 -14
  226. data/lib/picky-statistics/application/javascripts/d3/examples/tree/tree.js +0 -39
  227. data/lib/picky-statistics/application/javascripts/d3/examples/treemap/treemap-svg.html +0 -22
  228. data/lib/picky-statistics/application/javascripts/d3/examples/treemap/treemap-svg.js +0 -34
  229. data/lib/picky-statistics/application/javascripts/d3/examples/treemap/treemap.css +0 -8
  230. data/lib/picky-statistics/application/javascripts/d3/examples/treemap/treemap.html +0 -22
  231. data/lib/picky-statistics/application/javascripts/d3/examples/treemap/treemap.js +0 -53
  232. data/lib/picky-statistics/application/javascripts/d3/examples/voroboids/boid.js +0 -235
  233. data/lib/picky-statistics/application/javascripts/d3/examples/voroboids/voroboids.css +0 -15
  234. data/lib/picky-statistics/application/javascripts/d3/examples/voroboids/voroboids.html +0 -14
  235. data/lib/picky-statistics/application/javascripts/d3/examples/voroboids/voroboids.js +0 -65
  236. data/lib/picky-statistics/application/javascripts/d3/examples/voronoi/voronoi.css +0 -16
  237. data/lib/picky-statistics/application/javascripts/d3/examples/voronoi/voronoi.html +0 -15
  238. data/lib/picky-statistics/application/javascripts/d3/examples/voronoi/voronoi.js +0 -34
  239. data/lib/picky-statistics/application/javascripts/d3/examples/zoom-pan/zoom-pan-transform.html +0 -96
  240. data/lib/picky-statistics/application/javascripts/d3/examples/zoom-pan/zoom-pan.html +0 -120
  241. data/lib/picky-statistics/application/javascripts/d3/examples/zoom/dji.csv +0 -5233
  242. data/lib/picky-statistics/application/javascripts/d3/examples/zoom/zoom.html +0 -162
  243. data/lib/picky-statistics/application/javascripts/d3/lib/colorbrewer/LICENSE +0 -38
  244. data/lib/picky-statistics/application/javascripts/d3/lib/colorbrewer/colorbrewer.css +0 -1327
  245. data/lib/picky-statistics/application/javascripts/d3/lib/colorbrewer/colorbrewer.js +0 -32
  246. data/lib/picky-statistics/application/javascripts/d3/lib/jit/LICENSE +0 -27
  247. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/LICENSE +0 -25
  248. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  249. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  250. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_flat_10_000000_40x100.png +0 -0
  251. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  252. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  253. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  254. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  255. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  256. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  257. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
  258. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-icons_228ef1_256x240.png +0 -0
  259. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-icons_ef8c08_256x240.png +0 -0
  260. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-icons_ffd27a_256x240.png +0 -0
  261. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
  262. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/jquery-ui.css +0 -318
  263. data/lib/picky-statistics/application/javascripts/d3/lib/jquery-ui/jquery-ui.min.js +0 -83
  264. data/lib/picky-statistics/application/javascripts/d3/lib/jquery/LICENSE +0 -20
  265. data/lib/picky-statistics/application/javascripts/d3/lib/jquery/jquery.js +0 -6883
  266. data/lib/picky-statistics/application/javascripts/d3/lib/jquery/jquery.min.js +0 -166
  267. data/lib/picky-statistics/application/javascripts/d3/lib/polymaps/LICENSE +0 -28
  268. data/lib/picky-statistics/application/javascripts/d3/lib/protovis/LICENSE +0 -27
  269. data/lib/picky-statistics/application/javascripts/d3/lib/science/LICENSE +0 -26
  270. data/lib/picky-statistics/application/javascripts/d3/lib/science/science.js +0 -225
  271. data/lib/picky-statistics/application/javascripts/d3/lib/science/science.lin.js +0 -27
  272. data/lib/picky-statistics/application/javascripts/d3/lib/science/science.lin.min.js +0 -1
  273. data/lib/picky-statistics/application/javascripts/d3/lib/science/science.min.js +0 -1
  274. data/lib/picky-statistics/application/javascripts/d3/lib/science/science.stats.js +0 -720
  275. data/lib/picky-statistics/application/javascripts/d3/lib/science/science.stats.min.js +0 -1
  276. data/lib/picky-statistics/application/javascripts/d3/lib/sizzle/LICENSE +0 -24
  277. data/lib/picky-statistics/application/javascripts/d3/lib/sizzle/sizzle.js +0 -1376
  278. data/lib/picky-statistics/application/javascripts/d3/lib/sizzle/sizzle.min.js +0 -28
  279. data/lib/picky-statistics/application/javascripts/d3/package.json +0 -28
  280. data/lib/picky-statistics/application/javascripts/d3/src/behavior/behavior.js +0 -1
  281. data/lib/picky-statistics/application/javascripts/d3/src/behavior/drag.js +0 -125
  282. data/lib/picky-statistics/application/javascripts/d3/src/behavior/zoom.js +0 -242
  283. data/lib/picky-statistics/application/javascripts/d3/src/chart/box.js +0 -297
  284. data/lib/picky-statistics/application/javascripts/d3/src/chart/bullet.js +0 -237
  285. data/lib/picky-statistics/application/javascripts/d3/src/chart/chart.js +0 -1
  286. data/lib/picky-statistics/application/javascripts/d3/src/chart/horizon.js +0 -203
  287. data/lib/picky-statistics/application/javascripts/d3/src/chart/qq.js +0 -245
  288. data/lib/picky-statistics/application/javascripts/d3/src/compat/date.js +0 -3
  289. data/lib/picky-statistics/application/javascripts/d3/src/compat/style.js +0 -9
  290. data/lib/picky-statistics/application/javascripts/d3/src/core/array.js +0 -29
  291. data/lib/picky-statistics/application/javascripts/d3/src/core/ascending.js +0 -3
  292. data/lib/picky-statistics/application/javascripts/d3/src/core/bisect.js +0 -38
  293. data/lib/picky-statistics/application/javascripts/d3/src/core/collapse.js +0 -3
  294. data/lib/picky-statistics/application/javascripts/d3/src/core/core.js +0 -1
  295. data/lib/picky-statistics/application/javascripts/d3/src/core/descending.js +0 -3
  296. data/lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js +0 -60
  297. data/lib/picky-statistics/application/javascripts/d3/src/core/ease.js +0 -128
  298. data/lib/picky-statistics/application/javascripts/d3/src/core/entries.js +0 -5
  299. data/lib/picky-statistics/application/javascripts/d3/src/core/event.js +0 -6
  300. data/lib/picky-statistics/application/javascripts/d3/src/core/extent.js +0 -21
  301. data/lib/picky-statistics/application/javascripts/d3/src/core/first.js +0 -13
  302. data/lib/picky-statistics/application/javascripts/d3/src/core/format.js +0 -100
  303. data/lib/picky-statistics/application/javascripts/d3/src/core/formatPrefix.js +0 -20
  304. data/lib/picky-statistics/application/javascripts/d3/src/core/functor.js +0 -3
  305. data/lib/picky-statistics/application/javascripts/d3/src/core/hsl.js +0 -63
  306. data/lib/picky-statistics/application/javascripts/d3/src/core/html.js +0 -10
  307. data/lib/picky-statistics/application/javascripts/d3/src/core/interpolate.js +0 -183
  308. data/lib/picky-statistics/application/javascripts/d3/src/core/json.js +0 -5
  309. data/lib/picky-statistics/application/javascripts/d3/src/core/keys.js +0 -5
  310. data/lib/picky-statistics/application/javascripts/d3/src/core/last.js +0 -13
  311. data/lib/picky-statistics/application/javascripts/d3/src/core/max.js +0 -14
  312. data/lib/picky-statistics/application/javascripts/d3/src/core/mean.js +0 -13
  313. data/lib/picky-statistics/application/javascripts/d3/src/core/median.js +0 -5
  314. data/lib/picky-statistics/application/javascripts/d3/src/core/merge.js +0 -3
  315. data/lib/picky-statistics/application/javascripts/d3/src/core/min.js +0 -14
  316. data/lib/picky-statistics/application/javascripts/d3/src/core/nest.js +0 -87
  317. data/lib/picky-statistics/application/javascripts/d3/src/core/noop.js +0 -1
  318. data/lib/picky-statistics/application/javascripts/d3/src/core/ns.js +0 -17
  319. data/lib/picky-statistics/application/javascripts/d3/src/core/number.js +0 -3
  320. data/lib/picky-statistics/application/javascripts/d3/src/core/permute.js +0 -7
  321. data/lib/picky-statistics/application/javascripts/d3/src/core/quantile.js +0 -8
  322. data/lib/picky-statistics/application/javascripts/d3/src/core/random.js +0 -15
  323. data/lib/picky-statistics/application/javascripts/d3/src/core/range.js +0 -21
  324. data/lib/picky-statistics/application/javascripts/d3/src/core/rebind.js +0 -16
  325. data/lib/picky-statistics/application/javascripts/d3/src/core/requote.js +0 -5
  326. data/lib/picky-statistics/application/javascripts/d3/src/core/rgb.js +0 -287
  327. data/lib/picky-statistics/application/javascripts/d3/src/core/round.js +0 -5
  328. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-append.js +0 -15
  329. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-attr.js +0 -44
  330. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-call.js +0 -13
  331. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-classed.js +0 -61
  332. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-data.js +0 -110
  333. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-each.js +0 -9
  334. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-empty.js +0 -3
  335. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-enter-select.js +0 -24
  336. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-enter.js +0 -11
  337. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-filter.js +0 -26
  338. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-html.js +0 -6
  339. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-insert.js +0 -20
  340. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-map.js +0 -5
  341. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-node.js +0 -9
  342. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-on.js +0 -34
  343. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-order.js +0 -11
  344. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-property.js +0 -23
  345. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-remove.js +0 -9
  346. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-root.js +0 -18
  347. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-select.js +0 -30
  348. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-selectAll.js +0 -24
  349. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-sort.js +0 -12
  350. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-style.js +0 -26
  351. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-text.js +0 -6
  352. data/lib/picky-statistics/application/javascripts/d3/src/core/selection-transition.js +0 -14
  353. data/lib/picky-statistics/application/javascripts/d3/src/core/selection.js +0 -25
  354. data/lib/picky-statistics/application/javascripts/d3/src/core/split.js +0 -21
  355. data/lib/picky-statistics/application/javascripts/d3/src/core/sum.js +0 -14
  356. data/lib/picky-statistics/application/javascripts/d3/src/core/text.js +0 -10
  357. data/lib/picky-statistics/application/javascripts/d3/src/core/this.js +0 -3
  358. data/lib/picky-statistics/application/javascripts/d3/src/core/timer.js +0 -104
  359. data/lib/picky-statistics/application/javascripts/d3/src/core/transform.js +0 -58
  360. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-attr.js +0 -23
  361. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-delay.js +0 -6
  362. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-duration.js +0 -6
  363. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-each.js +0 -9
  364. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-remove.js +0 -6
  365. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-select.js +0 -22
  366. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-selectAll.js +0 -22
  367. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-style.js +0 -14
  368. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-text.js +0 -7
  369. data/lib/picky-statistics/application/javascripts/d3/src/core/transition-transition.js +0 -3
  370. data/lib/picky-statistics/application/javascripts/d3/src/core/transition.js +0 -125
  371. data/lib/picky-statistics/application/javascripts/d3/src/core/transpose.js +0 -3
  372. data/lib/picky-statistics/application/javascripts/d3/src/core/uninterpolate.js +0 -9
  373. data/lib/picky-statistics/application/javascripts/d3/src/core/values.js +0 -5
  374. data/lib/picky-statistics/application/javascripts/d3/src/core/xhr.js +0 -10
  375. data/lib/picky-statistics/application/javascripts/d3/src/core/xml.js +0 -10
  376. data/lib/picky-statistics/application/javascripts/d3/src/core/zip.js +0 -13
  377. data/lib/picky-statistics/application/javascripts/d3/src/csv/csv.js +0 -5
  378. data/lib/picky-statistics/application/javascripts/d3/src/csv/format.js +0 -13
  379. data/lib/picky-statistics/application/javascripts/d3/src/csv/parse.js +0 -73
  380. data/lib/picky-statistics/application/javascripts/d3/src/end.js +0 -1
  381. data/lib/picky-statistics/application/javascripts/d3/src/externs.js +0 -6
  382. data/lib/picky-statistics/application/javascripts/d3/src/geo/albers.js +0 -126
  383. data/lib/picky-statistics/application/javascripts/d3/src/geo/azimuthal.js +0 -80
  384. data/lib/picky-statistics/application/javascripts/d3/src/geo/bonne.js +0 -70
  385. data/lib/picky-statistics/application/javascripts/d3/src/geo/bounds.js +0 -83
  386. data/lib/picky-statistics/application/javascripts/d3/src/geo/circle.js +0 -146
  387. data/lib/picky-statistics/application/javascripts/d3/src/geo/equirectangular.js +0 -36
  388. data/lib/picky-statistics/application/javascripts/d3/src/geo/geo.js +0 -3
  389. data/lib/picky-statistics/application/javascripts/d3/src/geo/greatArc.js +0 -80
  390. data/lib/picky-statistics/application/javascripts/d3/src/geo/greatCircle.js +0 -1
  391. data/lib/picky-statistics/application/javascripts/d3/src/geo/mercator.js +0 -36
  392. data/lib/picky-statistics/application/javascripts/d3/src/geo/path.js +0 -271
  393. data/lib/picky-statistics/application/javascripts/d3/src/geo/type.js +0 -5
  394. data/lib/picky-statistics/application/javascripts/d3/src/geom/contour.js +0 -78
  395. data/lib/picky-statistics/application/javascripts/d3/src/geom/delaunay.js +0 -31
  396. data/lib/picky-statistics/application/javascripts/d3/src/geom/geom.js +0 -1
  397. data/lib/picky-statistics/application/javascripts/d3/src/geom/hull.js +0 -98
  398. data/lib/picky-statistics/application/javascripts/d3/src/geom/polygon.js +0 -88
  399. data/lib/picky-statistics/application/javascripts/d3/src/geom/quadtree.js +0 -129
  400. data/lib/picky-statistics/application/javascripts/d3/src/geom/voronoi.js +0 -409
  401. data/lib/picky-statistics/application/javascripts/d3/src/layout/bundle.js +0 -57
  402. data/lib/picky-statistics/application/javascripts/d3/src/layout/chord.js +0 -153
  403. data/lib/picky-statistics/application/javascripts/d3/src/layout/cluster.js +0 -78
  404. data/lib/picky-statistics/application/javascripts/d3/src/layout/force.js +0 -342
  405. data/lib/picky-statistics/application/javascripts/d3/src/layout/hierarchy.js +0 -120
  406. data/lib/picky-statistics/application/javascripts/d3/src/layout/histogram.js +0 -102
  407. data/lib/picky-statistics/application/javascripts/d3/src/layout/layout.js +0 -1
  408. data/lib/picky-statistics/application/javascripts/d3/src/layout/pack.js +0 -203
  409. data/lib/picky-statistics/application/javascripts/d3/src/layout/partition.js +0 -48
  410. data/lib/picky-statistics/application/javascripts/d3/src/layout/pie.js +0 -95
  411. data/lib/picky-statistics/application/javascripts/d3/src/layout/stack.js +0 -237
  412. data/lib/picky-statistics/application/javascripts/d3/src/layout/tree.js +0 -237
  413. data/lib/picky-statistics/application/javascripts/d3/src/layout/treemap.js +0 -217
  414. data/lib/picky-statistics/application/javascripts/d3/src/package.js +0 -18
  415. data/lib/picky-statistics/application/javascripts/d3/src/scale/bilinear.js +0 -7
  416. data/lib/picky-statistics/application/javascripts/d3/src/scale/category.js +0 -54
  417. data/lib/picky-statistics/application/javascripts/d3/src/scale/linear.js +0 -111
  418. data/lib/picky-statistics/application/javascripts/d3/src/scale/log.js +0 -85
  419. data/lib/picky-statistics/application/javascripts/d3/src/scale/nice.js +0 -24
  420. data/lib/picky-statistics/application/javascripts/d3/src/scale/ordinal.js +0 -81
  421. data/lib/picky-statistics/application/javascripts/d3/src/scale/polylinear.js +0 -16
  422. data/lib/picky-statistics/application/javascripts/d3/src/scale/pow.js +0 -54
  423. data/lib/picky-statistics/application/javascripts/d3/src/scale/quantile.js +0 -43
  424. data/lib/picky-statistics/application/javascripts/d3/src/scale/quantize.js +0 -36
  425. data/lib/picky-statistics/application/javascripts/d3/src/scale/scale.js +0 -10
  426. data/lib/picky-statistics/application/javascripts/d3/src/scale/sqrt.js +0 -3
  427. data/lib/picky-statistics/application/javascripts/d3/src/start.js +0 -1
  428. data/lib/picky-statistics/application/javascripts/d3/src/svg/arc.js +0 -95
  429. data/lib/picky-statistics/application/javascripts/d3/src/svg/area-radial.js +0 -10
  430. data/lib/picky-statistics/application/javascripts/d3/src/svg/area.js +0 -89
  431. data/lib/picky-statistics/application/javascripts/d3/src/svg/axis.js +0 -200
  432. data/lib/picky-statistics/application/javascripts/d3/src/svg/brush.js +0 -334
  433. data/lib/picky-statistics/application/javascripts/d3/src/svg/chord.js +0 -99
  434. data/lib/picky-statistics/application/javascripts/d3/src/svg/diagonal-radial.js +0 -22
  435. data/lib/picky-statistics/application/javascripts/d3/src/svg/diagonal.js +0 -38
  436. data/lib/picky-statistics/application/javascripts/d3/src/svg/line-radial.js +0 -22
  437. data/lib/picky-statistics/application/javascripts/d3/src/svg/line.js +0 -415
  438. data/lib/picky-statistics/application/javascripts/d3/src/svg/mouse.js +0 -29
  439. data/lib/picky-statistics/application/javascripts/d3/src/svg/svg.js +0 -1
  440. data/lib/picky-statistics/application/javascripts/d3/src/svg/symbol.js +0 -98
  441. data/lib/picky-statistics/application/javascripts/d3/src/svg/touches.js +0 -9
  442. data/lib/picky-statistics/application/javascripts/d3/src/time/day.js +0 -7
  443. data/lib/picky-statistics/application/javascripts/d3/src/time/days.js +0 -11
  444. data/lib/picky-statistics/application/javascripts/d3/src/time/format-iso.js +0 -13
  445. data/lib/picky-statistics/application/javascripts/d3/src/time/format-utc.js +0 -53
  446. data/lib/picky-statistics/application/javascripts/d3/src/time/format.js +0 -327
  447. data/lib/picky-statistics/application/javascripts/d3/src/time/hour.js +0 -8
  448. data/lib/picky-statistics/application/javascripts/d3/src/time/hours.js +0 -11
  449. data/lib/picky-statistics/application/javascripts/d3/src/time/minute.js +0 -5
  450. data/lib/picky-statistics/application/javascripts/d3/src/time/minutes.js +0 -11
  451. data/lib/picky-statistics/application/javascripts/d3/src/time/month.js +0 -7
  452. data/lib/picky-statistics/application/javascripts/d3/src/time/months.js +0 -11
  453. data/lib/picky-statistics/application/javascripts/d3/src/time/range.js +0 -16
  454. data/lib/picky-statistics/application/javascripts/d3/src/time/scale-utc.js +0 -36
  455. data/lib/picky-statistics/application/javascripts/d3/src/time/scale.js +0 -118
  456. data/lib/picky-statistics/application/javascripts/d3/src/time/second.js +0 -5
  457. data/lib/picky-statistics/application/javascripts/d3/src/time/seconds.js +0 -7
  458. data/lib/picky-statistics/application/javascripts/d3/src/time/time.js +0 -3
  459. data/lib/picky-statistics/application/javascripts/d3/src/time/week.js +0 -9
  460. data/lib/picky-statistics/application/javascripts/d3/src/time/weeks.js +0 -11
  461. data/lib/picky-statistics/application/javascripts/d3/src/time/year.js +0 -7
  462. data/lib/picky-statistics/application/javascripts/d3/src/time/years.js +0 -11
  463. data/lib/picky-statistics/application/javascripts/d3/test/core/ascending-test.js +0 -47
  464. data/lib/picky-statistics/application/javascripts/d3/test/core/bisect-test.js +0 -103
  465. data/lib/picky-statistics/application/javascripts/d3/test/core/descending-test.js +0 -47
  466. data/lib/picky-statistics/application/javascripts/d3/test/core/dispatch-test.js +0 -129
  467. data/lib/picky-statistics/application/javascripts/d3/test/core/ease-test.js +0 -129
  468. data/lib/picky-statistics/application/javascripts/d3/test/core/entries-test.js +0 -43
  469. data/lib/picky-statistics/application/javascripts/d3/test/core/extent-test.js +0 -51
  470. data/lib/picky-statistics/application/javascripts/d3/test/core/first-test.js +0 -42
  471. data/lib/picky-statistics/application/javascripts/d3/test/core/format-test.js +0 -239
  472. data/lib/picky-statistics/application/javascripts/d3/test/core/formatPrefix-test.js +0 -108
  473. data/lib/picky-statistics/application/javascripts/d3/test/core/functor-test.js +0 -29
  474. data/lib/picky-statistics/application/javascripts/d3/test/core/hsl-test.js +0 -82
  475. data/lib/picky-statistics/application/javascripts/d3/test/core/html-test.js +0 -37
  476. data/lib/picky-statistics/application/javascripts/d3/test/core/interpolate-test.js +0 -209
  477. data/lib/picky-statistics/application/javascripts/d3/test/core/json-test.js +0 -37
  478. data/lib/picky-statistics/application/javascripts/d3/test/core/keys-test.js +0 -31
  479. data/lib/picky-statistics/application/javascripts/d3/test/core/last-test.js +0 -42
  480. data/lib/picky-statistics/application/javascripts/d3/test/core/max-test.js +0 -51
  481. data/lib/picky-statistics/application/javascripts/d3/test/core/mean-test.js +0 -43
  482. data/lib/picky-statistics/application/javascripts/d3/test/core/median-test.js +0 -43
  483. data/lib/picky-statistics/application/javascripts/d3/test/core/merge-test.js +0 -27
  484. data/lib/picky-statistics/application/javascripts/d3/test/core/min-test.js +0 -50
  485. data/lib/picky-statistics/application/javascripts/d3/test/core/nest-test.js +0 -236
  486. data/lib/picky-statistics/application/javascripts/d3/test/core/ns-test.js +0 -58
  487. data/lib/picky-statistics/application/javascripts/d3/test/core/permute-test.js +0 -53
  488. data/lib/picky-statistics/application/javascripts/d3/test/core/quantile-test.js +0 -50
  489. data/lib/picky-statistics/application/javascripts/d3/test/core/range-test.js +0 -93
  490. data/lib/picky-statistics/application/javascripts/d3/test/core/rebind-test.js +0 -52
  491. data/lib/picky-statistics/application/javascripts/d3/test/core/requote-test.js +0 -53
  492. data/lib/picky-statistics/application/javascripts/d3/test/core/rgb-test.js +0 -89
  493. data/lib/picky-statistics/application/javascripts/d3/test/core/round-test.js +0 -70
  494. data/lib/picky-statistics/application/javascripts/d3/test/core/select-test.js +0 -42
  495. data/lib/picky-statistics/application/javascripts/d3/test/core/selectAll-test.js +0 -46
  496. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-append-test.js +0 -123
  497. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-attr-test.js +0 -153
  498. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-call-test.js +0 -71
  499. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-classed-test.js +0 -219
  500. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-data-test.js +0 -168
  501. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-each-test.js +0 -83
  502. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-empty-test.js +0 -51
  503. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-filter-test.js +0 -70
  504. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-html-test.js +0 -121
  505. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-insert-test.js +0 -136
  506. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-map-test.js +0 -47
  507. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-node-test.js +0 -50
  508. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-on-test.js +0 -95
  509. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-order-test.js +0 -32
  510. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-property-test.js +0 -91
  511. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-remove-test.js +0 -39
  512. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-select-test.js +0 -125
  513. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-selectAll-test.js +0 -128
  514. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-sort-test.js +0 -59
  515. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-style-test.js +0 -100
  516. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-test.js +0 -35
  517. data/lib/picky-statistics/application/javascripts/d3/test/core/selection-text-test.js +0 -109
  518. data/lib/picky-statistics/application/javascripts/d3/test/core/split-test.js +0 -34
  519. data/lib/picky-statistics/application/javascripts/d3/test/core/sum-test.js +0 -47
  520. data/lib/picky-statistics/application/javascripts/d3/test/core/text-test.js +0 -48
  521. data/lib/picky-statistics/application/javascripts/d3/test/core/timer-test.js +0 -62
  522. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-attr.js +0 -54
  523. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-attrTween.js +0 -67
  524. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-call.js +0 -33
  525. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-delay.js +0 -41
  526. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-duration.js +0 -41
  527. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-each.js +0 -166
  528. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-id.js +0 -20
  529. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-remove.js +0 -46
  530. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-select.js +0 -63
  531. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-selectAll.js +0 -59
  532. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-style.js +0 -49
  533. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-styleTween.js +0 -73
  534. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-text.js +0 -30
  535. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-time.js +0 -36
  536. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-transition.js +0 -60
  537. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test-tween.js +0 -71
  538. data/lib/picky-statistics/application/javascripts/d3/test/core/transition-test.js +0 -66
  539. data/lib/picky-statistics/application/javascripts/d3/test/core/transpose-test.js +0 -32
  540. data/lib/picky-statistics/application/javascripts/d3/test/core/values-test.js +0 -35
  541. data/lib/picky-statistics/application/javascripts/d3/test/core/version-test.js +0 -18
  542. data/lib/picky-statistics/application/javascripts/d3/test/core/xhr-test.js +0 -56
  543. data/lib/picky-statistics/application/javascripts/d3/test/core/xml-test.js +0 -48
  544. data/lib/picky-statistics/application/javascripts/d3/test/core/zip-test.js +0 -32
  545. data/lib/picky-statistics/application/javascripts/d3/test/csv/csv-test.js +0 -38
  546. data/lib/picky-statistics/application/javascripts/d3/test/csv/format-test.js +0 -39
  547. data/lib/picky-statistics/application/javascripts/d3/test/csv/parse-test.js +0 -101
  548. data/lib/picky-statistics/application/javascripts/d3/test/env-assert.js +0 -96
  549. data/lib/picky-statistics/application/javascripts/d3/test/env-fragment.js +0 -8
  550. data/lib/picky-statistics/application/javascripts/d3/test/env-xhr.js +0 -56
  551. data/lib/picky-statistics/application/javascripts/d3/test/env.js +0 -13
  552. data/lib/picky-statistics/application/javascripts/d3/test/geo/albers-test.js +0 -57
  553. data/lib/picky-statistics/application/javascripts/d3/test/geo/azimuthal-test.js +0 -261
  554. data/lib/picky-statistics/application/javascripts/d3/test/geo/bonne-test.js +0 -116
  555. data/lib/picky-statistics/application/javascripts/d3/test/geo/equirectangular-test.js +0 -50
  556. data/lib/picky-statistics/application/javascripts/d3/test/geo/greatArc-test.js +0 -41
  557. data/lib/picky-statistics/application/javascripts/d3/test/geo/mercator-test.js +0 -57
  558. data/lib/picky-statistics/application/javascripts/d3/test/geo/path-test.js +0 -25
  559. data/lib/picky-statistics/application/javascripts/d3/test/geom/polygon-test.js +0 -57
  560. data/lib/picky-statistics/application/javascripts/d3/test/layout/cluster-test.js +0 -39
  561. data/lib/picky-statistics/application/javascripts/d3/test/layout/hierarchy-test.js +0 -30
  562. data/lib/picky-statistics/application/javascripts/d3/test/layout/histogram-test.js +0 -91
  563. data/lib/picky-statistics/application/javascripts/d3/test/layout/pack-test.js +0 -67
  564. data/lib/picky-statistics/application/javascripts/d3/test/layout/partition-test.js +0 -50
  565. data/lib/picky-statistics/application/javascripts/d3/test/layout/tree-test.js +0 -41
  566. data/lib/picky-statistics/application/javascripts/d3/test/layout/treemap-test.js +0 -190
  567. data/lib/picky-statistics/application/javascripts/d3/test/scale/category-test.js +0 -74
  568. data/lib/picky-statistics/application/javascripts/d3/test/scale/linear-test.js +0 -243
  569. data/lib/picky-statistics/application/javascripts/d3/test/scale/log-test.js +0 -266
  570. data/lib/picky-statistics/application/javascripts/d3/test/scale/ordinal-test.js +0 -207
  571. data/lib/picky-statistics/application/javascripts/d3/test/scale/pow-test.js +0 -263
  572. data/lib/picky-statistics/application/javascripts/d3/test/scale/quantile-test.js +0 -64
  573. data/lib/picky-statistics/application/javascripts/d3/test/scale/quantize-test.js +0 -69
  574. data/lib/picky-statistics/application/javascripts/d3/test/scale/sqrt-test.js +0 -256
  575. data/lib/picky-statistics/application/javascripts/d3/test/svg/arc-test.js +0 -147
  576. data/lib/picky-statistics/application/javascripts/d3/test/svg/area-radial-test.js +0 -200
  577. data/lib/picky-statistics/application/javascripts/d3/test/svg/area-test.js +0 -192
  578. data/lib/picky-statistics/application/javascripts/d3/test/svg/axis-test.js +0 -353
  579. data/lib/picky-statistics/application/javascripts/d3/test/svg/line-radial-test.js +0 -125
  580. data/lib/picky-statistics/application/javascripts/d3/test/svg/line-test.js +0 -189
  581. data/lib/picky-statistics/application/javascripts/d3/test/svg/symbol-test.js +0 -96
  582. data/lib/picky-statistics/application/javascripts/d3/test/time/day-test.js +0 -65
  583. data/lib/picky-statistics/application/javascripts/d3/test/time/days-test.js +0 -105
  584. data/lib/picky-statistics/application/javascripts/d3/test/time/format-test.js +0 -467
  585. data/lib/picky-statistics/application/javascripts/d3/test/time/hour-test.js +0 -103
  586. data/lib/picky-statistics/application/javascripts/d3/test/time/hours-test.js +0 -135
  587. data/lib/picky-statistics/application/javascripts/d3/test/time/minute-test.js +0 -43
  588. data/lib/picky-statistics/application/javascripts/d3/test/time/minutes-test.js +0 -101
  589. data/lib/picky-statistics/application/javascripts/d3/test/time/month-test.js +0 -53
  590. data/lib/picky-statistics/application/javascripts/d3/test/time/months-test.js +0 -105
  591. data/lib/picky-statistics/application/javascripts/d3/test/time/scale-test.js +0 -525
  592. data/lib/picky-statistics/application/javascripts/d3/test/time/second-test.js +0 -41
  593. data/lib/picky-statistics/application/javascripts/d3/test/time/seconds-test.js +0 -101
  594. data/lib/picky-statistics/application/javascripts/d3/test/time/week-test.js +0 -59
  595. data/lib/picky-statistics/application/javascripts/d3/test/time/weeks-test.js +0 -105
  596. data/lib/picky-statistics/application/javascripts/d3/test/time/year-test.js +0 -41
  597. data/lib/picky-statistics/application/javascripts/d3/test/time/years-test.js +0 -73
  598. data/lib/picky-statistics/application/javascripts/full_live.js +0 -60
  599. data/lib/picky-statistics/application/javascripts/graph.js +0 -83
  600. data/lib/picky-statistics/application/javascripts/jquery-1.4.4.min.js +0 -167
  601. data/lib/picky-statistics/application/javascripts/jquery.sparkline-1.6.min.js +0 -94
  602. data/lib/picky-statistics/application/javascripts/results.js +0 -86
  603. data/lib/picky-statistics/application/javascripts/rickshaw.js +0 -1
  604. data/lib/picky-statistics/statistics/count.rb +0 -70
  605. data/lib/picky-statistics/statistics/logfile_reader.rb +0 -143
  606. data/spec/lib/picky-statistics/statistics/count_spec.rb +0 -15
  607. data/spec/lib/picky-statistics/statistics/logfile_reader_spec.rb +0 -47
@@ -1,88 +0,0 @@
1
- // Note: requires coordinates to be counterclockwise and convex!
2
- d3.geom.polygon = function(coordinates) {
3
-
4
- coordinates.area = function() {
5
- var i = 0,
6
- n = coordinates.length,
7
- a = coordinates[n - 1][0] * coordinates[0][1],
8
- b = coordinates[n - 1][1] * coordinates[0][0];
9
- while (++i < n) {
10
- a += coordinates[i - 1][0] * coordinates[i][1];
11
- b += coordinates[i - 1][1] * coordinates[i][0];
12
- }
13
- return (b - a) * .5;
14
- };
15
-
16
- coordinates.centroid = function(k) {
17
- var i = -1,
18
- n = coordinates.length - 1,
19
- x = 0,
20
- y = 0,
21
- a,
22
- b,
23
- c;
24
- if (!arguments.length) k = -1 / (6 * coordinates.area());
25
- while (++i < n) {
26
- a = coordinates[i];
27
- b = coordinates[i + 1];
28
- c = a[0] * b[1] - b[0] * a[1];
29
- x += (a[0] + b[0]) * c;
30
- y += (a[1] + b[1]) * c;
31
- }
32
- return [x * k, y * k];
33
- };
34
-
35
- // The Sutherland-Hodgman clipping algorithm.
36
- coordinates.clip = function(subject) {
37
- var input,
38
- i = -1,
39
- n = coordinates.length,
40
- j,
41
- m,
42
- a = coordinates[n - 1],
43
- b,
44
- c,
45
- d;
46
- while (++i < n) {
47
- input = subject.slice();
48
- subject.length = 0;
49
- b = coordinates[i];
50
- c = input[(m = input.length) - 1];
51
- j = -1;
52
- while (++j < m) {
53
- d = input[j];
54
- if (d3_geom_polygonInside(d, a, b)) {
55
- if (!d3_geom_polygonInside(c, a, b)) {
56
- subject.push(d3_geom_polygonIntersect(c, d, a, b));
57
- }
58
- subject.push(d);
59
- } else if (d3_geom_polygonInside(c, a, b)) {
60
- subject.push(d3_geom_polygonIntersect(c, d, a, b));
61
- }
62
- c = d;
63
- }
64
- a = b;
65
- }
66
- return subject;
67
- };
68
-
69
- return coordinates;
70
- };
71
-
72
- function d3_geom_polygonInside(p, a, b) {
73
- return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
74
- }
75
-
76
- // Intersect two infinite lines cd and ab.
77
- function d3_geom_polygonIntersect(c, d, a, b) {
78
- var x1 = c[0], x2 = d[0], x3 = a[0], x4 = b[0],
79
- y1 = c[1], y2 = d[1], y3 = a[1], y4 = b[1],
80
- x13 = x1 - x3,
81
- x21 = x2 - x1,
82
- x43 = x4 - x3,
83
- y13 = y1 - y3,
84
- y21 = y2 - y1,
85
- y43 = y4 - y3,
86
- ua = (x43 * y13 - y43 * x13) / (y43 * x21 - x43 * y21);
87
- return [x1 + ua * x21, y1 + ua * y21];
88
- }
@@ -1,129 +0,0 @@
1
- // Constructs a new quadtree for the specified array of points. A quadtree is a
2
- // two-dimensional recursive spatial subdivision. This implementation uses
3
- // square partitions, dividing each square into four equally-sized squares. Each
4
- // point exists in a unique node; if multiple points are in the same position,
5
- // some points may be stored on internal nodes rather than leaf nodes. Quadtrees
6
- // can be used to accelerate various spatial operations, such as the Barnes-Hut
7
- // approximation for computing n-body forces, or collision detection.
8
- d3.geom.quadtree = function(points, x1, y1, x2, y2) {
9
- var p,
10
- i = -1,
11
- n = points.length;
12
-
13
- // Type conversion for deprecated API.
14
- if (n && isNaN(points[0].x)) points = points.map(d3_geom_quadtreePoint);
15
-
16
- // Allow bounds to be specified explicitly.
17
- if (arguments.length < 5) {
18
- if (arguments.length === 3) {
19
- y2 = x2 = y1;
20
- y1 = x1;
21
- } else {
22
- x1 = y1 = Infinity;
23
- x2 = y2 = -Infinity;
24
-
25
- // Compute bounds.
26
- while (++i < n) {
27
- p = points[i];
28
- if (p.x < x1) x1 = p.x;
29
- if (p.y < y1) y1 = p.y;
30
- if (p.x > x2) x2 = p.x;
31
- if (p.y > y2) y2 = p.y;
32
- }
33
-
34
- // Squarify the bounds.
35
- var dx = x2 - x1,
36
- dy = y2 - y1;
37
- if (dx > dy) y2 = y1 + dx;
38
- else x2 = x1 + dy;
39
- }
40
- }
41
-
42
- // Recursively inserts the specified point p at the node n or one of its
43
- // descendants. The bounds are defined by [x1, x2] and [y1, y2].
44
- function insert(n, p, x1, y1, x2, y2) {
45
- if (isNaN(p.x) || isNaN(p.y)) return; // ignore invalid points
46
- if (n.leaf) {
47
- var v = n.point;
48
- if (v) {
49
- // If the point at this leaf node is at the same position as the new
50
- // point we are adding, we leave the point associated with the
51
- // internal node while adding the new point to a child node. This
52
- // avoids infinite recursion.
53
- if ((Math.abs(v.x - p.x) + Math.abs(v.y - p.y)) < .01) {
54
- insertChild(n, p, x1, y1, x2, y2);
55
- } else {
56
- n.point = null;
57
- insertChild(n, v, x1, y1, x2, y2);
58
- insertChild(n, p, x1, y1, x2, y2);
59
- }
60
- } else {
61
- n.point = p;
62
- }
63
- } else {
64
- insertChild(n, p, x1, y1, x2, y2);
65
- }
66
- }
67
-
68
- // Recursively inserts the specified point p into a descendant of node n. The
69
- // bounds are defined by [x1, x2] and [y1, y2].
70
- function insertChild(n, p, x1, y1, x2, y2) {
71
- // Compute the split point, and the quadrant in which to insert p.
72
- var sx = (x1 + x2) * .5,
73
- sy = (y1 + y2) * .5,
74
- right = p.x >= sx,
75
- bottom = p.y >= sy,
76
- i = (bottom << 1) + right;
77
-
78
- // Recursively insert into the child node.
79
- n.leaf = false;
80
- n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
81
-
82
- // Update the bounds as we recurse.
83
- if (right) x1 = sx; else x2 = sx;
84
- if (bottom) y1 = sy; else y2 = sy;
85
- insert(n, p, x1, y1, x2, y2);
86
- }
87
-
88
- // Create the root node.
89
- var root = d3_geom_quadtreeNode();
90
-
91
- root.add = function(p) {
92
- insert(root, p, x1, y1, x2, y2);
93
- };
94
-
95
- root.visit = function(f) {
96
- d3_geom_quadtreeVisit(f, root, x1, y1, x2, y2);
97
- };
98
-
99
- // Insert all points.
100
- points.forEach(root.add);
101
- return root;
102
- };
103
-
104
- function d3_geom_quadtreeNode() {
105
- return {
106
- leaf: true,
107
- nodes: [],
108
- point: null
109
- };
110
- }
111
-
112
- function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
113
- if (!f(node, x1, y1, x2, y2)) {
114
- var sx = (x1 + x2) * .5,
115
- sy = (y1 + y2) * .5,
116
- children = node.nodes;
117
- if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
118
- if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
119
- if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
120
- if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
121
- }
122
- }
123
-
124
- function d3_geom_quadtreePoint(p) {
125
- return {
126
- x: p[0],
127
- y: p[1]
128
- };
129
- }
@@ -1,409 +0,0 @@
1
- // Adapted from Nicolas Garcia Belmonte's JIT implementation:
2
- // http://blog.thejit.org/2010/02/12/voronoi-tessellation/
3
- // http://blog.thejit.org/assets/voronoijs/voronoi.js
4
- // See lib/jit/LICENSE for details.
5
-
6
- // Notes:
7
- //
8
- // This implementation does not clip the returned polygons, so if you want to
9
- // clip them to a particular shape you will need to do that either in SVG or by
10
- // post-processing with d3.geom.polygon's clip method.
11
- //
12
- // If any vertices are coincident or have NaN positions, the behavior of this
13
- // method is undefined. Most likely invalid polygons will be returned. You
14
- // should filter invalid points, and consolidate coincident points, before
15
- // computing the tessellation.
16
-
17
- /**
18
- * @param vertices [[x1, y1], [x2, y2], …]
19
- * @returns polygons [[[x1, y1], [x2, y2], …], …]
20
- */
21
- d3.geom.voronoi = function(vertices) {
22
- var polygons = vertices.map(function() { return []; });
23
-
24
- d3_voronoi_tessellate(vertices, function(e) {
25
- var s1,
26
- s2,
27
- x1,
28
- x2,
29
- y1,
30
- y2;
31
- if (e.a === 1 && e.b >= 0) {
32
- s1 = e.ep.r;
33
- s2 = e.ep.l;
34
- } else {
35
- s1 = e.ep.l;
36
- s2 = e.ep.r;
37
- }
38
- if (e.a === 1) {
39
- y1 = s1 ? s1.y : -1e6;
40
- x1 = e.c - e.b * y1;
41
- y2 = s2 ? s2.y : 1e6;
42
- x2 = e.c - e.b * y2;
43
- } else {
44
- x1 = s1 ? s1.x : -1e6;
45
- y1 = e.c - e.a * x1;
46
- x2 = s2 ? s2.x : 1e6;
47
- y2 = e.c - e.a * x2;
48
- }
49
- var v1 = [x1, y1],
50
- v2 = [x2, y2];
51
- polygons[e.region.l.index].push(v1, v2);
52
- polygons[e.region.r.index].push(v1, v2);
53
- });
54
-
55
- // Reconnect the polygon segments into counterclockwise loops.
56
- return polygons.map(function(polygon, i) {
57
- var cx = vertices[i][0],
58
- cy = vertices[i][1];
59
- polygon.forEach(function(v) {
60
- v.angle = Math.atan2(v[0] - cx, v[1] - cy);
61
- });
62
- return polygon.sort(function(a, b) {
63
- return a.angle - b.angle;
64
- }).filter(function(d, i) {
65
- return !i || (d.angle - polygon[i - 1].angle > 1e-10);
66
- });
67
- });
68
- };
69
-
70
- var d3_voronoi_opposite = {"l": "r", "r": "l"};
71
-
72
- function d3_voronoi_tessellate(vertices, callback) {
73
-
74
- var Sites = {
75
- list: vertices
76
- .map(function(v, i) {
77
- return {
78
- index: i,
79
- x: v[0],
80
- y: v[1]
81
- };
82
- })
83
- .sort(function(a, b) {
84
- return a.y < b.y ? -1
85
- : a.y > b.y ? 1
86
- : a.x < b.x ? -1
87
- : a.x > b.x ? 1
88
- : 0;
89
- }),
90
- bottomSite: null
91
- };
92
-
93
- var EdgeList = {
94
- list: [],
95
- leftEnd: null,
96
- rightEnd: null,
97
-
98
- init: function() {
99
- EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l");
100
- EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l");
101
- EdgeList.leftEnd.r = EdgeList.rightEnd;
102
- EdgeList.rightEnd.l = EdgeList.leftEnd;
103
- EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd);
104
- },
105
-
106
- createHalfEdge: function(edge, side) {
107
- return {
108
- edge: edge,
109
- side: side,
110
- vertex: null,
111
- "l": null,
112
- "r": null
113
- };
114
- },
115
-
116
- insert: function(lb, he) {
117
- he.l = lb;
118
- he.r = lb.r;
119
- lb.r.l = he;
120
- lb.r = he;
121
- },
122
-
123
- leftBound: function(p) {
124
- var he = EdgeList.leftEnd;
125
- do {
126
- he = he.r;
127
- } while (he != EdgeList.rightEnd && Geom.rightOf(he, p));
128
- he = he.l;
129
- return he;
130
- },
131
-
132
- del: function(he) {
133
- he.l.r = he.r;
134
- he.r.l = he.l;
135
- he.edge = null;
136
- },
137
-
138
- right: function(he) {
139
- return he.r;
140
- },
141
-
142
- left: function(he) {
143
- return he.l;
144
- },
145
-
146
- leftRegion: function(he) {
147
- return he.edge == null
148
- ? Sites.bottomSite
149
- : he.edge.region[he.side];
150
- },
151
-
152
- rightRegion: function(he) {
153
- return he.edge == null
154
- ? Sites.bottomSite
155
- : he.edge.region[d3_voronoi_opposite[he.side]];
156
- }
157
- };
158
-
159
- var Geom = {
160
-
161
- bisect: function(s1, s2) {
162
- var newEdge = {
163
- region: {"l": s1, "r": s2},
164
- ep: {"l": null, "r": null}
165
- };
166
-
167
- var dx = s2.x - s1.x,
168
- dy = s2.y - s1.y,
169
- adx = dx > 0 ? dx : -dx,
170
- ady = dy > 0 ? dy : -dy;
171
-
172
- newEdge.c = s1.x * dx + s1.y * dy
173
- + (dx * dx + dy * dy) * .5;
174
-
175
- if (adx > ady) {
176
- newEdge.a = 1;
177
- newEdge.b = dy / dx;
178
- newEdge.c /= dx;
179
- } else {
180
- newEdge.b = 1;
181
- newEdge.a = dx / dy;
182
- newEdge.c /= dy;
183
- }
184
-
185
- return newEdge;
186
- },
187
-
188
- intersect: function(el1, el2) {
189
- var e1 = el1.edge,
190
- e2 = el2.edge;
191
- if (!e1 || !e2 || (e1.region.r == e2.region.r)) {
192
- return null;
193
- }
194
- var d = (e1.a * e2.b) - (e1.b * e2.a);
195
- if (Math.abs(d) < 1e-10) {
196
- return null;
197
- }
198
- var xint = (e1.c * e2.b - e2.c * e1.b) / d,
199
- yint = (e2.c * e1.a - e1.c * e2.a) / d,
200
- e1r = e1.region.r,
201
- e2r = e2.region.r,
202
- el,
203
- e;
204
- if ((e1r.y < e2r.y) ||
205
- (e1r.y == e2r.y && e1r.x < e2r.x)) {
206
- el = el1;
207
- e = e1;
208
- } else {
209
- el = el2;
210
- e = e2;
211
- }
212
- var rightOfSite = (xint >= e.region.r.x);
213
- if ((rightOfSite && (el.side === "l")) ||
214
- (!rightOfSite && (el.side === "r"))) {
215
- return null;
216
- }
217
- return {
218
- x: xint,
219
- y: yint
220
- };
221
- },
222
-
223
- rightOf: function(he, p) {
224
- var e = he.edge,
225
- topsite = e.region.r,
226
- rightOfSite = (p.x > topsite.x);
227
-
228
- if (rightOfSite && (he.side === "l")) {
229
- return 1;
230
- }
231
- if (!rightOfSite && (he.side === "r")) {
232
- return 0;
233
- }
234
- if (e.a === 1) {
235
- var dyp = p.y - topsite.y,
236
- dxp = p.x - topsite.x,
237
- fast = 0,
238
- above = 0;
239
-
240
- if ((!rightOfSite && (e.b < 0)) ||
241
- (rightOfSite && (e.b >= 0))) {
242
- above = fast = (dyp >= e.b * dxp);
243
- } else {
244
- above = ((p.x + p.y * e.b) > e.c);
245
- if (e.b < 0) {
246
- above = !above;
247
- }
248
- if (!above) {
249
- fast = 1;
250
- }
251
- }
252
- if (!fast) {
253
- var dxs = topsite.x - e.region.l.x;
254
- above = (e.b * (dxp * dxp - dyp * dyp)) <
255
- (dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b));
256
-
257
- if (e.b < 0) {
258
- above = !above;
259
- }
260
- }
261
- } else /* e.b == 1 */ {
262
- var yl = e.c - e.a * p.x,
263
- t1 = p.y - yl,
264
- t2 = p.x - topsite.x,
265
- t3 = yl - topsite.y;
266
-
267
- above = (t1 * t1) > (t2 * t2 + t3 * t3);
268
- }
269
- return he.side === "l" ? above : !above;
270
- },
271
-
272
- endPoint: function(edge, side, site) {
273
- edge.ep[side] = site;
274
- if (!edge.ep[d3_voronoi_opposite[side]]) return;
275
- callback(edge);
276
- },
277
-
278
- distance: function(s, t) {
279
- var dx = s.x - t.x,
280
- dy = s.y - t.y;
281
- return Math.sqrt(dx * dx + dy * dy);
282
- }
283
- };
284
-
285
- var EventQueue = {
286
- list: [],
287
-
288
- insert: function(he, site, offset) {
289
- he.vertex = site;
290
- he.ystar = site.y + offset;
291
- for (var i=0, list=EventQueue.list, l=list.length; i<l; i++) {
292
- var next = list[i];
293
- if (he.ystar > next.ystar ||
294
- (he.ystar == next.ystar &&
295
- site.x > next.vertex.x)) {
296
- continue;
297
- } else {
298
- break;
299
- }
300
- }
301
- list.splice(i, 0, he);
302
- },
303
-
304
- del: function(he) {
305
- for (var i=0, ls=EventQueue.list, l=ls.length; i<l && (ls[i] != he); ++i) {}
306
- ls.splice(i, 1);
307
- },
308
-
309
- empty: function() { return EventQueue.list.length === 0; },
310
-
311
- nextEvent: function(he) {
312
- for (var i=0, ls=EventQueue.list, l=ls.length; i<l; ++i) {
313
- if (ls[i] == he) return ls[i+1];
314
- }
315
- return null;
316
- },
317
-
318
- min: function() {
319
- var elem = EventQueue.list[0];
320
- return {
321
- x: elem.vertex.x,
322
- y: elem.ystar
323
- };
324
- },
325
-
326
- extractMin: function() {
327
- return EventQueue.list.shift();
328
- }
329
- };
330
-
331
- EdgeList.init();
332
- Sites.bottomSite = Sites.list.shift();
333
-
334
- var newSite = Sites.list.shift(), newIntStar;
335
- var lbnd, rbnd, llbnd, rrbnd, bisector;
336
- var bot, top, temp, p, v;
337
- var e, pm;
338
-
339
- while (true) {
340
- if (!EventQueue.empty()) {
341
- newIntStar = EventQueue.min();
342
- }
343
- if (newSite && (EventQueue.empty()
344
- || newSite.y < newIntStar.y
345
- || (newSite.y == newIntStar.y
346
- && newSite.x < newIntStar.x))) { //new site is smallest
347
- lbnd = EdgeList.leftBound(newSite);
348
- rbnd = EdgeList.right(lbnd);
349
- bot = EdgeList.rightRegion(lbnd);
350
- e = Geom.bisect(bot, newSite);
351
- bisector = EdgeList.createHalfEdge(e, "l");
352
- EdgeList.insert(lbnd, bisector);
353
- p = Geom.intersect(lbnd, bisector);
354
- if (p) {
355
- EventQueue.del(lbnd);
356
- EventQueue.insert(lbnd, p, Geom.distance(p, newSite));
357
- }
358
- lbnd = bisector;
359
- bisector = EdgeList.createHalfEdge(e, "r");
360
- EdgeList.insert(lbnd, bisector);
361
- p = Geom.intersect(bisector, rbnd);
362
- if (p) {
363
- EventQueue.insert(bisector, p, Geom.distance(p, newSite));
364
- }
365
- newSite = Sites.list.shift();
366
- } else if (!EventQueue.empty()) { //intersection is smallest
367
- lbnd = EventQueue.extractMin();
368
- llbnd = EdgeList.left(lbnd);
369
- rbnd = EdgeList.right(lbnd);
370
- rrbnd = EdgeList.right(rbnd);
371
- bot = EdgeList.leftRegion(lbnd);
372
- top = EdgeList.rightRegion(rbnd);
373
- v = lbnd.vertex;
374
- Geom.endPoint(lbnd.edge, lbnd.side, v);
375
- Geom.endPoint(rbnd.edge, rbnd.side, v);
376
- EdgeList.del(lbnd);
377
- EventQueue.del(rbnd);
378
- EdgeList.del(rbnd);
379
- pm = "l";
380
- if (bot.y > top.y) {
381
- temp = bot;
382
- bot = top;
383
- top = temp;
384
- pm = "r";
385
- }
386
- e = Geom.bisect(bot, top);
387
- bisector = EdgeList.createHalfEdge(e, pm);
388
- EdgeList.insert(llbnd, bisector);
389
- Geom.endPoint(e, d3_voronoi_opposite[pm], v);
390
- p = Geom.intersect(llbnd, bisector);
391
- if (p) {
392
- EventQueue.del(llbnd);
393
- EventQueue.insert(llbnd, p, Geom.distance(p, bot));
394
- }
395
- p = Geom.intersect(bisector, rrbnd);
396
- if (p) {
397
- EventQueue.insert(bisector, p, Geom.distance(p, bot));
398
- }
399
- } else {
400
- break;
401
- }
402
- }//end while
403
-
404
- for (lbnd = EdgeList.right(EdgeList.leftEnd);
405
- lbnd != EdgeList.rightEnd;
406
- lbnd = EdgeList.right(lbnd)) {
407
- callback(lbnd.edge);
408
- }
409
- }