hyper-d3 1.0.0.lap23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +313 -0
  5. data/README.md +118 -0
  6. data/Rakefile +31 -0
  7. data/hyper-d3.gemspec +27 -0
  8. data/lib/d3.rb +68 -0
  9. data/lib/d3/arc.rb +29 -0
  10. data/lib/d3/area.rb +53 -0
  11. data/lib/d3/axis.rb +79 -0
  12. data/lib/d3/band_scale.rb +30 -0
  13. data/lib/d3/collections.rb +9 -0
  14. data/lib/d3/color.rb +76 -0
  15. data/lib/d3/color_schemes.rb +34 -0
  16. data/lib/d3/continuous_scale.rb +60 -0
  17. data/lib/d3/creator.rb +11 -0
  18. data/lib/d3/curve.rb +74 -0
  19. data/lib/d3/dsv.rb +103 -0
  20. data/lib/d3/ease.rb +319 -0
  21. data/lib/d3/format.rb +95 -0
  22. data/lib/d3/histograms.rb +46 -0
  23. data/lib/d3/interpolate.rb +125 -0
  24. data/lib/d3/line.rb +27 -0
  25. data/lib/d3/map.rb +48 -0
  26. data/lib/d3/misc.rb +15 -0
  27. data/lib/d3/native.rb +112 -0
  28. data/lib/d3/nest.rb +100 -0
  29. data/lib/d3/ordinal_scale.rb +39 -0
  30. data/lib/d3/path.rb +24 -0
  31. data/lib/d3/pie.rb +25 -0
  32. data/lib/d3/point_scale.rb +27 -0
  33. data/lib/d3/polygon.rb +18 -0
  34. data/lib/d3/quadtree.rb +89 -0
  35. data/lib/d3/quantile_scale.rb +19 -0
  36. data/lib/d3/quantize_scale.rb +20 -0
  37. data/lib/d3/radial_area.rb +55 -0
  38. data/lib/d3/radial_line.rb +27 -0
  39. data/lib/d3/random.rb +14 -0
  40. data/lib/d3/search.rb +30 -0
  41. data/lib/d3/selection.rb +151 -0
  42. data/lib/d3/sequential_scale.rb +31 -0
  43. data/lib/d3/set.rb +30 -0
  44. data/lib/d3/source/d3-drag.js +234 -0
  45. data/lib/d3/source/d3-scale-chromatic.js +484 -0
  46. data/lib/d3/source/d3.js +17178 -0
  47. data/lib/d3/stack.rb +13 -0
  48. data/lib/d3/statistics.rb +81 -0
  49. data/lib/d3/symbol.rb +70 -0
  50. data/lib/d3/threshold_scale.rb +22 -0
  51. data/lib/d3/time_format.rb +47 -0
  52. data/lib/d3/time_interval.rb +85 -0
  53. data/lib/d3/transformations.rb +16 -0
  54. data/lib/hyper-d3.rb +17 -0
  55. data/lib/hyperloop/d3/component.rb +12 -0
  56. data/lib/hyperloop/d3/mixin.rb +59 -0
  57. data/lib/hyperloop/d3/version.rb +5 -0
  58. data/spec/arc_spec.rb +80 -0
  59. data/spec/area_spec.rb +98 -0
  60. data/spec/axis_spec.rb +174 -0
  61. data/spec/band_scale_spec.rb +73 -0
  62. data/spec/color_spec.rb +74 -0
  63. data/spec/continuous_scale_spec.rb +217 -0
  64. data/spec/coverage_spec.rb +16 -0
  65. data/spec/creator_spec.rb +15 -0
  66. data/spec/curve_spec.rb +206 -0
  67. data/spec/dsv_spec.rb +194 -0
  68. data/spec/ease_spec.rb +370 -0
  69. data/spec/format_spec.rb +87 -0
  70. data/spec/histograms_spec.rb +61 -0
  71. data/spec/html/index.html.erb +11 -0
  72. data/spec/interpolate_spec.rb +152 -0
  73. data/spec/line_spec.rb +54 -0
  74. data/spec/map_spec.rb +80 -0
  75. data/spec/misc_spec.rb +21 -0
  76. data/spec/nest_spec.rb +89 -0
  77. data/spec/objects_spec.rb +22 -0
  78. data/spec/ordinal_scale_spec.rb +59 -0
  79. data/spec/path_spec.rb +65 -0
  80. data/spec/pie_spec.rb +114 -0
  81. data/spec/point_scale_spec.rb +58 -0
  82. data/spec/polygon_spec.rb +51 -0
  83. data/spec/quadtree_spec.rb +128 -0
  84. data/spec/quantile_scale_spec.rb +24 -0
  85. data/spec/quantize_scale_spec.rb +40 -0
  86. data/spec/radial_area_spec.rb +123 -0
  87. data/spec/radial_line_spec.rb +50 -0
  88. data/spec/random_spec.rb +34 -0
  89. data/spec/search_spec.rb +69 -0
  90. data/spec/selection_data_spec.rb +64 -0
  91. data/spec/selection_manipulation_spec.rb +166 -0
  92. data/spec/selection_spec.rb +187 -0
  93. data/spec/sequential_scale_spec.rb +90 -0
  94. data/spec/set_spec.rb +57 -0
  95. data/spec/spec_helper.rb +1 -0
  96. data/spec/stack_spec.rb +5 -0
  97. data/spec/statistics_spec.rb +65 -0
  98. data/spec/symbol_spec.rb +116 -0
  99. data/spec/test_app/.gitignore +23 -0
  100. data/spec/test_app/Gemfile +7 -0
  101. data/spec/test_app/Gemfile.lock +206 -0
  102. data/spec/test_app/README.md +9 -0
  103. data/spec/test_app/Rakefile +6 -0
  104. data/spec/test_app/app/assets/config/manifest.js +3 -0
  105. data/spec/test_app/app/assets/images/.keep +0 -0
  106. data/spec/test_app/app/assets/javascripts/application.js +13 -0
  107. data/spec/test_app/app/assets/javascripts/cable.js +13 -0
  108. data/spec/test_app/app/assets/javascripts/channels/.keep +0 -0
  109. data/spec/test_app/app/assets/javascripts/data/elections_2016.rb +10 -0
  110. data/spec/test_app/app/assets/javascripts/data/harry_potter.rb +19 -0
  111. data/spec/test_app/app/assets/javascripts/data/iphones.rb +29 -0
  112. data/spec/test_app/app/assets/javascripts/data/london_population.rb +26 -0
  113. data/spec/test_app/app/assets/javascripts/data/man_vs_horse.rb +55 -0
  114. data/spec/test_app/app/assets/javascripts/data/mtg_modern_colors.rb +96 -0
  115. data/spec/test_app/app/assets/javascripts/data/mtg_modern_creatures.rb +116 -0
  116. data/spec/test_app/app/assets/javascripts/data/olympics_2016_medals.rb +100 -0
  117. data/spec/test_app/app/assets/javascripts/data/paradox.rb +60 -0
  118. data/spec/test_app/app/assets/javascripts/data/polish_pms.rb +28 -0
  119. data/spec/test_app/app/assets/javascripts/data/star_trek_voyager.rb +183 -0
  120. data/spec/test_app/app/assets/javascripts/data/weather_in_london.rb +381 -0
  121. data/spec/test_app/app/assets/javascripts/elections_2016.rb +27 -0
  122. data/spec/test_app/app/assets/javascripts/harry_potter.rb +42 -0
  123. data/spec/test_app/app/assets/javascripts/iphones.rb +54 -0
  124. data/spec/test_app/app/assets/javascripts/london_population.rb +53 -0
  125. data/spec/test_app/app/assets/javascripts/london_population_area.rb +49 -0
  126. data/spec/test_app/app/assets/javascripts/man_vs_horse.rb +60 -0
  127. data/spec/test_app/app/assets/javascripts/mtg_modern_colors.rb +56 -0
  128. data/spec/test_app/app/assets/javascripts/mtg_modern_creatures.rb +70 -0
  129. data/spec/test_app/app/assets/javascripts/olympics_2016_medals.rb +62 -0
  130. data/spec/test_app/app/assets/javascripts/paradox.rb +64 -0
  131. data/spec/test_app/app/assets/javascripts/polish_pms.rb +60 -0
  132. data/spec/test_app/app/assets/javascripts/star_trek_voyager.rb +44 -0
  133. data/spec/test_app/app/assets/javascripts/weather_in_london.rb +69 -0
  134. data/spec/test_app/app/assets/stylesheets/application.css +15 -0
  135. data/spec/test_app/app/channels/application_cable/channel.rb +4 -0
  136. data/spec/test_app/app/channels/application_cable/connection.rb +4 -0
  137. data/spec/test_app/app/controllers/application_controller.rb +27 -0
  138. data/spec/test_app/app/controllers/concerns/.keep +0 -0
  139. data/spec/test_app/app/helpers/application_helper.rb +2 -0
  140. data/spec/test_app/app/jobs/application_job.rb +2 -0
  141. data/spec/test_app/app/mailers/application_mailer.rb +4 -0
  142. data/spec/test_app/app/models/application_record.rb +3 -0
  143. data/spec/test_app/app/models/concerns/.keep +0 -0
  144. data/spec/test_app/app/views/application/index.erb +18 -0
  145. data/spec/test_app/app/views/application/visualization.erb +28 -0
  146. data/spec/test_app/app/views/layouts/application.html.erb +13 -0
  147. data/spec/test_app/bin/bundle +3 -0
  148. data/spec/test_app/bin/rails +4 -0
  149. data/spec/test_app/bin/rake +4 -0
  150. data/spec/test_app/bin/setup +38 -0
  151. data/spec/test_app/bin/update +29 -0
  152. data/spec/test_app/bin/yarn +11 -0
  153. data/spec/test_app/config.ru +5 -0
  154. data/spec/test_app/config/application.rb +18 -0
  155. data/spec/test_app/config/boot.rb +3 -0
  156. data/spec/test_app/config/cable.yml +10 -0
  157. data/spec/test_app/config/database.yml +25 -0
  158. data/spec/test_app/config/environment.rb +5 -0
  159. data/spec/test_app/config/environments/development.rb +54 -0
  160. data/spec/test_app/config/environments/production.rb +91 -0
  161. data/spec/test_app/config/environments/test.rb +42 -0
  162. data/spec/test_app/config/initializers/application_controller_renderer.rb +8 -0
  163. data/spec/test_app/config/initializers/assets.rb +14 -0
  164. data/spec/test_app/config/initializers/backtrace_silencers.rb +7 -0
  165. data/spec/test_app/config/initializers/cookies_serializer.rb +5 -0
  166. data/spec/test_app/config/initializers/filter_parameter_logging.rb +4 -0
  167. data/spec/test_app/config/initializers/inflections.rb +16 -0
  168. data/spec/test_app/config/initializers/mime_types.rb +4 -0
  169. data/spec/test_app/config/initializers/wrap_parameters.rb +14 -0
  170. data/spec/test_app/config/locales/en.yml +33 -0
  171. data/spec/test_app/config/puma.rb +56 -0
  172. data/spec/test_app/config/routes.rb +5 -0
  173. data/spec/test_app/config/secrets.yml +32 -0
  174. data/spec/test_app/config/spring.rb +6 -0
  175. data/spec/test_app/db/seeds.rb +7 -0
  176. data/spec/test_app/lib/assets/.keep +0 -0
  177. data/spec/test_app/lib/tasks/.keep +0 -0
  178. data/spec/test_app/log/.keep +0 -0
  179. data/spec/test_app/package.json +5 -0
  180. data/spec/test_app/public/404.html +67 -0
  181. data/spec/test_app/public/422.html +67 -0
  182. data/spec/test_app/public/500.html +66 -0
  183. data/spec/test_app/public/apple-touch-icon-precomposed.png +0 -0
  184. data/spec/test_app/public/apple-touch-icon.png +0 -0
  185. data/spec/test_app/public/favicon.ico +0 -0
  186. data/spec/test_app/public/robots.txt +1 -0
  187. data/spec/test_app/test/application_system_test_case.rb +5 -0
  188. data/spec/test_app/test/controllers/.keep +0 -0
  189. data/spec/test_app/test/fixtures/.keep +0 -0
  190. data/spec/test_app/test/fixtures/files/.keep +0 -0
  191. data/spec/test_app/test/helpers/.keep +0 -0
  192. data/spec/test_app/test/integration/.keep +0 -0
  193. data/spec/test_app/test/mailers/.keep +0 -0
  194. data/spec/test_app/test/models/.keep +0 -0
  195. data/spec/test_app/test/system/.keep +0 -0
  196. data/spec/test_app/test/test_helper.rb +10 -0
  197. data/spec/test_app/tmp/.keep +0 -0
  198. data/spec/test_app/vendor/.keep +0 -0
  199. data/spec/threshold_scale_spec.rb +28 -0
  200. data/spec/time_format_spec.rb +100 -0
  201. data/spec/time_interval_spec.rb +314 -0
  202. data/spec/transformations_spec.rb +51 -0
  203. data/startrekvoyager.png +0 -0
  204. metadata +529 -0
@@ -0,0 +1,314 @@
1
+ # This test will fail in any non-UTC timezone
2
+ require "time"
3
+
4
+ describe "d3 - time interval" do
5
+ # Opal 0.10 uses shitty native regexp, so no \A\z
6
+ def t(str)
7
+ raise "Bad time format #{str.inspect}" unless str =~ /^(\d\d\d\d-\d\d-\d\d) (\d\d:\d\d:\d\d(?:\.\d+)?)$/
8
+ s = "#{$1}T#{$2}"
9
+ Time.parse(s)
10
+ end
11
+
12
+ let(:a) { Time.at(1481073422.123678) } # 2016-12-07 01:17:02.123678
13
+ let(:b) { Time.at(1482781833.345345) } # 2016-12-26 19:50:33.345345
14
+ let(:c) { Time.at(1000000000 )} # 2001-09-09 02:46:40 +0100
15
+
16
+ it "time_interval.offset" do
17
+ expect(D3.time_year.offset(a)).to eq(t("2017-12-07 01:17:02.123000"))
18
+ expect(D3.time_year.offset(a, 10)).to eq(t("2026-12-07 01:17:02.123000"))
19
+ end
20
+
21
+ it "time_interval.range" do
22
+ expect(D3.time_day.range(a, a+3*24*3600)).to eq([
23
+ t("2016-12-08 00:00:00"), t("2016-12-09 00:00:00"), t("2016-12-10 00:00:00")
24
+ ])
25
+ expect(D3.time_day.range(a, b, 5)).to eq([
26
+ t("2016-12-08 00:00:00"), t("2016-12-13 00:00:00"), t("2016-12-18 00:00:00"), t("2016-12-23 00:00:00")
27
+ ])
28
+ end
29
+
30
+ # It's not same as passing step to range
31
+ it "time_interval.every" do
32
+ expect(D3.time_day.every(5).range(a, b)).to eq([
33
+ t("2016-12-11 00:00:00"), t("2016-12-16 00:00:00"), t("2016-12-21 00:00:00"), t("2016-12-26 00:00:00")
34
+ ])
35
+ end
36
+
37
+ it "time_interval.filter" do
38
+ expect(D3.time_day.filter{|d| d.day % 5 == 1}.range(a, b)).to eq([
39
+ t("2016-12-11 00:00:00"), t("2016-12-16 00:00:00"), t("2016-12-21 00:00:00"), t("2016-12-26 00:00:00")
40
+ ])
41
+ end
42
+
43
+ it "time_interval.count" do
44
+ expect(D3.time_day.count(a, b)).to eq(19)
45
+ end
46
+
47
+ it "d3.time_year" do
48
+ expect(D3.time_year.floor(a)).to eq(t("2016-01-01 00:00:00"))
49
+ expect(D3.time_year.round(a)).to eq(t("2017-01-01 00:00:00"))
50
+ expect(D3.time_year.ceil(a)).to eq(t("2017-01-01 00:00:00"))
51
+ end
52
+ it "d3.utc_year" do
53
+ expect(D3.utc_year.floor(a)).to eq(t("2016-01-01 00:00:00"))
54
+ expect(D3.utc_year.round(a)).to eq(t("2017-01-01 00:00:00"))
55
+ expect(D3.utc_year.ceil(a)).to eq(t("2017-01-01 00:00:00"))
56
+ end
57
+
58
+ it "d3.time_month" do
59
+ expect(D3.time_month.floor(a)).to eq(t("2016-12-01 00:00:00"))
60
+ end
61
+ it "d3.utc_month" do
62
+ expect(D3.utc_month.floor(a)).to eq(t("2016-12-01 00:00:00"))
63
+ end
64
+
65
+ it "d3.time_week" do
66
+ expect(D3.time_week.floor(a)).to eq(t("2016-12-04 00:00:00"))
67
+ end
68
+ it "d3.utc_week" do
69
+ expect(D3.utc_week.floor(a)).to eq(t("2016-12-04 00:00:00"))
70
+ end
71
+
72
+ it "d3.time_monday" do
73
+ expect(D3.time_monday.floor(a)).to eq(t("2016-12-05 00:00:00"))
74
+ end
75
+ it "d3.utc_monday" do
76
+ expect(D3.utc_monday.floor(a)).to eq(t("2016-12-05 00:00:00"))
77
+ end
78
+
79
+ it "d3.time_tuesday" do
80
+ expect(D3.time_tuesday.floor(a)).to eq(t("2016-12-06 00:00:00"))
81
+ end
82
+ it "d3.utc_tuesday" do
83
+ expect(D3.utc_tuesday.floor(a)).to eq(t("2016-12-06 00:00:00"))
84
+ end
85
+
86
+ it "d3.time_wednesday" do
87
+ expect(D3.time_wednesday.floor(a)).to eq(t("2016-12-07 00:00:00"))
88
+ end
89
+ it "d3.utc_wednesday" do
90
+ expect(D3.utc_wednesday.floor(a)).to eq(t("2016-12-07 00:00:00"))
91
+ end
92
+
93
+ it "d3.time_thursday" do
94
+ expect(D3.time_thursday.floor(a)).to eq(t("2016-12-01 00:00:00"))
95
+ end
96
+ it "d3.utc_thursday" do
97
+ expect(D3.utc_thursday.floor(a)).to eq(t("2016-12-01 00:00:00"))
98
+ end
99
+
100
+ it "d3.time_friday" do
101
+ expect(D3.time_friday.floor(a)).to eq(t("2016-12-02 00:00:00"))
102
+ end
103
+ it "d3.utc_friday" do
104
+ expect(D3.utc_friday.floor(a)).to eq(t("2016-12-02 00:00:00"))
105
+ end
106
+
107
+ it "d3.time_saturday" do
108
+ expect(D3.time_saturday.floor(a)).to eq(t("2016-12-03 00:00:00"))
109
+ end
110
+ it "d3.utc_saturday" do
111
+ expect(D3.utc_saturday.floor(a)).to eq(t("2016-12-03 00:00:00"))
112
+ end
113
+
114
+ it "d3.time_sunday" do
115
+ expect(D3.time_sunday.floor(a)).to eq(t("2016-12-04 00:00:00"))
116
+ end
117
+ it "d3.utc_sunday" do
118
+ expect(D3.utc_sunday.floor(a)).to eq(t("2016-12-04 00:00:00"))
119
+ end
120
+
121
+ it "d3.time_day" do
122
+ expect(D3.time_day.floor(a)).to eq(t("2016-12-07 00:00:00"))
123
+ end
124
+ it "d3.utc_day" do
125
+ expect(D3.utc_day.floor(a)).to eq(t("2016-12-07 00:00:00"))
126
+ end
127
+
128
+ it "d3.time_hour" do
129
+ expect(D3.time_hour.floor(a)).to eq(t("2016-12-07 01:00:00"))
130
+ end
131
+ it "d3.utc_hour" do
132
+ expect(D3.utc_hour.floor(a)).to eq(t("2016-12-07 01:00:00"))
133
+ end
134
+
135
+ it "d3.time_minute" do
136
+ expect(D3.time_minute.floor(a)).to eq(t("2016-12-07 01:17:00"))
137
+ end
138
+ it "d3.utc_minute" do
139
+ expect(D3.utc_minute.floor(a)).to eq(t("2016-12-07 01:17:00"))
140
+ end
141
+
142
+ it "d3.time_second" do
143
+ expect(D3.time_second.floor(a)).to eq(t("2016-12-07 01:17:02"))
144
+ expect(D3.utc_second.ceil(a)).to eq(t("2016-12-07 01:17:03"))
145
+ end
146
+ it "d3.utc_second" do
147
+ expect(D3.utc_second.floor(a)).to eq(t("2016-12-07 01:17:02"))
148
+ expect(D3.utc_second.ceil(a)).to eq(t("2016-12-07 01:17:03"))
149
+ end
150
+
151
+ # This looks like bug in D3, ceil should be 124000
152
+ it "d3.time_millisecond" do
153
+ expect(D3.time_millisecond.floor(a)).to eq(t("2016-12-07 01:17:02.123000"))
154
+ expect(D3.time_millisecond.ceil(a)).to eq(t("2016-12-07 01:17:02.123000"))
155
+ expect(D3.utc_millisecond.floor(a).usec).to eq(123000)
156
+ expect(D3.utc_millisecond.ceil(a).usec).to eq(123000)
157
+ end
158
+ it "d3.utc_millisecond" do
159
+ expect(D3.utc_millisecond.floor(a)).to eq(t("2016-12-07 01:17:02.123000"))
160
+ expect(D3.utc_millisecond.ceil(a)).to eq(t("2016-12-07 01:17:02.123000"))
161
+ expect(D3.utc_millisecond.floor(a).usec).to eq(123000)
162
+ expect(D3.utc_millisecond.ceil(a).usec).to eq(123000)
163
+ end
164
+
165
+ it "d3.time_years" do
166
+ expect(D3.time_years(c,a).size).to eq(15)
167
+ expect(D3.time_years(c,a,2).size).to eq(8)
168
+ end
169
+ it "d3.utc_years" do
170
+ expect(D3.time_years(c,a).size).to eq(15)
171
+ expect(D3.time_years(c,a,2).size).to eq(8)
172
+ end
173
+
174
+ it "d3.time_months" do
175
+ expect(D3.time_months(c,a).size).to eq(183)
176
+ expect(D3.time_months(c,a,12).size).to eq(16)
177
+ end
178
+ it "d3.utc_months" do
179
+ expect(D3.time_months(c,a).size).to eq(183)
180
+ expect(D3.time_months(c,a,12).size).to eq(16)
181
+ end
182
+
183
+ it "d3.time_mondays" do
184
+ expect(D3.time_mondays(a,b)).to eq([
185
+ t("2016-12-12 00:00:00"), t("2016-12-19 00:00:00"), t("2016-12-26 00:00:00")
186
+ ])
187
+ end
188
+ it "d3.utc_mondays" do
189
+ expect(D3.utc_mondays(a,b)).to eq([
190
+ t("2016-12-12 00:00:00"), t("2016-12-19 00:00:00"), t("2016-12-26 00:00:00")
191
+ ])
192
+ end
193
+
194
+ it "d3.time_tuesdays" do
195
+ expect(D3.time_tuesdays(a,b)).to eq([
196
+ t("2016-12-13 00:00:00"), t("2016-12-20 00:00:00")
197
+ ])
198
+ end
199
+ it "d3.utc_tuesdays" do
200
+ expect(D3.utc_tuesdays(a,b)).to eq([
201
+ t("2016-12-13 00:00:00"), t("2016-12-20 00:00:00")
202
+ ])
203
+ end
204
+
205
+ it "d3.time_wednesdays" do
206
+ expect(D3.time_wednesdays(a,b)).to eq([
207
+ t("2016-12-14 00:00:00"), t("2016-12-21 00:00:00")
208
+ ])
209
+ end
210
+ it "d3.utc_wednesdays" do
211
+ expect(D3.utc_wednesdays(a,b)).to eq([
212
+ t("2016-12-14 00:00:00"), t("2016-12-21 00:00:00")
213
+ ])
214
+ end
215
+
216
+ it "d3.time_thursdays" do
217
+ expect(D3.time_thursdays(a,b)).to eq([
218
+ t("2016-12-08 00:00:00"), t("2016-12-15 00:00:00"), t("2016-12-22 00:00:00")
219
+ ])
220
+ end
221
+ it "d3.utc_thursdays" do
222
+ expect(D3.utc_thursdays(a,b)).to eq([
223
+ t("2016-12-08 00:00:00"), t("2016-12-15 00:00:00"), t("2016-12-22 00:00:00")
224
+ ])
225
+ end
226
+
227
+ it "d3.time_fridays" do
228
+ expect(D3.time_fridays(a,b)).to eq([
229
+ t("2016-12-09 00:00:00"), t("2016-12-16 00:00:00"), t("2016-12-23 00:00:00")
230
+ ])
231
+ end
232
+ it "d3.utc_fridays" do
233
+ expect(D3.utc_fridays(a,b)).to eq([
234
+ t("2016-12-09 00:00:00"), t("2016-12-16 00:00:00"), t("2016-12-23 00:00:00")
235
+ ])
236
+ end
237
+
238
+ it "d3.time_saturdays" do
239
+ expect(D3.time_saturdays(a,b)).to eq([
240
+ t("2016-12-10 00:00:00"), t("2016-12-17 00:00:00"), t("2016-12-24 00:00:00")
241
+ ])
242
+ end
243
+ it "d3.utc_saturdays" do
244
+ expect(D3.utc_saturdays(a,b)).to eq([
245
+ t("2016-12-10 00:00:00"), t("2016-12-17 00:00:00"), t("2016-12-24 00:00:00")
246
+ ])
247
+ end
248
+
249
+ it "d3.time_sundays" do
250
+ expect(D3.time_sundays(a,b)).to eq([
251
+ t("2016-12-11 00:00:00"), t("2016-12-18 00:00:00"), t("2016-12-25 00:00:00")
252
+ ])
253
+ end
254
+ it "d3.utc_sundays" do
255
+ expect(D3.utc_sundays(a,b)).to eq([
256
+ t("2016-12-11 00:00:00"), t("2016-12-18 00:00:00"), t("2016-12-25 00:00:00")
257
+ ])
258
+ end
259
+
260
+ it "d3.time_weeks" do
261
+ expect(D3.time_weeks(a,b)).to eq([
262
+ t("2016-12-11 00:00:00"), t("2016-12-18 00:00:00"), t("2016-12-25 00:00:00")
263
+ ])
264
+ end
265
+ it "d3.utc_weeks" do
266
+ expect(D3.utc_weeks(a,b)).to eq([
267
+ t("2016-12-11 00:00:00"), t("2016-12-18 00:00:00"), t("2016-12-25 00:00:00")
268
+ ])
269
+ end
270
+
271
+ it "d3.time_hours" do
272
+ expect(D3.time_hours(a,a+10000)).to eq([
273
+ t("2016-12-07 02:00:00"), t("2016-12-07 03:00:00"), t("2016-12-07 04:00:00")
274
+ ])
275
+ end
276
+ it "d3.utc_hours" do
277
+ expect(D3.utc_hours(a,a+10000)).to eq([
278
+ t("2016-12-07 02:00:00"), t("2016-12-07 03:00:00"), t("2016-12-07 04:00:00")
279
+ ])
280
+ end
281
+
282
+ it "d3.time_minutes" do
283
+ expect(D3.time_minutes(a,a+200)).to eq([
284
+ t("2016-12-07 01:18:00"), t("2016-12-07 01:19:00"), t("2016-12-07 01:20:00")
285
+ ])
286
+ end
287
+ it "d3.utc_minutes" do
288
+ expect(D3.utc_minutes(a,a+200)).to eq([
289
+ t("2016-12-07 01:18:00"), t("2016-12-07 01:19:00"), t("2016-12-07 01:20:00")
290
+ ])
291
+ end
292
+
293
+ it "d3.time_seconds" do
294
+ expect(D3.time_seconds(a,a+3)).to eq([
295
+ t("2016-12-07 01:17:03"), t("2016-12-07 01:17:04"), t("2016-12-07 01:17:05")
296
+ ])
297
+ end
298
+ it "d3.utc_seconds" do
299
+ expect(D3.utc_seconds(a,a+3)).to eq([
300
+ t("2016-12-07 01:17:03"), t("2016-12-07 01:17:04"), t("2016-12-07 01:17:05")
301
+ ])
302
+ end
303
+
304
+ it "d3.time_milliseconds" do
305
+ expect(D3.time_milliseconds(a,a+0.004).map(&:tv_usec)).to eq([
306
+ 123000, 124000, 125000, 126000
307
+ ])
308
+ end
309
+ it "d3.utc_milliseconds" do
310
+ expect(D3.utc_milliseconds(a,a+0.004).map(&:tv_usec)).to eq([
311
+ 123000, 124000, 125000, 126000
312
+ ])
313
+ end
314
+ end
@@ -0,0 +1,51 @@
1
+ describe "d3-array - transformations" do
2
+ it "d3.merge" do
3
+ expect(D3.merge([[1], [2, 3]])).to eq([1, 2, 3])
4
+ end
5
+
6
+ it "d3.pairs" do
7
+ expect(D3.pairs([1, 2, 3, 4])).to eq([[1, 2], [2, 3], [3, 4]])
8
+ end
9
+
10
+ it "d3.permute" do
11
+ expect(D3.permute(["a", "b", "c"], [1, 2, 0])).to eq(["b", "c", "a"])
12
+ end
13
+
14
+ it "d3.shuffle" do
15
+ a = (1..20).to_a
16
+ b = (1..20).to_a
17
+ D3.shuffle(b) # modifies in place
18
+ expect(a).not_to eq(b) # 61 bit chance of random test fail
19
+ expect(a.sort).to eq(b.sort)
20
+ end
21
+
22
+ it "d3.ticks" do
23
+ expect(D3.ticks(1, 47, 5)).to eq([10, 20, 30, 40])
24
+ end
25
+
26
+ it "d3.tick_step" do
27
+ expect(D3.tick_step(1, 47, 5)).to eq(10)
28
+ end
29
+
30
+ it "d3.range" do
31
+ expect(D3.range(5)).to eq([0,1,2,3,4])
32
+ expect(D3.range(2, 7)).to eq([2,3,4,5,6])
33
+ expect(D3.range(10,50,5)).to eq([10,15,20,25,30,35,40,45])
34
+ expect(D3.range(0, 1, 0.2)).to eq([0, 0.2, 0.4, 0.6000000000000001, 0.8])
35
+ end
36
+
37
+ it "d3.transpose" do
38
+ expect(D3.transpose([[1,2],[3,4]])).to eq([[1,3],[2,4]])
39
+ end
40
+
41
+ it "d3.zip" do
42
+ expect(D3.zip([1, 2], [3, 4])).to eq([[1, 3], [2, 4]])
43
+ expect(D3.zip([1, 2, 5], [3, 4])).to eq([[1, 3], [2, 4]])
44
+ expect(D3.zip([1, 2], [3, 4, 5])).to eq([[1, 3], [2, 4]])
45
+ expect(D3.zip([1, 2], [3, 4], [5, 6])).to eq([[1, 3, 5], [2, 4, 6]])
46
+ expect(D3.zip([1, 2])).to eq([[1], [2]])
47
+ expect(D3.zip([1, 2], [])).to eq([])
48
+ expect(D3.zip([])).to eq([])
49
+ expect(D3.zip()).to eq([])
50
+ end
51
+ end
Binary file
metadata ADDED
@@ -0,0 +1,529 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hyper-d3
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.lap23
5
+ platform: ruby
6
+ authors:
7
+ - Jan Biedermann, Tomasz Wegrzanowski
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-02-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: opal
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.11.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.11.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: opal-activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.3.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.3.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: hyper-component
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.0.0.lap23
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.0.lap23
55
+ - !ruby/object:Gem::Dependency
56
+ name: hyperloop-config
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.0.lap23
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.0.0.lap23
69
+ - !ruby/object:Gem::Dependency
70
+ name: hyperloop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 1.0.0.lap23
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 1.0.0.lap23
83
+ - !ruby/object:Gem::Dependency
84
+ name: hyper-spec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 1.0.0.lap23
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 1.0.0.lap23
97
+ - !ruby/object:Gem::Dependency
98
+ name: listen
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 11.3.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 11.3.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 5.1.0
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 5.1.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: sqlite3
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ description: Write React Components in ruby to show graphics created with D3.js
154
+ email: jan@kursator.de
155
+ executables: []
156
+ extensions: []
157
+ extra_rdoc_files: []
158
+ files:
159
+ - ".gitignore"
160
+ - Gemfile
161
+ - Gemfile.lock
162
+ - README.md
163
+ - Rakefile
164
+ - hyper-d3.gemspec
165
+ - lib/d3.rb
166
+ - lib/d3/arc.rb
167
+ - lib/d3/area.rb
168
+ - lib/d3/axis.rb
169
+ - lib/d3/band_scale.rb
170
+ - lib/d3/collections.rb
171
+ - lib/d3/color.rb
172
+ - lib/d3/color_schemes.rb
173
+ - lib/d3/continuous_scale.rb
174
+ - lib/d3/creator.rb
175
+ - lib/d3/curve.rb
176
+ - lib/d3/dsv.rb
177
+ - lib/d3/ease.rb
178
+ - lib/d3/format.rb
179
+ - lib/d3/histograms.rb
180
+ - lib/d3/interpolate.rb
181
+ - lib/d3/line.rb
182
+ - lib/d3/map.rb
183
+ - lib/d3/misc.rb
184
+ - lib/d3/native.rb
185
+ - lib/d3/nest.rb
186
+ - lib/d3/ordinal_scale.rb
187
+ - lib/d3/path.rb
188
+ - lib/d3/pie.rb
189
+ - lib/d3/point_scale.rb
190
+ - lib/d3/polygon.rb
191
+ - lib/d3/quadtree.rb
192
+ - lib/d3/quantile_scale.rb
193
+ - lib/d3/quantize_scale.rb
194
+ - lib/d3/radial_area.rb
195
+ - lib/d3/radial_line.rb
196
+ - lib/d3/random.rb
197
+ - lib/d3/search.rb
198
+ - lib/d3/selection.rb
199
+ - lib/d3/sequential_scale.rb
200
+ - lib/d3/set.rb
201
+ - lib/d3/source/d3-drag.js
202
+ - lib/d3/source/d3-scale-chromatic.js
203
+ - lib/d3/source/d3.js
204
+ - lib/d3/stack.rb
205
+ - lib/d3/statistics.rb
206
+ - lib/d3/symbol.rb
207
+ - lib/d3/threshold_scale.rb
208
+ - lib/d3/time_format.rb
209
+ - lib/d3/time_interval.rb
210
+ - lib/d3/transformations.rb
211
+ - lib/hyper-d3.rb
212
+ - lib/hyperloop/d3/component.rb
213
+ - lib/hyperloop/d3/mixin.rb
214
+ - lib/hyperloop/d3/version.rb
215
+ - spec/arc_spec.rb
216
+ - spec/area_spec.rb
217
+ - spec/axis_spec.rb
218
+ - spec/band_scale_spec.rb
219
+ - spec/color_spec.rb
220
+ - spec/continuous_scale_spec.rb
221
+ - spec/coverage_spec.rb
222
+ - spec/creator_spec.rb
223
+ - spec/curve_spec.rb
224
+ - spec/dsv_spec.rb
225
+ - spec/ease_spec.rb
226
+ - spec/format_spec.rb
227
+ - spec/histograms_spec.rb
228
+ - spec/html/index.html.erb
229
+ - spec/interpolate_spec.rb
230
+ - spec/line_spec.rb
231
+ - spec/map_spec.rb
232
+ - spec/misc_spec.rb
233
+ - spec/nest_spec.rb
234
+ - spec/objects_spec.rb
235
+ - spec/ordinal_scale_spec.rb
236
+ - spec/path_spec.rb
237
+ - spec/pie_spec.rb
238
+ - spec/point_scale_spec.rb
239
+ - spec/polygon_spec.rb
240
+ - spec/quadtree_spec.rb
241
+ - spec/quantile_scale_spec.rb
242
+ - spec/quantize_scale_spec.rb
243
+ - spec/radial_area_spec.rb
244
+ - spec/radial_line_spec.rb
245
+ - spec/random_spec.rb
246
+ - spec/search_spec.rb
247
+ - spec/selection_data_spec.rb
248
+ - spec/selection_manipulation_spec.rb
249
+ - spec/selection_spec.rb
250
+ - spec/sequential_scale_spec.rb
251
+ - spec/set_spec.rb
252
+ - spec/spec_helper.rb
253
+ - spec/stack_spec.rb
254
+ - spec/statistics_spec.rb
255
+ - spec/symbol_spec.rb
256
+ - spec/test_app/.gitignore
257
+ - spec/test_app/Gemfile
258
+ - spec/test_app/Gemfile.lock
259
+ - spec/test_app/README.md
260
+ - spec/test_app/Rakefile
261
+ - spec/test_app/app/assets/config/manifest.js
262
+ - spec/test_app/app/assets/images/.keep
263
+ - spec/test_app/app/assets/javascripts/application.js
264
+ - spec/test_app/app/assets/javascripts/cable.js
265
+ - spec/test_app/app/assets/javascripts/channels/.keep
266
+ - spec/test_app/app/assets/javascripts/data/elections_2016.rb
267
+ - spec/test_app/app/assets/javascripts/data/harry_potter.rb
268
+ - spec/test_app/app/assets/javascripts/data/iphones.rb
269
+ - spec/test_app/app/assets/javascripts/data/london_population.rb
270
+ - spec/test_app/app/assets/javascripts/data/man_vs_horse.rb
271
+ - spec/test_app/app/assets/javascripts/data/mtg_modern_colors.rb
272
+ - spec/test_app/app/assets/javascripts/data/mtg_modern_creatures.rb
273
+ - spec/test_app/app/assets/javascripts/data/olympics_2016_medals.rb
274
+ - spec/test_app/app/assets/javascripts/data/paradox.rb
275
+ - spec/test_app/app/assets/javascripts/data/polish_pms.rb
276
+ - spec/test_app/app/assets/javascripts/data/star_trek_voyager.rb
277
+ - spec/test_app/app/assets/javascripts/data/weather_in_london.rb
278
+ - spec/test_app/app/assets/javascripts/elections_2016.rb
279
+ - spec/test_app/app/assets/javascripts/harry_potter.rb
280
+ - spec/test_app/app/assets/javascripts/iphones.rb
281
+ - spec/test_app/app/assets/javascripts/london_population.rb
282
+ - spec/test_app/app/assets/javascripts/london_population_area.rb
283
+ - spec/test_app/app/assets/javascripts/man_vs_horse.rb
284
+ - spec/test_app/app/assets/javascripts/mtg_modern_colors.rb
285
+ - spec/test_app/app/assets/javascripts/mtg_modern_creatures.rb
286
+ - spec/test_app/app/assets/javascripts/olympics_2016_medals.rb
287
+ - spec/test_app/app/assets/javascripts/paradox.rb
288
+ - spec/test_app/app/assets/javascripts/polish_pms.rb
289
+ - spec/test_app/app/assets/javascripts/star_trek_voyager.rb
290
+ - spec/test_app/app/assets/javascripts/weather_in_london.rb
291
+ - spec/test_app/app/assets/stylesheets/application.css
292
+ - spec/test_app/app/channels/application_cable/channel.rb
293
+ - spec/test_app/app/channels/application_cable/connection.rb
294
+ - spec/test_app/app/controllers/application_controller.rb
295
+ - spec/test_app/app/controllers/concerns/.keep
296
+ - spec/test_app/app/helpers/application_helper.rb
297
+ - spec/test_app/app/jobs/application_job.rb
298
+ - spec/test_app/app/mailers/application_mailer.rb
299
+ - spec/test_app/app/models/application_record.rb
300
+ - spec/test_app/app/models/concerns/.keep
301
+ - spec/test_app/app/views/application/index.erb
302
+ - spec/test_app/app/views/application/visualization.erb
303
+ - spec/test_app/app/views/layouts/application.html.erb
304
+ - spec/test_app/bin/bundle
305
+ - spec/test_app/bin/rails
306
+ - spec/test_app/bin/rake
307
+ - spec/test_app/bin/setup
308
+ - spec/test_app/bin/update
309
+ - spec/test_app/bin/yarn
310
+ - spec/test_app/config.ru
311
+ - spec/test_app/config/application.rb
312
+ - spec/test_app/config/boot.rb
313
+ - spec/test_app/config/cable.yml
314
+ - spec/test_app/config/database.yml
315
+ - spec/test_app/config/environment.rb
316
+ - spec/test_app/config/environments/development.rb
317
+ - spec/test_app/config/environments/production.rb
318
+ - spec/test_app/config/environments/test.rb
319
+ - spec/test_app/config/initializers/application_controller_renderer.rb
320
+ - spec/test_app/config/initializers/assets.rb
321
+ - spec/test_app/config/initializers/backtrace_silencers.rb
322
+ - spec/test_app/config/initializers/cookies_serializer.rb
323
+ - spec/test_app/config/initializers/filter_parameter_logging.rb
324
+ - spec/test_app/config/initializers/inflections.rb
325
+ - spec/test_app/config/initializers/mime_types.rb
326
+ - spec/test_app/config/initializers/wrap_parameters.rb
327
+ - spec/test_app/config/locales/en.yml
328
+ - spec/test_app/config/puma.rb
329
+ - spec/test_app/config/routes.rb
330
+ - spec/test_app/config/secrets.yml
331
+ - spec/test_app/config/spring.rb
332
+ - spec/test_app/db/seeds.rb
333
+ - spec/test_app/lib/assets/.keep
334
+ - spec/test_app/lib/tasks/.keep
335
+ - spec/test_app/log/.keep
336
+ - spec/test_app/package.json
337
+ - spec/test_app/public/404.html
338
+ - spec/test_app/public/422.html
339
+ - spec/test_app/public/500.html
340
+ - spec/test_app/public/apple-touch-icon-precomposed.png
341
+ - spec/test_app/public/apple-touch-icon.png
342
+ - spec/test_app/public/favicon.ico
343
+ - spec/test_app/public/robots.txt
344
+ - spec/test_app/test/application_system_test_case.rb
345
+ - spec/test_app/test/controllers/.keep
346
+ - spec/test_app/test/fixtures/.keep
347
+ - spec/test_app/test/fixtures/files/.keep
348
+ - spec/test_app/test/helpers/.keep
349
+ - spec/test_app/test/integration/.keep
350
+ - spec/test_app/test/mailers/.keep
351
+ - spec/test_app/test/models/.keep
352
+ - spec/test_app/test/system/.keep
353
+ - spec/test_app/test/test_helper.rb
354
+ - spec/test_app/tmp/.keep
355
+ - spec/test_app/vendor/.keep
356
+ - spec/threshold_scale_spec.rb
357
+ - spec/time_format_spec.rb
358
+ - spec/time_interval_spec.rb
359
+ - spec/transformations_spec.rb
360
+ - startrekvoyager.png
361
+ homepage: https://github.com/janbiedermann/hyper-d3
362
+ licenses: []
363
+ metadata: {}
364
+ post_install_message:
365
+ rdoc_options: []
366
+ require_paths:
367
+ - lib
368
+ required_ruby_version: !ruby/object:Gem::Requirement
369
+ requirements:
370
+ - - ">="
371
+ - !ruby/object:Gem::Version
372
+ version: '0'
373
+ required_rubygems_version: !ruby/object:Gem::Requirement
374
+ requirements:
375
+ - - ">"
376
+ - !ruby/object:Gem::Version
377
+ version: 1.3.1
378
+ requirements: []
379
+ rubyforge_project:
380
+ rubygems_version: 2.7.3
381
+ signing_key:
382
+ specification_version: 4
383
+ summary: Ruby bindings for D3 as a Ruby Haperloop Component
384
+ test_files:
385
+ - spec/arc_spec.rb
386
+ - spec/area_spec.rb
387
+ - spec/axis_spec.rb
388
+ - spec/band_scale_spec.rb
389
+ - spec/color_spec.rb
390
+ - spec/continuous_scale_spec.rb
391
+ - spec/coverage_spec.rb
392
+ - spec/creator_spec.rb
393
+ - spec/curve_spec.rb
394
+ - spec/dsv_spec.rb
395
+ - spec/ease_spec.rb
396
+ - spec/format_spec.rb
397
+ - spec/histograms_spec.rb
398
+ - spec/html/index.html.erb
399
+ - spec/interpolate_spec.rb
400
+ - spec/line_spec.rb
401
+ - spec/map_spec.rb
402
+ - spec/misc_spec.rb
403
+ - spec/nest_spec.rb
404
+ - spec/objects_spec.rb
405
+ - spec/ordinal_scale_spec.rb
406
+ - spec/path_spec.rb
407
+ - spec/pie_spec.rb
408
+ - spec/point_scale_spec.rb
409
+ - spec/polygon_spec.rb
410
+ - spec/quadtree_spec.rb
411
+ - spec/quantile_scale_spec.rb
412
+ - spec/quantize_scale_spec.rb
413
+ - spec/radial_area_spec.rb
414
+ - spec/radial_line_spec.rb
415
+ - spec/random_spec.rb
416
+ - spec/search_spec.rb
417
+ - spec/selection_data_spec.rb
418
+ - spec/selection_manipulation_spec.rb
419
+ - spec/selection_spec.rb
420
+ - spec/sequential_scale_spec.rb
421
+ - spec/set_spec.rb
422
+ - spec/spec_helper.rb
423
+ - spec/stack_spec.rb
424
+ - spec/statistics_spec.rb
425
+ - spec/symbol_spec.rb
426
+ - spec/test_app/.gitignore
427
+ - spec/test_app/Gemfile
428
+ - spec/test_app/Gemfile.lock
429
+ - spec/test_app/README.md
430
+ - spec/test_app/Rakefile
431
+ - spec/test_app/app/assets/config/manifest.js
432
+ - spec/test_app/app/assets/images/.keep
433
+ - spec/test_app/app/assets/javascripts/application.js
434
+ - spec/test_app/app/assets/javascripts/cable.js
435
+ - spec/test_app/app/assets/javascripts/channels/.keep
436
+ - spec/test_app/app/assets/javascripts/data/elections_2016.rb
437
+ - spec/test_app/app/assets/javascripts/data/harry_potter.rb
438
+ - spec/test_app/app/assets/javascripts/data/iphones.rb
439
+ - spec/test_app/app/assets/javascripts/data/london_population.rb
440
+ - spec/test_app/app/assets/javascripts/data/man_vs_horse.rb
441
+ - spec/test_app/app/assets/javascripts/data/mtg_modern_colors.rb
442
+ - spec/test_app/app/assets/javascripts/data/mtg_modern_creatures.rb
443
+ - spec/test_app/app/assets/javascripts/data/olympics_2016_medals.rb
444
+ - spec/test_app/app/assets/javascripts/data/paradox.rb
445
+ - spec/test_app/app/assets/javascripts/data/polish_pms.rb
446
+ - spec/test_app/app/assets/javascripts/data/star_trek_voyager.rb
447
+ - spec/test_app/app/assets/javascripts/data/weather_in_london.rb
448
+ - spec/test_app/app/assets/javascripts/elections_2016.rb
449
+ - spec/test_app/app/assets/javascripts/harry_potter.rb
450
+ - spec/test_app/app/assets/javascripts/iphones.rb
451
+ - spec/test_app/app/assets/javascripts/london_population.rb
452
+ - spec/test_app/app/assets/javascripts/london_population_area.rb
453
+ - spec/test_app/app/assets/javascripts/man_vs_horse.rb
454
+ - spec/test_app/app/assets/javascripts/mtg_modern_colors.rb
455
+ - spec/test_app/app/assets/javascripts/mtg_modern_creatures.rb
456
+ - spec/test_app/app/assets/javascripts/olympics_2016_medals.rb
457
+ - spec/test_app/app/assets/javascripts/paradox.rb
458
+ - spec/test_app/app/assets/javascripts/polish_pms.rb
459
+ - spec/test_app/app/assets/javascripts/star_trek_voyager.rb
460
+ - spec/test_app/app/assets/javascripts/weather_in_london.rb
461
+ - spec/test_app/app/assets/stylesheets/application.css
462
+ - spec/test_app/app/channels/application_cable/channel.rb
463
+ - spec/test_app/app/channels/application_cable/connection.rb
464
+ - spec/test_app/app/controllers/application_controller.rb
465
+ - spec/test_app/app/controllers/concerns/.keep
466
+ - spec/test_app/app/helpers/application_helper.rb
467
+ - spec/test_app/app/jobs/application_job.rb
468
+ - spec/test_app/app/mailers/application_mailer.rb
469
+ - spec/test_app/app/models/application_record.rb
470
+ - spec/test_app/app/models/concerns/.keep
471
+ - spec/test_app/app/views/application/index.erb
472
+ - spec/test_app/app/views/application/visualization.erb
473
+ - spec/test_app/app/views/layouts/application.html.erb
474
+ - spec/test_app/bin/bundle
475
+ - spec/test_app/bin/rails
476
+ - spec/test_app/bin/rake
477
+ - spec/test_app/bin/setup
478
+ - spec/test_app/bin/update
479
+ - spec/test_app/bin/yarn
480
+ - spec/test_app/config.ru
481
+ - spec/test_app/config/application.rb
482
+ - spec/test_app/config/boot.rb
483
+ - spec/test_app/config/cable.yml
484
+ - spec/test_app/config/database.yml
485
+ - spec/test_app/config/environment.rb
486
+ - spec/test_app/config/environments/development.rb
487
+ - spec/test_app/config/environments/production.rb
488
+ - spec/test_app/config/environments/test.rb
489
+ - spec/test_app/config/initializers/application_controller_renderer.rb
490
+ - spec/test_app/config/initializers/assets.rb
491
+ - spec/test_app/config/initializers/backtrace_silencers.rb
492
+ - spec/test_app/config/initializers/cookies_serializer.rb
493
+ - spec/test_app/config/initializers/filter_parameter_logging.rb
494
+ - spec/test_app/config/initializers/inflections.rb
495
+ - spec/test_app/config/initializers/mime_types.rb
496
+ - spec/test_app/config/initializers/wrap_parameters.rb
497
+ - spec/test_app/config/locales/en.yml
498
+ - spec/test_app/config/puma.rb
499
+ - spec/test_app/config/routes.rb
500
+ - spec/test_app/config/secrets.yml
501
+ - spec/test_app/config/spring.rb
502
+ - spec/test_app/db/seeds.rb
503
+ - spec/test_app/lib/assets/.keep
504
+ - spec/test_app/lib/tasks/.keep
505
+ - spec/test_app/log/.keep
506
+ - spec/test_app/package.json
507
+ - spec/test_app/public/404.html
508
+ - spec/test_app/public/422.html
509
+ - spec/test_app/public/500.html
510
+ - spec/test_app/public/apple-touch-icon-precomposed.png
511
+ - spec/test_app/public/apple-touch-icon.png
512
+ - spec/test_app/public/favicon.ico
513
+ - spec/test_app/public/robots.txt
514
+ - spec/test_app/test/application_system_test_case.rb
515
+ - spec/test_app/test/controllers/.keep
516
+ - spec/test_app/test/fixtures/.keep
517
+ - spec/test_app/test/fixtures/files/.keep
518
+ - spec/test_app/test/helpers/.keep
519
+ - spec/test_app/test/integration/.keep
520
+ - spec/test_app/test/mailers/.keep
521
+ - spec/test_app/test/models/.keep
522
+ - spec/test_app/test/system/.keep
523
+ - spec/test_app/test/test_helper.rb
524
+ - spec/test_app/tmp/.keep
525
+ - spec/test_app/vendor/.keep
526
+ - spec/threshold_scale_spec.rb
527
+ - spec/time_format_spec.rb
528
+ - spec/time_interval_spec.rb
529
+ - spec/transformations_spec.rb