quandl_babelfish 0.0.6 → 0.0.7

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,45 @@
1
+ require 'spec_helper'
2
+ include Quandl::Babelfish
3
+ describe Helper do
4
+
5
+ before(:each) do
6
+ @square_table = [
7
+ [1,2,3],
8
+ [4,5,6],
9
+ [7,8,9]
10
+ ]
11
+ end
12
+
13
+ it 'should square an already square table' do
14
+ Helper::make_square(@square_table).should == @square_table
15
+ end
16
+
17
+ it 'should square an empty table' do
18
+ Helper::make_square([]).should == []
19
+ end
20
+
21
+ it 'should square a single cell table' do
22
+ Helper::make_square([[1]]).should == [[1]]
23
+ end
24
+
25
+ it 'should square a single row table' do
26
+ Helper::make_square([[1,2,3]]).should == [[1,2,3]]
27
+ end
28
+
29
+ it 'should square a nil row table' do
30
+ Helper::make_square([[], [1,2,3]]).should == [[nil,nil,nil], [1,2,3]]
31
+ end
32
+
33
+ it 'should square a nil row table at end too' do
34
+ Helper::make_square([[1,2,3], []]).should == [[1,2,3], [nil,nil,nil]]
35
+ end
36
+
37
+ it 'should square a variable row table' do
38
+ Helper::make_square([[1], [1,2,3], [1,2]]).should == [[1,nil,nil], [1,2,3], [1,2,nil]]
39
+ end
40
+
41
+ it 'should square messy table' do
42
+ Helper::make_square([[1],[],[1,2,3],[1],[1],[1,2,3,4,5,6]]).should == [[1,nil,nil,nil,nil,nil], [nil,nil,nil,nil,nil,nil], [1,2,3,nil,nil,nil], [1,nil,nil,nil,nil,nil], [1,nil,nil,nil,nil,nil], [1,2,3,4,5,6]]
43
+ end
44
+
45
+ end
@@ -1,126 +1,126 @@
1
- require 'spec_helper'
2
-
3
- include Quandl::Babelfish
4
- describe NumberMaid do
5
-
6
- it "should handle '1.432,32' i.e. 1432.32 in Canadian format" do
7
- NumberMaid::init(:decimal_mark => ',')
8
- NumberMaid::clean('1.432,32').should == 1432.32
9
- NumberMaid::init({}) #reset settings
10
- end
11
-
12
- it "should remove spaces that act as 000 separators" do
13
- NumberMaid::clean('12 345').should == 12345
14
- end
15
-
16
- it "should accept commas that act as 000 separators" do
17
- NumberMaid::clean('12,345').should == 12345
18
- end
19
-
20
- it "should handle scientific notation" do
21
- NumberMaid::clean('2.1e2').should == 210
22
- NumberMaid::clean('2.1 E 2').should == 210
23
- NumberMaid::clean('2.1 E+2').should == 210
24
- NumberMaid::clean('210 E -2').should == 2.1
25
- NumberMaid::clean('2.1 e +2').should == 210
26
- NumberMaid::clean('2.1*10^2').should == 210
27
- NumberMaid::clean('2.1 X102').should == 210
28
- NumberMaid::clean('sci not: -2.1 * 10 2 Ghz').should == -210
29
- end
30
-
31
- it "should mulitiply number if cell contains million or billion" do
32
- NumberMaid::clean('35 million').should == 35000000
33
- NumberMaid::clean('42 billion').should == 42000000000
34
- end
35
-
36
- it "should handle a plain integer" do
37
- NumberMaid::clean('1').should == 1
38
- end
39
-
40
- it "should handle a plain negative integer" do
41
- NumberMaid::clean('-1').should == -1
42
- NumberMaid::clean('(1)').should == -1
43
- end
44
-
45
- it "should handle a plain float" do
46
- NumberMaid::clean('1.1').should == 1.1
47
- end
48
-
49
- it "should handle a plain negative float" do
50
- NumberMaid::clean('-1.1').should == -1.1
51
- NumberMaid::clean('(1.1)').should == -1.1
52
- end
53
-
54
- it "should ignore extraneous characters" do
55
- NumberMaid::clean('a1.1a').should == 1.1
56
- NumberMaid::clean('And the answer is 1.1').should == 1.1
57
- NumberMaid::clean('1.1 for the win').should == 1.1
58
- NumberMaid::clean('1.1%').should == 1.1
59
- NumberMaid::clean('-1.1%').should == -1.1
60
- NumberMaid::clean('(1.1%)').should == -1.1
61
- NumberMaid::clean('[1.1%]').should == 1.1
62
- NumberMaid::clean('/1.1%/').should == 1.1
63
- NumberMaid::clean('{1.1%}').should == 1.1
64
- NumberMaid::clean('1.1Ghz').should == 1.1
65
- NumberMaid::clean('(1.1Ghz)').should == -1.1
66
- end
67
-
68
- it 'should get nothing' do
69
- NumberMaid::clean('').should be_nil
70
- NumberMaid::clean('super').should be_nil
71
- NumberMaid::clean('This is great. And then she said...').should be_nil
72
- NumberMaid::clean(' ').should be_nil
73
- NumberMaid::clean('.').should be_nil
74
- NumberMaid::clean('*').should be_nil
75
- NumberMaid::clean('(not a number dude)').should be_nil
76
- NumberMaid::clean('(O.OO)').should be_nil
77
- NumberMaid::clean('#!!@#$%.^&*())').should be_nil # The cartoon swear test
78
- end
79
-
80
- it "should handle this stupid one: '(A1) 249.34' " do
81
- NumberMaid::clean('(A1) 234.3').should == 234.3
82
- NumberMaid::clean('234.3{3}').should == 234.3
83
- NumberMaid::clean('234.3[yes]').should == 234.3
84
- NumberMaid::clean('(234.3)').should == -234.3
85
- NumberMaid::clean('est. 32.8').should == 32.8
86
- NumberMaid::clean('(a6) 9,008').should == 9008
87
- end
88
-
89
- it "should handle: '32.4/66.2'" do
90
- NumberMaid::clean('32.4/18.8').should == 32.4
91
- NumberMaid::clean('32.4 / 18.8').should == 32.4
92
- NumberMaid::clean('32.4 to 18.8').should == 32.4
93
- NumberMaid::clean('273.1/281.7').should == 273.1
94
- NumberMaid::clean('1,013/1,026').should == 1013
95
- NumberMaid::clean('1,013/1,026').should == 1013
96
- NumberMaid::clean('~14,508/14,512').should == 14508
97
- end
98
-
99
- it "should convert many numbers" do
100
- numbers = [2011,'2012*[123]',2013,2014]
101
-
102
- numbers = NumberMaid::clean(numbers)
103
- numbers.length.should == 4
104
- numbers[0].should == 2011
105
- numbers[1].should == 2012
106
- numbers[2].should == 2013
107
- numbers[3].should == 2014
108
- end
109
-
110
- it "should leave nil's for invalid cells" do
111
- numbers = [2011,2012,'abcdef',2014]
112
- numbers = NumberMaid::clean(numbers)
113
- numbers.length.should == 4
114
- numbers[0].should == 2011
115
- numbers[1].should == 2012
116
- numbers[2].should be_nil
117
- numbers[3].should == 2014
118
-
119
- end
120
-
121
- it "should handle crazy long decimals" do
122
- numbers = NumberMaid::clean('0.12345678901234567890')
123
- numbers.should == 0.12345678901235
124
- end
125
-
126
- end
1
+ require 'spec_helper'
2
+
3
+ include Quandl::Babelfish
4
+ describe NumberMaid do
5
+
6
+ it "should handle '1.432,32' i.e. 1432.32 in Canadian format" do
7
+ NumberMaid::init(:decimal_mark => ',')
8
+ NumberMaid::clean('1.432,32').should == 1432.32
9
+ NumberMaid::init({}) #reset settings
10
+ end
11
+
12
+ it "should remove spaces that act as 000 separators" do
13
+ NumberMaid::clean('12 345').should == 12345
14
+ end
15
+
16
+ it "should accept commas that act as 000 separators" do
17
+ NumberMaid::clean('12,345').should == 12345
18
+ end
19
+
20
+ it "should handle scientific notation" do
21
+ NumberMaid::clean('2.1e2').should == 210
22
+ NumberMaid::clean('2.1 E 2').should == 210
23
+ NumberMaid::clean('2.1 E+2').should == 210
24
+ NumberMaid::clean('210 E -2').should == 2.1
25
+ NumberMaid::clean('2.1 e +2').should == 210
26
+ NumberMaid::clean('2.1*10^2').should == 210
27
+ NumberMaid::clean('2.1 X102').should == 210
28
+ NumberMaid::clean('sci not: -2.1 * 10 2 Ghz').should == -210
29
+ end
30
+
31
+ it "should mulitiply number if cell contains million or billion" do
32
+ NumberMaid::clean('35 million').should == 35000000
33
+ NumberMaid::clean('42 billion').should == 42000000000
34
+ end
35
+
36
+ it "should handle a plain integer" do
37
+ NumberMaid::clean('1').should == 1
38
+ end
39
+
40
+ it "should handle a plain negative integer" do
41
+ NumberMaid::clean('-1').should == -1
42
+ NumberMaid::clean('(1)').should == -1
43
+ end
44
+
45
+ it "should handle a plain float" do
46
+ NumberMaid::clean('1.1').should == 1.1
47
+ end
48
+
49
+ it "should handle a plain negative float" do
50
+ NumberMaid::clean('-1.1').should == -1.1
51
+ NumberMaid::clean('(1.1)').should == -1.1
52
+ end
53
+
54
+ it "should ignore extraneous characters" do
55
+ NumberMaid::clean('a1.1a').should == 1.1
56
+ NumberMaid::clean('And the answer is 1.1').should == 1.1
57
+ NumberMaid::clean('1.1 for the win').should == 1.1
58
+ NumberMaid::clean('1.1%').should == 1.1
59
+ NumberMaid::clean('-1.1%').should == -1.1
60
+ NumberMaid::clean('(1.1%)').should == -1.1
61
+ NumberMaid::clean('[1.1%]').should == 1.1
62
+ NumberMaid::clean('/1.1%/').should == 1.1
63
+ NumberMaid::clean('{1.1%}').should == 1.1
64
+ NumberMaid::clean('1.1Ghz').should == 1.1
65
+ NumberMaid::clean('(1.1Ghz)').should == -1.1
66
+ end
67
+
68
+ it 'should get nothing' do
69
+ NumberMaid::clean('').should be_nil
70
+ NumberMaid::clean('super').should be_nil
71
+ NumberMaid::clean('This is great. And then she said...').should be_nil
72
+ NumberMaid::clean(' ').should be_nil
73
+ NumberMaid::clean('.').should be_nil
74
+ NumberMaid::clean('*').should be_nil
75
+ NumberMaid::clean('(not a number dude)').should be_nil
76
+ NumberMaid::clean('(O.OO)').should be_nil
77
+ NumberMaid::clean('#!!@#$%.^&*())').should be_nil # The cartoon swear test
78
+ end
79
+
80
+ it "should handle this stupid one: '(A1) 249.34' " do
81
+ NumberMaid::clean('(A1) 234.3').should == 234.3
82
+ NumberMaid::clean('234.3{3}').should == 234.3
83
+ NumberMaid::clean('234.3[yes]').should == 234.3
84
+ NumberMaid::clean('(234.3)').should == -234.3
85
+ NumberMaid::clean('est. 32.8').should == 32.8
86
+ NumberMaid::clean('(a6) 9,008').should == 9008
87
+ end
88
+
89
+ it "should handle: '32.4/66.2'" do
90
+ NumberMaid::clean('32.4/18.8').should == 32.4
91
+ NumberMaid::clean('32.4 / 18.8').should == 32.4
92
+ NumberMaid::clean('32.4 to 18.8').should == 32.4
93
+ NumberMaid::clean('273.1/281.7').should == 273.1
94
+ NumberMaid::clean('1,013/1,026').should == 1013
95
+ NumberMaid::clean('1,013/1,026').should == 1013
96
+ NumberMaid::clean('~14,508/14,512').should == 14508
97
+ end
98
+
99
+ it "should convert many numbers" do
100
+ numbers = [2011,'2012*[123]',2013,2014]
101
+
102
+ numbers = NumberMaid::clean(numbers)
103
+ numbers.length.should == 4
104
+ numbers[0].should == 2011
105
+ numbers[1].should == 2012
106
+ numbers[2].should == 2013
107
+ numbers[3].should == 2014
108
+ end
109
+
110
+ it "should leave nil's for invalid cells" do
111
+ numbers = [2011,2012,'abcdef',2014]
112
+ numbers = NumberMaid::clean(numbers)
113
+ numbers.length.should == 4
114
+ numbers[0].should == 2011
115
+ numbers[1].should == 2012
116
+ numbers[2].should be_nil
117
+ numbers[3].should == 2014
118
+
119
+ end
120
+
121
+ it "should handle crazy long decimals" do
122
+ numbers = NumberMaid::clean('0.12345678901234567890')
123
+ numbers.should == 0.12345678901235
124
+ end
125
+
126
+ end
@@ -1,15 +1,15 @@
1
- require 'spec_helper'
2
-
3
- include Quandl
4
- describe Babelfish do
5
-
6
- it 'should run gem' do
7
- input=[[1990,1,2,3],[1991,4,5,6]]
8
- output, headers = Babelfish::clean input
9
- output[0][0].should ==Date.new(1990,12,31)
10
- output[0][1].should ==1
11
- output[1][0].should ==Date.new(1991,12,31)
12
- output[1][3].should ==6
13
- end
14
-
15
- end
1
+ require 'spec_helper'
2
+
3
+ include Quandl
4
+ describe Babelfish do
5
+
6
+ it 'should run gem' do
7
+ input=[[1990,1,2,3],[1991,4,5,6]]
8
+ output, headers = Babelfish::clean input
9
+ output[0][0].should ==Date.new(1990,12,31)
10
+ output[0][1].should ==1
11
+ output[1][0].should ==Date.new(1991,12,31)
12
+ output[1][3].should ==6
13
+ end
14
+
15
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,13 +1,13 @@
1
- $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
2
-
3
- require 'pry'
4
- require "rspec"
5
- require 'quandl/babelfish'
6
-
7
- # require support
8
- Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
9
-
10
- RSpec.configure do |config|
11
- config.treat_symbols_as_metadata_keys_with_true_values = true
12
- config.mock_with :rspec
1
+ $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
2
+
3
+ require 'pry'
4
+ require "rspec"
5
+ require 'quandl/babelfish'
6
+
7
+ # require support
8
+ Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+ config.treat_symbols_as_metadata_keys_with_true_values = true
12
+ config.mock_with :rspec
13
13
  end
@@ -1,32 +1,32 @@
1
- RSpec::Matchers.define :be_eq_at_index do |index, expected|
2
- match do |actual|
3
- # value should eq expectation
4
- actual_value_with_index(actual, index) == expected
5
- end
6
-
7
- failure_message_for_should do |actual|
8
- "expected that #{actual_value_with_index(actual, index)} would eq #{expected}"
9
- end
10
-
11
- failure_message_for_should_not do |actual|
12
- "expected that #{actual_value_with_index(actual, index)} would eq #{expected}"
13
- end
14
-
15
- description do
16
- "be eq to #{expected} for array at index #{index}"
17
- end
18
-
19
- def actual_value_with_index(actual, index)
20
- # split string index into keys
21
- indexes = index.to_s.split(']').collect{|v| v.gsub('[','') }
22
- # convert indexes to integers if this is an array
23
- indexes = indexes.collect(&:to_i) if actual.is_a?(Array)
24
- # apply indexes to value
25
- value = actual
26
- indexes.each do |i|
27
- value = value.send(:[], i)
28
- end
29
- value
30
- end
31
-
1
+ RSpec::Matchers.define :be_eq_at_index do |index, expected|
2
+ match do |actual|
3
+ # value should eq expectation
4
+ actual_value_with_index(actual, index) == expected
5
+ end
6
+
7
+ failure_message_for_should do |actual|
8
+ "expected that #{actual_value_with_index(actual, index)} would eq #{expected}"
9
+ end
10
+
11
+ failure_message_for_should_not do |actual|
12
+ "expected that #{actual_value_with_index(actual, index)} would eq #{expected}"
13
+ end
14
+
15
+ description do
16
+ "be eq to #{expected} for array at index #{index}"
17
+ end
18
+
19
+ def actual_value_with_index(actual, index)
20
+ # split string index into keys
21
+ indexes = index.to_s.split(']').collect{|v| v.gsub('[','') }
22
+ # convert indexes to integers if this is an array
23
+ indexes = indexes.collect(&:to_i) if actual.is_a?(Array)
24
+ # apply indexes to value
25
+ value = actual
26
+ indexes.each do |i|
27
+ value = value.send(:[], i)
28
+ end
29
+ value
30
+ end
31
+
32
32
  end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quandl_babelfish
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Sergei Ryshkevich
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-01-22 00:00:00.000000000 Z
12
+ date: 2014-01-23 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rspec
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
@@ -27,15 +30,17 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: pry
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: '0'
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - '>='
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: '0'
41
46
  description: Quandl Data Cleaner
@@ -55,6 +60,7 @@ files:
55
60
  - lib/quandl/babelfish/chronometer.rb
56
61
  - lib/quandl/babelfish/cleaner.rb
57
62
  - lib/quandl/babelfish/date_maid.rb
63
+ - lib/quandl/babelfish/helper.rb
58
64
  - lib/quandl/babelfish/number_maid.rb
59
65
  - lib/quandl/babelfish/version.rb
60
66
  - lib/quandl/error/guess_date_format.rb
@@ -65,6 +71,7 @@ files:
65
71
  - spec/lib/quandl/babelfish/chronometer_spec.rb
66
72
  - spec/lib/quandl/babelfish/cleaner_spec.rb
67
73
  - spec/lib/quandl/babelfish/date_maid_spec.rb
74
+ - spec/lib/quandl/babelfish/helper_spec.rb
68
75
  - spec/lib/quandl/babelfish/number_maid_spec.rb
69
76
  - spec/lib/quandl/babelfish_spec.rb
70
77
  - spec/spec_helper.rb
@@ -72,32 +79,26 @@ files:
72
79
  homepage: http://quandl.com/
73
80
  licenses:
74
81
  - MIT
75
- metadata: {}
76
82
  post_install_message:
77
83
  rdoc_options: []
78
84
  require_paths:
79
85
  - lib
80
86
  required_ruby_version: !ruby/object:Gem::Requirement
87
+ none: false
81
88
  requirements:
82
- - - '>='
89
+ - - ! '>='
83
90
  - !ruby/object:Gem::Version
84
91
  version: '0'
85
92
  required_rubygems_version: !ruby/object:Gem::Requirement
93
+ none: false
86
94
  requirements:
87
- - - '>='
95
+ - - ! '>='
88
96
  - !ruby/object:Gem::Version
89
97
  version: '0'
90
98
  requirements: []
91
99
  rubyforge_project:
92
- rubygems_version: 2.1.10
100
+ rubygems_version: 1.8.24
93
101
  signing_key:
94
- specification_version: 4
102
+ specification_version: 3
95
103
  summary: Quandl Data Cleaner
96
- test_files:
97
- - spec/lib/quandl/babelfish/chronometer_spec.rb
98
- - spec/lib/quandl/babelfish/cleaner_spec.rb
99
- - spec/lib/quandl/babelfish/date_maid_spec.rb
100
- - spec/lib/quandl/babelfish/number_maid_spec.rb
101
- - spec/lib/quandl/babelfish_spec.rb
102
- - spec/spec_helper.rb
103
- - spec/support/matchers/be_eq_at_index.rb
104
+ test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 30e1ec77b75eed3bc2b3be144ff782fa873f2e29
4
- data.tar.gz: 6dd9ada8a25d09604ea51cb5ef4e5e02dc500f2c
5
- SHA512:
6
- metadata.gz: 49ab0ab69e7023843dc2309220df05f778774d6c6060afc3f330b82bf981c3c208e4cc3b5f61c0d849174a8e10c03176c67854ba1b56af8145c9cf496231f84d
7
- data.tar.gz: fa8027cb6a693b7362575f60bc022998997b2ff3367c61c5a8cb9d2895a14932cce2a27eccbead473b9bec7ae1e6978276d770faace7a29f9b95c467363060cd