cre_property_matcher 0.1.1 → 0.1.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c89f865fd1d890cabf7443696e7df8fce9e8806e
4
- data.tar.gz: 88f94b41f8e8bac3d95cce5948eba52484af5a2a
3
+ metadata.gz: 848c6bb51ab6cff770fb3756b06a24dcc16de1b6
4
+ data.tar.gz: 8fe4827ff2a1a8b77b69c4aa64c25cbeb44dd104
5
5
  SHA512:
6
- metadata.gz: fb6870afb4e23a0790980c0e6202a17efcb1932b0b41f92dcb7152d52ce27c6769d52cfd7aed9cd53c10a2cd90b920998504fd7d3abae2a0e2a2c94352f97ddf
7
- data.tar.gz: d0d9334cc6610b83ec82d10704e1c5eb00a6bd47cb59d9ddb29b68c6e18c6e478ad0ab4c5ee0aac5b197d8c2a14d3e41a0b9a3090a5facbac9a08ef0372be49d
6
+ metadata.gz: 1902b3c1b5637f2034ff9674227dda91e0f0b56d3d2f65c6cea9c9c59364abe050f45d8cb1ffe4e088e1841544dcedb8281501b85adb80b355c25d42dacba2d0
7
+ data.tar.gz: d0818fd6b3442319cc7aa1cfc43e9f38a729c94a37e5689e3b1d8ebbe38a827ecd30c244985ecf26d1847c066b712565714b8f657db1c8e8540ffc4b6a548bb7
@@ -3,11 +3,21 @@ module PropertyDataCalculator
3
3
 
4
4
  def get_average_by_reference_property_state(properties, reference, attribute)
5
5
  state_properties = filter_properties_by_state(properties, reference.state)
6
- values_array = get_attribute_from_properties(state_properties, attribute)
7
- float_average_of_array(values_array)
6
+ get_average_by_attribute(state_properties, attribute)
7
+ end
8
+
9
+ def get_average_by_reference_property_state_and_property_type(properties, reference, attribute)
10
+ state_properties = filter_properties_by_state(properties, reference.state)
11
+ filtered_properties = filter_properties_by_property_type(state_properties, reference.general_property_type)
12
+ get_average_by_attribute(filtered_properties, attribute)
13
+ end
14
+
15
+ def get_average_for_all_by_property_type(properties, attribute, property_type)
16
+ filtered_properties = filter_properties_by_property_type(properties, property_type)
17
+ get_average_by_attribute(filtered_properties, attribute)
8
18
  end
9
19
 
10
- def get_average_for_all(properties, attribute)
20
+ def get_average_by_attribute(properties, attribute)
11
21
  values_array = get_attribute_from_properties(properties, attribute)
12
22
  float_average_of_array(values_array)
13
23
  end
@@ -20,6 +30,12 @@ module PropertyDataCalculator
20
30
  end
21
31
  end
22
32
 
33
+ def filter_properties_by_property_type(properties, property_type)
34
+ properties.select do |property|
35
+ property.general_property_type == property_type
36
+ end
37
+ end
38
+
23
39
  def normalize_state(state)
24
40
  if state.nil?
25
41
  "nothing"
@@ -1,3 +1,3 @@
1
1
  module CrePropertyMatcher
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -6,25 +6,36 @@ class TestPropertyDataCalculator < Minitest::Test
6
6
  include PropertyDataCalculator
7
7
 
8
8
  def setup
9
+ @reference = Property.new({noi: 1, ncf: 2, uw_expenses: 3, uw_revenue: 4, state: "OH", general_property_type: "Retail"})
9
10
  @properties = []
10
11
 
11
12
  states_array = ["OH", "OH", "NJ", "CT", "OH"]
13
+ property_type_array = ["Retail", "Office", "Manufactured Housing", "Retail", "Office"]
12
14
 
13
15
  [1,2,3,4,5].each do |n|
14
- @properties << Property.new({noi: n, ncf: n, uw_expenses: n, uw_revenue: n, state: states_array[n - 1]})
16
+ @properties << Property.new({noi: n, ncf: n, uw_expenses: n, uw_revenue: n, state: states_array[n - 1], general_property_type: property_type_array[n - 1]})
15
17
  end
16
18
 
17
19
  @properties
18
20
  end
19
21
 
20
22
  def test_get_average_for_all
21
- result = get_average_for_all(@properties, "noi")
22
- assert_equal 3, result
23
+ result = get_average_for_all_by_property_type(@properties, "noi", "Retail")
24
+ assert_equal 2.5, result
23
25
  end
24
26
 
25
27
  def test_get_average_by_reference_property_state
26
- reference = {noi: 1, ncf: 2, uw_expenses: 3, uw_revenue: 4, state: "OH"}
27
- result = get_average_by_reference_property_state(@properties, Property.new(reference), "noi")
28
+ result = get_average_by_reference_property_state(@properties, @reference, "noi")
28
29
  assert_equal (8/3.0), result
29
30
  end
31
+
32
+ def test_get_average_by_attribute
33
+ result = get_average_by_attribute(@properties, "noi")
34
+ assert_equal 3.0, result
35
+ end
36
+
37
+ def test_get_average_by_reference_property_state_and_property_type
38
+ result = get_average_by_reference_property_state_and_property_type(@properties, @reference, "noi")
39
+ assert_equal 1.0, result
40
+ end
30
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cre_property_matcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brad Arner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-17 00:00:00.000000000 Z
11
+ date: 2015-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler