structure_compare 0.1.5 → 0.1.6
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: c7e3a4d3ba5b971952f4c8b36cbc5625eddeef86
|
4
|
+
data.tar.gz: 696b6e7775ff575315164a84cd4156082f12d369
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6ede945d269bfdebb0eb77783a9a3797d426e0b0198a3b801fd7b076be9790ac2f6116ac6282098b3af3ce5373108abb08a9eaa6af54348b026278a962d450e
|
7
|
+
data.tar.gz: dcead81b09f0223e65cc5a7120cbdf4059ec2c2a085c3170ae3ab4c1178915dbed9ae53b14c04f794e8a8a5e2b14e4fee23b5f4f2d2fe47ec76025ed9dd32fe5
|
@@ -92,16 +92,16 @@ module StructureCompare
|
|
92
92
|
|
93
93
|
if @options[:strict_key_order]
|
94
94
|
if expected_keys != actual_keys
|
95
|
-
not_equal_error!(
|
95
|
+
not_equal_error!(failure_message)
|
96
96
|
end
|
97
97
|
else
|
98
98
|
# NOTE: first did this with sorting, but can't sort mixed type keys
|
99
99
|
all_keys_present = (
|
100
|
-
expected_keys.all?{ |key|
|
101
|
-
actual_keys.all?{ |key|
|
100
|
+
expected_keys.all?{ |key| actual_keys.include?(key) } &&
|
101
|
+
actual_keys.all?{ |key| expected_keys.include?(key) }
|
102
102
|
)
|
103
103
|
if !all_keys_present
|
104
|
-
not_equal_error!(
|
104
|
+
not_equal_error!(failure_message)
|
105
105
|
end
|
106
106
|
end
|
107
107
|
end
|
@@ -113,7 +113,7 @@ module StructureCompare
|
|
113
113
|
def check_kind_of!(expected, actual)
|
114
114
|
unless actual.kind_of?(expected.class)
|
115
115
|
failure_message = "expected #{actual.class.to_s} to be kind of #{expected.class.to_s}"
|
116
|
-
not_equal_error!(
|
116
|
+
not_equal_error!(failure_message)
|
117
117
|
end
|
118
118
|
end
|
119
119
|
|
@@ -128,7 +128,7 @@ module StructureCompare
|
|
128
128
|
|
129
129
|
if !is_equal
|
130
130
|
failure_message ||= "expected: #{expected.inspect}, got: #{actual.inspect}"
|
131
|
-
not_equal_error!(
|
131
|
+
not_equal_error!(failure_message)
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
@@ -142,7 +142,7 @@ module StructureCompare
|
|
142
142
|
end
|
143
143
|
|
144
144
|
# TODO make this part of an overridden exception?
|
145
|
-
def not_equal_error!(
|
145
|
+
def not_equal_error!(failure_message)
|
146
146
|
@error = failure_message
|
147
147
|
raise StructuresNotEqualError.new() # TODO error message, path
|
148
148
|
end
|
@@ -17,6 +17,12 @@ class StructureCompareTest < MiniTest::Test
|
|
17
17
|
assert_structures_equal({a: 1, b: 2}, {b: 2, a: 1})
|
18
18
|
assert_structures_equal({a: 1, b: 2}, {b: 2, a: 1}, strict_key_order: false)
|
19
19
|
refute_structures_equal({a: 1, b: 2}, {b: 2, a: 1}, strict_key_order: true)
|
20
|
+
|
21
|
+
# this was a bug with combining relaxed key order and indifferent access
|
22
|
+
assert_structures_equal(
|
23
|
+
{a: 1, b: 2}, {"b": 2, "a": 1},
|
24
|
+
strict_key_order: false, indifferent_access: true
|
25
|
+
)
|
20
26
|
end
|
21
27
|
|
22
28
|
def test_compares_leaf_value_types
|