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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 848c6bb51ab6cff770fb3756b06a24dcc16de1b6
|
4
|
+
data.tar.gz: 8fe4827ff2a1a8b77b69c4aa64c25cbeb44dd104
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
7
|
-
|
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
|
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"
|
@@ -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 =
|
22
|
-
assert_equal
|
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
|
-
|
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.
|
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-
|
11
|
+
date: 2015-01-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|