table-query 0.1.0

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.
@@ -0,0 +1,4 @@
1
+ module TableQuery
2
+ # version number
3
+ VERSION = "0.1.0"
4
+ end
@@ -0,0 +1,21 @@
1
+ # -*- ruby -*-
2
+ # -*- encoding: utf-8 -*-
3
+ lib = File.expand_path('../lib', __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'table-query/version'
6
+
7
+ Gem::Specification.new do |gem|
8
+ gem.name = "table-query"
9
+ gem.version = TableQuery::VERSION
10
+ gem.authors = ["Keita Yamaguchi"]
11
+ gem.email = ["keita.yamaguchi@gmail.com"]
12
+ gem.description = %q{table-query is a library to query table data by easy way.}
13
+ gem.summary = %q{query table data by easy way}
14
+ gem.homepage = "https://github.com/keita/table-query"
15
+
16
+ gem.files = `git ls-files`.split($/)
17
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
+ gem.require_paths = ["lib"]
20
+ gem.add_development_dependency "bacon"
21
+ end
@@ -0,0 +1,24 @@
1
+ require 'table-query'
2
+ include TableQuery
3
+
4
+ describe 'TableQuery::Field' do
5
+ it 'should get name' do
6
+ Field.new(:a, :string, 0, nil, {}).name.should == :a
7
+ end
8
+
9
+ it 'should get type' do
10
+ Field.new(:a, :string, 0, nil, {}).type.should == :string
11
+ end
12
+
13
+ it 'should get pos' do
14
+ Field.new(:a, :string, 0, nil, {}).pos.should == 0
15
+ end
16
+
17
+ it 'should get value' do
18
+ Field.new(:a, :string, 0, nil, {}).value.should.nil
19
+ end
20
+
21
+ it 'should get options' do
22
+ Field.new(:a, :string, 0, nil, {}).options.should == {}
23
+ end
24
+ end
@@ -0,0 +1,42 @@
1
+ require 'table-query'
2
+ include TableQuery
3
+
4
+ describe 'TableQuery::QuerySchema' do
5
+ it 'should define a query schema' do
6
+ QuerySchema.define(:test) do
7
+ input :a
8
+ output :b
9
+ end.should.kind_of QuerySchema
10
+ end
11
+
12
+ it 'should get the query name' do
13
+ QuerySchema.define(:test) do
14
+ input :a
15
+ output :b
16
+ end.name.should == :test
17
+ end
18
+
19
+ it 'should input fields' do
20
+ QuerySchema.define(:test) do
21
+ input :a
22
+ input :b
23
+ input :c
24
+ end.inputs.map{|f| f.name}.should == [:a, :b, :c]
25
+ end
26
+
27
+ it 'should output fields' do
28
+ QuerySchema.define(:test) do
29
+ output :a
30
+ output :b
31
+ output :c
32
+ end.outputs.map{|f| f.name}.should == [:a, :b, :c]
33
+ end
34
+
35
+ it 'should value fields' do
36
+ QuerySchema.define(:test) do
37
+ value :a, 1
38
+ value :b, 2
39
+ value :c, 3
40
+ end.values.map{|f| f.name}.should == [:a, :b, :c]
41
+ end
42
+ end
@@ -0,0 +1,35 @@
1
+ require 'table-query'
2
+ include TableQuery
3
+
4
+ describe 'TableQuery::Query' do
5
+ table = TableQuery.table(File.join(File.dirname(__FILE__), "table", "calendar.csv"))
6
+ query_schema = table.query_schemas[:wday_to_day]
7
+
8
+ it 'should get the table' do
9
+ Query.new(table, query_schema, [2, :sun]).table.should == table
10
+ end
11
+
12
+ it 'should get the query schema' do
13
+ Query.new(table, query_schema, [2, :sun]).query_schema.should == query_schema
14
+ end
15
+
16
+ it 'should get the values' do
17
+ Query.new(table, query_schema, [2, :sun]).values.should == [2, :sun]
18
+ end
19
+
20
+ it 'should get an enumerator' do
21
+ Query.new(table, query_schema, [2, :sun]).each.should.kind_of(Enumerator)
22
+ end
23
+
24
+ it 'should iterate' do
25
+ list = [3, 10, 17, 24]
26
+ Query.new(table, query_schema, [2, :sun]).each do |day|
27
+ list.delete(day).should.not.nil
28
+ end
29
+ list.should.empty
30
+ end
31
+
32
+ it 'should get entries' do
33
+ Query.new(table, query_schema, [2, :sun]).entries.should == [3, 10, 17, 24]
34
+ end
35
+ end
@@ -0,0 +1,15 @@
1
+ require 'table-query'
2
+ include TableQuery
3
+
4
+ describe 'TableQuery::SchemaLoader' do
5
+ path = File.join(File.dirname(__FILE__), "table", "alphabet-schema.rb")
6
+
7
+ it 'should load a schema' do
8
+ types, table_schema, query_schemas =
9
+ SchemaLoader.load(File.read(path), path)
10
+ types.should.empty
11
+ table_schema.should.kind_of TableSchema
12
+ query_schemas.map{|_, schema| schema.name}
13
+ .should == [:number_to_char, :char_to_number]
14
+ end
15
+ end
@@ -0,0 +1,18 @@
1
+ require 'table-query'
2
+ include TableQuery
3
+
4
+ describe 'TableQuery::TableSchema' do
5
+ it 'should define a table schema' do
6
+ TableSchema.define do
7
+ field :a, :string
8
+ end.should.kind_of TableSchema
9
+ end
10
+
11
+ it 'should get table fields' do
12
+ TableSchema.define do
13
+ field :a, :string
14
+ field :b, :int
15
+ field :c, :bool
16
+ end.fields.map{|f| f.name}.should == [:a, :b, :c]
17
+ end
18
+ end
@@ -0,0 +1,27 @@
1
+ require 'table-query'
2
+ include TableQuery
3
+
4
+ describe 'TableQuery::Table' do
5
+ path = File.join(File.dirname(__FILE__), "table", "alphabet.csv")
6
+
7
+ it 'should get types' do
8
+ Table.new(path).types.map{|_, t| t.name}.should ==
9
+ STANDARD_TYPES.map{|t| t.name}
10
+ end
11
+
12
+ it 'should get table schema' do
13
+ Table.new(path).table_schema.should.kind_of TableSchema
14
+ end
15
+
16
+ it 'should get query schemas' do
17
+ Table.new(path).query_schemas.map{|_, schema| schema.name}
18
+ .should == [:number_to_char, :char_to_number]
19
+ end
20
+
21
+ it 'should get queries' do
22
+ Table.new(path).number_to_char.should.kind_of Query
23
+ Table.new(path).char_to_number.should.kind_of Query
24
+ end
25
+ end
26
+
27
+
data/test/spec_type.rb ADDED
@@ -0,0 +1,97 @@
1
+ require 'table-query'
2
+ include TableQuery
3
+
4
+ describe 'TableQuery::Type' do
5
+ it 'should get type name' do
6
+ Type::BOOL.name.should == :bool
7
+ end
8
+
9
+ describe 'BOOL' do
10
+ it 'should convert to ruby object' do
11
+ Type::BOOL.convert_to_ruby("true").should == true
12
+ Type::BOOL.convert_to_ruby("false").should == false
13
+ end
14
+
15
+ it 'should convert from ruby object' do
16
+ Type::BOOL.convert_from_ruby(true).should == "true"
17
+ Type::BOOL.convert_from_ruby(false).should == "false"
18
+ end
19
+ end
20
+
21
+ describe 'INT' do
22
+ it 'should convert to ruby object' do
23
+ Type::INT.convert_to_ruby("123").should == 123
24
+ Type::INT.convert_to_ruby("-123").should == -123
25
+ end
26
+
27
+ it 'should convert from ruby object' do
28
+ Type::INT.convert_from_ruby(123).should == "123"
29
+ Type::INT.convert_from_ruby(-123).should == "-123"
30
+ end
31
+ end
32
+
33
+ describe 'FLOAT' do
34
+ it 'should convert to ruby object' do
35
+ Type::FLOAT.convert_to_ruby("0.123").should == 0.123
36
+ Type::FLOAT.convert_to_ruby("-0.123").should == -0.123
37
+ end
38
+
39
+ it 'should convert from ruby object' do
40
+ Type::FLOAT.convert_from_ruby(0.123).should == "0.123"
41
+ Type::FLOAT.convert_from_ruby(-0.123).should == "-0.123"
42
+ end
43
+ end
44
+
45
+ describe 'STRING' do
46
+ it 'should convert to ruby object' do
47
+ Type::STRING.convert_to_ruby("abc").should == "abc"
48
+ end
49
+
50
+ it 'should convert from ruby object' do
51
+ Type::STRING.convert_from_ruby("abc").should == "abc"
52
+ end
53
+ end
54
+
55
+ describe 'SYMBOL' do
56
+ it 'should convert to ruby object' do
57
+ Type::SYMBOL.convert_to_ruby("abc").should == :abc
58
+ end
59
+
60
+ it 'should convert from ruby object' do
61
+ Type::SYMBOL.convert_from_ruby(:abc).should == "abc"
62
+ end
63
+ end
64
+
65
+ describe 'TIME' do
66
+ it 'should convert to ruby object' do
67
+ Type::TIME.convert_to_ruby("2013-2-17 13:12:56").tap do |x|
68
+ x.year.should == 2013
69
+ x.month.should == 2
70
+ x.mday.should == 17
71
+ x.hour.should == 13
72
+ x.min.should == 12
73
+ x.sec.should == 56
74
+ end
75
+ end
76
+
77
+ it 'should convert from ruby object' do
78
+ Type::TIME.convert_from_ruby(DateTime.parse("2013-2-17 13:12:56"))
79
+ .should == "2013-02-17 13:12:56"
80
+ end
81
+ end
82
+
83
+ describe 'DATE' do
84
+ it 'should convert to ruby object' do
85
+ Type::DATE.convert_to_ruby("2013-2-17").tap do |x|
86
+ x.year.should == 2013
87
+ x.month.should == 2
88
+ x.mday.should == 17
89
+ end
90
+ end
91
+
92
+ it 'should convert from ruby object' do
93
+ Type::DATE.convert_from_ruby(Date.parse("2013-2-17"))
94
+ .should == "2013-02-17"
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,14 @@
1
+ table.define do
2
+ field :number, :int
3
+ field :char, :string
4
+ end
5
+
6
+ query.define(:number_to_char) do
7
+ input :number
8
+ output :char
9
+ end
10
+
11
+ query.define(:char_to_number) do
12
+ input :char
13
+ output :number
14
+ end
@@ -0,0 +1,26 @@
1
+ 1,"a"
2
+ 2,"b"
3
+ 3,"c"
4
+ 4,"d"
5
+ 5,"e"
6
+ 6,"f"
7
+ 7,"g"
8
+ 8,"h"
9
+ 9,"I"
10
+ 10,"j"
11
+ 11,"k"
12
+ 12,"l"
13
+ 13,"m"
14
+ 14,"n"
15
+ 15,"o"
16
+ 16,"p"
17
+ 17,"q"
18
+ 18,"r"
19
+ 19,"s"
20
+ 20,"t"
21
+ 21,"u"
22
+ 22,"v"
23
+ 23,"w"
24
+ 24,"x"
25
+ 25,"y"
26
+ 26,"z"
@@ -0,0 +1,29 @@
1
+ type.define(:weekday) do
2
+ list = [:sun, :mon, :tue, :wed, :thu, :fri, :sat]
3
+ table = Hash[list.zip((0..6).to_a)]
4
+ to_ruby {|val| list[val.to_i]}
5
+ from_ruby {|val| table[val].to_s}
6
+ end
7
+
8
+ table.define do
9
+ field :year , :int
10
+ field :month, :int
11
+ field :mday , :int
12
+ field :wday , :weekday
13
+ end
14
+
15
+ query.define(:wday_to_day) do
16
+ input :month
17
+ input :wday
18
+ output :mday
19
+ end
20
+
21
+ query.define(:month_of_year) do
22
+ input :year
23
+ output :month
24
+ end
25
+
26
+ query.define(:day_of_month) do
27
+ input :month
28
+ output :mday
29
+ end
@@ -0,0 +1,365 @@
1
+ "2013","1","1","2"
2
+ "2013","1","2","3"
3
+ "2013","1","3","4"
4
+ "2013","1","4","5"
5
+ "2013","1","5","6"
6
+ "2013","1","6","0"
7
+ "2013","1","7","1"
8
+ "2013","1","8","2"
9
+ "2013","1","9","3"
10
+ "2013","1","10","4"
11
+ "2013","1","11","5"
12
+ "2013","1","12","6"
13
+ "2013","1","13","0"
14
+ "2013","1","14","1"
15
+ "2013","1","15","2"
16
+ "2013","1","16","3"
17
+ "2013","1","17","4"
18
+ "2013","1","18","5"
19
+ "2013","1","19","6"
20
+ "2013","1","20","0"
21
+ "2013","1","21","1"
22
+ "2013","1","22","2"
23
+ "2013","1","23","3"
24
+ "2013","1","24","4"
25
+ "2013","1","25","5"
26
+ "2013","1","26","6"
27
+ "2013","1","27","0"
28
+ "2013","1","28","1"
29
+ "2013","1","29","2"
30
+ "2013","1","30","3"
31
+ "2013","1","31","4"
32
+ "2013","2","1","5"
33
+ "2013","2","2","6"
34
+ "2013","2","3","0"
35
+ "2013","2","4","1"
36
+ "2013","2","5","2"
37
+ "2013","2","6","3"
38
+ "2013","2","7","4"
39
+ "2013","2","8","5"
40
+ "2013","2","9","6"
41
+ "2013","2","10","0"
42
+ "2013","2","11","1"
43
+ "2013","2","12","2"
44
+ "2013","2","13","3"
45
+ "2013","2","14","4"
46
+ "2013","2","15","5"
47
+ "2013","2","16","6"
48
+ "2013","2","17","0"
49
+ "2013","2","18","1"
50
+ "2013","2","19","2"
51
+ "2013","2","20","3"
52
+ "2013","2","21","4"
53
+ "2013","2","22","5"
54
+ "2013","2","23","6"
55
+ "2013","2","24","0"
56
+ "2013","2","25","1"
57
+ "2013","2","26","2"
58
+ "2013","2","27","3"
59
+ "2013","2","28","4"
60
+ "2013","3","1","5"
61
+ "2013","3","2","6"
62
+ "2013","3","3","0"
63
+ "2013","3","4","1"
64
+ "2013","3","5","2"
65
+ "2013","3","6","3"
66
+ "2013","3","7","4"
67
+ "2013","3","8","5"
68
+ "2013","3","9","6"
69
+ "2013","3","10","0"
70
+ "2013","3","11","1"
71
+ "2013","3","12","2"
72
+ "2013","3","13","3"
73
+ "2013","3","14","4"
74
+ "2013","3","15","5"
75
+ "2013","3","16","6"
76
+ "2013","3","17","0"
77
+ "2013","3","18","1"
78
+ "2013","3","19","2"
79
+ "2013","3","20","3"
80
+ "2013","3","21","4"
81
+ "2013","3","22","5"
82
+ "2013","3","23","6"
83
+ "2013","3","24","0"
84
+ "2013","3","25","1"
85
+ "2013","3","26","2"
86
+ "2013","3","27","3"
87
+ "2013","3","28","4"
88
+ "2013","3","29","5"
89
+ "2013","3","30","6"
90
+ "2013","3","31","0"
91
+ "2013","4","1","1"
92
+ "2013","4","2","2"
93
+ "2013","4","3","3"
94
+ "2013","4","4","4"
95
+ "2013","4","5","5"
96
+ "2013","4","6","6"
97
+ "2013","4","7","0"
98
+ "2013","4","8","1"
99
+ "2013","4","9","2"
100
+ "2013","4","10","3"
101
+ "2013","4","11","4"
102
+ "2013","4","12","5"
103
+ "2013","4","13","6"
104
+ "2013","4","14","0"
105
+ "2013","4","15","1"
106
+ "2013","4","16","2"
107
+ "2013","4","17","3"
108
+ "2013","4","18","4"
109
+ "2013","4","19","5"
110
+ "2013","4","20","6"
111
+ "2013","4","21","0"
112
+ "2013","4","22","1"
113
+ "2013","4","23","2"
114
+ "2013","4","24","3"
115
+ "2013","4","25","4"
116
+ "2013","4","26","5"
117
+ "2013","4","27","6"
118
+ "2013","4","28","0"
119
+ "2013","4","29","1"
120
+ "2013","4","30","2"
121
+ "2013","5","1","3"
122
+ "2013","5","2","4"
123
+ "2013","5","3","5"
124
+ "2013","5","4","6"
125
+ "2013","5","5","0"
126
+ "2013","5","6","1"
127
+ "2013","5","7","2"
128
+ "2013","5","8","3"
129
+ "2013","5","9","4"
130
+ "2013","5","10","5"
131
+ "2013","5","11","6"
132
+ "2013","5","12","0"
133
+ "2013","5","13","1"
134
+ "2013","5","14","2"
135
+ "2013","5","15","3"
136
+ "2013","5","16","4"
137
+ "2013","5","17","5"
138
+ "2013","5","18","6"
139
+ "2013","5","19","0"
140
+ "2013","5","20","1"
141
+ "2013","5","21","2"
142
+ "2013","5","22","3"
143
+ "2013","5","23","4"
144
+ "2013","5","24","5"
145
+ "2013","5","25","6"
146
+ "2013","5","26","0"
147
+ "2013","5","27","1"
148
+ "2013","5","28","2"
149
+ "2013","5","29","3"
150
+ "2013","5","30","4"
151
+ "2013","5","31","5"
152
+ "2013","6","1","6"
153
+ "2013","6","2","0"
154
+ "2013","6","3","1"
155
+ "2013","6","4","2"
156
+ "2013","6","5","3"
157
+ "2013","6","6","4"
158
+ "2013","6","7","5"
159
+ "2013","6","8","6"
160
+ "2013","6","9","0"
161
+ "2013","6","10","1"
162
+ "2013","6","11","2"
163
+ "2013","6","12","3"
164
+ "2013","6","13","4"
165
+ "2013","6","14","5"
166
+ "2013","6","15","6"
167
+ "2013","6","16","0"
168
+ "2013","6","17","1"
169
+ "2013","6","18","2"
170
+ "2013","6","19","3"
171
+ "2013","6","20","4"
172
+ "2013","6","21","5"
173
+ "2013","6","22","6"
174
+ "2013","6","23","0"
175
+ "2013","6","24","1"
176
+ "2013","6","25","2"
177
+ "2013","6","26","3"
178
+ "2013","6","27","4"
179
+ "2013","6","28","5"
180
+ "2013","6","29","6"
181
+ "2013","6","30","0"
182
+ "2013","7","1","1"
183
+ "2013","7","2","2"
184
+ "2013","7","3","3"
185
+ "2013","7","4","4"
186
+ "2013","7","5","5"
187
+ "2013","7","6","6"
188
+ "2013","7","7","0"
189
+ "2013","7","8","1"
190
+ "2013","7","9","2"
191
+ "2013","7","10","3"
192
+ "2013","7","11","4"
193
+ "2013","7","12","5"
194
+ "2013","7","13","6"
195
+ "2013","7","14","0"
196
+ "2013","7","15","1"
197
+ "2013","7","16","2"
198
+ "2013","7","17","3"
199
+ "2013","7","18","4"
200
+ "2013","7","19","5"
201
+ "2013","7","20","6"
202
+ "2013","7","21","0"
203
+ "2013","7","22","1"
204
+ "2013","7","23","2"
205
+ "2013","7","24","3"
206
+ "2013","7","25","4"
207
+ "2013","7","26","5"
208
+ "2013","7","27","6"
209
+ "2013","7","28","0"
210
+ "2013","7","29","1"
211
+ "2013","7","30","2"
212
+ "2013","7","31","3"
213
+ "2013","8","1","4"
214
+ "2013","8","2","5"
215
+ "2013","8","3","6"
216
+ "2013","8","4","0"
217
+ "2013","8","5","1"
218
+ "2013","8","6","2"
219
+ "2013","8","7","3"
220
+ "2013","8","8","4"
221
+ "2013","8","9","5"
222
+ "2013","8","10","6"
223
+ "2013","8","11","0"
224
+ "2013","8","12","1"
225
+ "2013","8","13","2"
226
+ "2013","8","14","3"
227
+ "2013","8","15","4"
228
+ "2013","8","16","5"
229
+ "2013","8","17","6"
230
+ "2013","8","18","0"
231
+ "2013","8","19","1"
232
+ "2013","8","20","2"
233
+ "2013","8","21","3"
234
+ "2013","8","22","4"
235
+ "2013","8","23","5"
236
+ "2013","8","24","6"
237
+ "2013","8","25","0"
238
+ "2013","8","26","1"
239
+ "2013","8","27","2"
240
+ "2013","8","28","3"
241
+ "2013","8","29","4"
242
+ "2013","8","30","5"
243
+ "2013","8","31","6"
244
+ "2013","9","1","0"
245
+ "2013","9","2","1"
246
+ "2013","9","3","2"
247
+ "2013","9","4","3"
248
+ "2013","9","5","4"
249
+ "2013","9","6","5"
250
+ "2013","9","7","6"
251
+ "2013","9","8","0"
252
+ "2013","9","9","1"
253
+ "2013","9","10","2"
254
+ "2013","9","11","3"
255
+ "2013","9","12","4"
256
+ "2013","9","13","5"
257
+ "2013","9","14","6"
258
+ "2013","9","15","0"
259
+ "2013","9","16","1"
260
+ "2013","9","17","2"
261
+ "2013","9","18","3"
262
+ "2013","9","19","4"
263
+ "2013","9","20","5"
264
+ "2013","9","21","6"
265
+ "2013","9","22","0"
266
+ "2013","9","23","1"
267
+ "2013","9","24","2"
268
+ "2013","9","25","3"
269
+ "2013","9","26","4"
270
+ "2013","9","27","5"
271
+ "2013","9","28","6"
272
+ "2013","9","29","0"
273
+ "2013","9","30","1"
274
+ "2013","10","1","2"
275
+ "2013","10","2","3"
276
+ "2013","10","3","4"
277
+ "2013","10","4","5"
278
+ "2013","10","5","6"
279
+ "2013","10","6","0"
280
+ "2013","10","7","1"
281
+ "2013","10","8","2"
282
+ "2013","10","9","3"
283
+ "2013","10","10","4"
284
+ "2013","10","11","5"
285
+ "2013","10","12","6"
286
+ "2013","10","13","0"
287
+ "2013","10","14","1"
288
+ "2013","10","15","2"
289
+ "2013","10","16","3"
290
+ "2013","10","17","4"
291
+ "2013","10","18","5"
292
+ "2013","10","19","6"
293
+ "2013","10","20","0"
294
+ "2013","10","21","1"
295
+ "2013","10","22","2"
296
+ "2013","10","23","3"
297
+ "2013","10","24","4"
298
+ "2013","10","25","5"
299
+ "2013","10","26","6"
300
+ "2013","10","27","0"
301
+ "2013","10","28","1"
302
+ "2013","10","29","2"
303
+ "2013","10","30","3"
304
+ "2013","10","31","4"
305
+ "2013","11","1","5"
306
+ "2013","11","2","6"
307
+ "2013","11","3","0"
308
+ "2013","11","4","1"
309
+ "2013","11","5","2"
310
+ "2013","11","6","3"
311
+ "2013","11","7","4"
312
+ "2013","11","8","5"
313
+ "2013","11","9","6"
314
+ "2013","11","10","0"
315
+ "2013","11","11","1"
316
+ "2013","11","12","2"
317
+ "2013","11","13","3"
318
+ "2013","11","14","4"
319
+ "2013","11","15","5"
320
+ "2013","11","16","6"
321
+ "2013","11","17","0"
322
+ "2013","11","18","1"
323
+ "2013","11","19","2"
324
+ "2013","11","20","3"
325
+ "2013","11","21","4"
326
+ "2013","11","22","5"
327
+ "2013","11","23","6"
328
+ "2013","11","24","0"
329
+ "2013","11","25","1"
330
+ "2013","11","26","2"
331
+ "2013","11","27","3"
332
+ "2013","11","28","4"
333
+ "2013","11","29","5"
334
+ "2013","11","30","6"
335
+ "2013","12","1","0"
336
+ "2013","12","2","1"
337
+ "2013","12","3","2"
338
+ "2013","12","4","3"
339
+ "2013","12","5","4"
340
+ "2013","12","6","5"
341
+ "2013","12","7","6"
342
+ "2013","12","8","0"
343
+ "2013","12","9","1"
344
+ "2013","12","10","2"
345
+ "2013","12","11","3"
346
+ "2013","12","12","4"
347
+ "2013","12","13","5"
348
+ "2013","12","14","6"
349
+ "2013","12","15","0"
350
+ "2013","12","16","1"
351
+ "2013","12","17","2"
352
+ "2013","12","18","3"
353
+ "2013","12","19","4"
354
+ "2013","12","20","5"
355
+ "2013","12","21","6"
356
+ "2013","12","22","0"
357
+ "2013","12","23","1"
358
+ "2013","12","24","2"
359
+ "2013","12","25","3"
360
+ "2013","12","26","4"
361
+ "2013","12","27","5"
362
+ "2013","12","28","6"
363
+ "2013","12","29","0"
364
+ "2013","12","30","1"
365
+ "2013","12","31","2"