excel_functions 0.0.3 → 0.0.4

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,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: