simple_time_series 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a1de65d10a8508cd676b70cf80ed57c89ec66d2f
4
- data.tar.gz: 662431d9c143297aa5b992cde8331a6c39892035
3
+ metadata.gz: 07a3e14fd7eff38cbdbb58579d7bebbc7e3899da
4
+ data.tar.gz: 023551817a829f9bea6da942a8f627ad844796cc
5
5
  SHA512:
6
- metadata.gz: ed5334c0dc23e5ad262eac7bcedbceedaed3ecf0b7a2c89e86029fd5365e6bd9b4605053f1480e54b8748532dc039fea43e322ef324d7df22f3ee9366350e870
7
- data.tar.gz: 8b705e90fb271cd18e7d36576ba52f04f9251602630aca9a2dc6bcf8f88b0bac12a16482341971abfceb2b6f6167c31a02f57c8ada9ac79f9aa5383d5669bfe5
6
+ metadata.gz: 5062c774092d7ae6b36c8cb0af664c2b41796dc073bef4c99630946dd2df91e032cd3c30063aa570843e9aee3c5f85177b640ffd1e2e0e4acf44d3a575376817
7
+ data.tar.gz: ca7130e239cf7cc6dcf6dcf83c84207983728a07827d0e04d86399db99f07b9073aeb1241b4b46327a3ffca6176275add7ab3f30080cb6d020ee395d6a10e0b3
@@ -17,7 +17,7 @@ class SimpleTimeSeries
17
17
  end
18
18
 
19
19
  def find_plus_label(what, date, end_date=nil)
20
- find(what, date, end_date).unshift(what)
20
+ find(what, date, end_date).dup.unshift(what)
21
21
  end
22
22
 
23
23
  def data_array(*data_var_names, opts)
@@ -27,6 +27,7 @@ class SimpleTimeSeries
27
27
  raise err_msg unless opts
28
28
  data_arr = []
29
29
  Array(data_var_names).each do |name|
30
+ puts "Looping through data_var_names inside data_array with #{name}" if DEBUG
30
31
  if opts[:start] && opts[:end]
31
32
  puts "Calling find(#{name}, #{opts[:start]}, #{opts[:end]}, #{opts})" if DEBUG
32
33
  data_arr << find(name, opts[:start], opts[:end], opts)
@@ -38,7 +39,9 @@ class SimpleTimeSeries
38
39
  end
39
40
 
40
41
  def current(what, opts={})
41
- send(what.to_sym, opts)
42
+ puts "#current called with #{what} and #{opts}" if DEBUG
43
+ vals = send(what.to_sym, opts)
44
+ opts[:prepend_names] ? vals.dup.unshift(what) : vals
42
45
  end
43
46
 
44
47
  def index_of_date_value(date)
@@ -82,7 +85,7 @@ class SimpleTimeSeries
82
85
  time_vars.each do |tv_key, tv_val|
83
86
  start_idx = index_of_date_value(first) || 0
84
87
  last_idx = index_of_date_value(last) || (first.nil? ? -1 : start_idx)
85
- answer = (eval(var).each_cons(2).map { |val1, val2| val2 - val1 }.unshift(nil))[start_idx..last_idx]
88
+ answer = (eval(var).each_cons(2).map { |val1, val2| val2 - val1 }.dup.unshift(nil))[start_idx..last_idx]
86
89
  return answer.length == 1 ? answer[0] : answer
87
90
  end
88
91
  end
@@ -93,7 +96,7 @@ class SimpleTimeSeries
93
96
  start_idx = index_of_date_value(first) || 0
94
97
  last_idx = index_of_date_value(last) || (first.nil? ? -1 : start_idx)
95
98
  sum = eval(var)[0]
96
- answer = (eval(var).each_cons(2).map { |val1, val2| sum += val2 }.unshift(eval(var)[start_idx]))[start_idx..last_idx]
99
+ answer = (eval(var).each_cons(2).map { |val1, val2| sum += val2 }.dup.unshift(eval(var)[start_idx]))[start_idx..last_idx]
97
100
  return answer.length == 1 ? answer[0] : answer
98
101
  end
99
102
  end
@@ -107,7 +110,7 @@ class SimpleTimeSeries
107
110
  puts "start_idx = #{start_idx}; last_idx = #{last_idx}" if DEBUG
108
111
  if start_idx != last_idx
109
112
  arr = eval(var)[start_idx..last_idx]
110
- return (opts[:prepend_names] ? arr.unshift(var) : arr)
113
+ return (opts[:prepend_names] ? arr.dup.unshift(var) : arr)
111
114
  elsif start_idx
112
115
  return eval(var)[start_idx]
113
116
  else
@@ -1,3 +1,3 @@
1
1
  class SimpleTimeSeries
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -289,21 +289,22 @@ describe SimpleTimeSeries do
289
289
  end
290
290
 
291
291
  it "builds an array of specified arrays with variable names prepended to each array" do
292
- @my_data.data_array('tasks_done', {:prepend_names => true}).
293
- should == [ @my_data.current('tasks_done').unshift('tasks_done') ]
294
292
  @my_data.data_array('tasks_done', {:prepend_names => true}).
295
293
  should == [ ['tasks_done', 2, 3, 0, 14, 3, 11, 0] ]
294
+ @my_data.data_array('miles', 'tasks_done', {:prepend_names => true}).
295
+ should == [ ['miles', 2.2, 3.1, 0.0, 4.3, 1.2, 12.2, 2.3],
296
+ ['tasks_done', 2, 3, 0, 14, 3, 11, 0] ]
296
297
  @my_data.data_array('dates', 'tasks_done', 'pizzas', {:prepend_names => true}).
297
- should == [ @my_data.current('dates').unshift('dates'),
298
- @my_data.current('tasks_done').unshift('tasks_done'),
299
- @my_data.current('pizzas').unshift('pizzas') ]
298
+ should == [ ['dates', '2014-01-01', '2014-01-02', '2014-01-03', '2014-01-04', '2014-01-05', '2014-01-06', '2014-01-07'],
299
+ ['tasks_done', 2, 3, 0, 14, 3, 11, 0],
300
+ ['pizzas', 0, 0, 1, 0, 0.5, 0, 2] ]
300
301
  end
301
302
 
302
303
  it "builds an array of specified arrays subsetted correctly with variable names prepended to each array" do
303
- da = @my_data.data_array('tasks_done', 'pizzas', {:start => 'Monday', :end => 'Friday',
304
- :prepend_names => true})
305
- da[0].should == ['tasks_done', 3, 0, 14, 3, 11]
306
- da[1].should == ['pizzas', 0, 1, 0, 0.5, 0]
304
+ @my_data.data_array('tasks_done', 'pizzas', {:start => 'Monday', :end => 'Friday',
305
+ :prepend_names => true}).
306
+ should == [ ['tasks_done', 3, 0, 14, 3, 11],
307
+ ['pizzas', 0, 1, 0, 0.5, 0] ]
307
308
  #should == [ ['tasks_done', 3, 0, 14, 3, 11], ['pizzas', 0, 1, 0, 0.5, 0] ]
308
309
  #should == [ ['tasks_done', 3, 0, 14, 3, 11], ['pizzas', 0, 1, 0, 0.5, 0] ]
309
310
  #should == [ @my_data.find('tasks_done','Tuesday','Thursday'),
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_time_series
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Lavin