excel_functions 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YjVlMWMzZTlkYzhhYjM4MTMwYjI2MDQ2OWY5ODQ1ZDQ5ZTNmZDg4Yw==
5
+ data.tar.gz: !binary |-
6
+ YjhiYTNlNzVmMmM0NTlkYjFmZDRmZDIyZGQ5NmY5NjA4N2EwZmM0Yw==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ OTIzY2RiYjVkMjAwZWRjMjMyYWFlN2I4YjQ2NzJjOTFiNTYxY2MyZWM5ZTg3
10
+ NDk5MTAwMTFjMTRhNjE0ZTMxYjliNjUzMjk1MzY2MGU2YzM3OWZlY2FiNGMx
11
+ NjliNTE5YWE0NGI5ZTA1YmU0NmUyYzU4YTMzNGNiYzgyNDQ1ZWY=
12
+ data.tar.gz: !binary |-
13
+ MWQ0MmIxMTU0YjVhYjJiNzExZDIzMjZmZjVlNWQzYjg5OTdhMjRhODY4Mjc2
14
+ ZjZlZjU4MDk1ODRiYzYxNDA1NzJkODg1OWQ3ZWUyZmY0ZDk3OGEwNGQzNTQ3
15
+ OTU0OTdkMWY5ODc0ZDBmN2M4ZDcxZmE3YTIzODNjMzNjNWM0ZGQ=
@@ -18,12 +18,11 @@ module ExcelFunctions
18
18
 
19
19
  lookup_array = lookup_array.map{|arr| Array(arr)[0]}
20
20
 
21
-
22
- raise "lookup_array must be sorted" unless lookup_array.sort == lookup_array #better way to check sorted?
23
-
24
21
  index = lookup_array.find_index(value)
25
22
  return output_array[index] if index
26
23
 
24
+ #raise only after exact check fails, we only need sorted for approx lookup
25
+ raise "lookup_array must be sorted" unless lookup_array.sort == lookup_array #better way to check sorted?
27
26
 
28
27
  first_greater_index = lookup_array.find_index{|look| look > value} || lookup_array.count
29
28
  less_than_index = first_greater_index - 1
@@ -1,3 +1,3 @@
1
1
  module ExcelFunctions
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -15,26 +15,35 @@ describe Excel do
15
15
  end
16
16
  describe "Lookup" do
17
17
  #should this be 3 it blocks?
18
- it "performs lookup correctly" do
19
- input_arr = [0,0.05,0.1,0.15]
20
- output_arr = ["a","b","c","d"]
21
- tests = [
18
+ let(:input_arr){[0,0.05,0.1,0.15]}
19
+ let(:output_arr){["a","b","c","d"]}
20
+ let(:tests){[
22
21
  [0, "a"],
23
22
  [0.1, "c"],
24
23
  [0.12, "c"],
25
24
  [1, "d"],
26
25
  [-1, nil]
27
- ]
26
+ ]}
27
+ it "performs lookup correctly with 2 arrays" do
28
28
  #2 arrays
29
29
  tests.each do |(value, result)|
30
30
  expect(Excel.lookup(value,input_arr, output_arr)).to be_eql(result)
31
31
  end
32
+ end
33
+ it "performs lookup correctly with 1 array" do
32
34
  #single array
33
35
  tests.each do |(value, result)|
34
36
  expect(Excel.lookup(value,input_arr.zip(output_arr))).to be_eql(result)
35
37
  end
38
+ end
36
39
 
37
- expect{Excel.lookup(0.1,input_arr.reverse,output_arr)}.to raise_error
40
+ context "Unsorted arrays" do
41
+ it "raises error if unsorted and rough match" do
42
+ expect{Excel.lookup(0.11,input_arr.reverse,output_arr)}.to raise_error
43
+ end
44
+ it "doesnt raise error if unsorted but has exact match" do
45
+ expect{Excel.lookup(0.1,input_arr.reverse,output_arr)}.to_not raise_error
46
+ end
38
47
  end
39
48
  end
40
49
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: excel_functions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 0.0.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Karthik T
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-01-29 00:00:00.000000000 Z
11
+ date: 2014-03-14 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rspec
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ! '>='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ! '>='
60
53
  - !ruby/object:Gem::Version
@@ -81,28 +74,26 @@ files:
81
74
  homepage: https://github.com/ktaragorn/excel_functions
82
75
  licenses:
83
76
  - MIT
77
+ metadata: {}
84
78
  post_install_message:
85
79
  rdoc_options: []
86
80
  require_paths:
87
81
  - lib
88
82
  required_ruby_version: !ruby/object:Gem::Requirement
89
- none: false
90
83
  requirements:
91
84
  - - ! '>='
92
85
  - !ruby/object:Gem::Version
93
86
  version: '0'
94
87
  required_rubygems_version: !ruby/object:Gem::Requirement
95
- none: false
96
88
  requirements:
97
89
  - - ! '>='
98
90
  - !ruby/object:Gem::Version
99
91
  version: '0'
100
92
  requirements: []
101
93
  rubyforge_project:
102
- rubygems_version: 1.8.23
94
+ rubygems_version: 2.0.5
103
95
  signing_key:
104
- specification_version: 3
96
+ specification_version: 4
105
97
  summary: This gem can be used if you need to reverse engineer any excel spreadsheets.
106
98
  test_files:
107
99
  - spec/excelfunctions_spec.rb
108
- has_rdoc: