quandl_babelfish 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -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