Skip to content

Commit be3bf27

Browse files
committed
adding more tests
1 parent 7b22265 commit be3bf27

File tree

2 files changed

+69
-31
lines changed

2 files changed

+69
-31
lines changed

deepdiff/diff.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -879,9 +879,10 @@ def _get_most_in_common_pairs_in_iterables(
879879
if id(removed_hash_obj.item) in parents_ids:
880880
continue
881881

882+
_distance = None
882883
if pre_calced_distances:
883-
_distance = pre_calced_distances["{}--{}".format(added_hash, removed_hash)]
884-
else:
884+
_distance = pre_calced_distances.get("{}--{}".format(added_hash, removed_hash))
885+
if _distance is None:
885886
_distance = self._get_rough_distance_of_hashed_objs(
886887
added_hash, removed_hash, added_hash_obj, removed_hash_obj, _original_type)
887888
# Left for future debugging

tests/test_ignore_order.py

Lines changed: 66 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -783,28 +783,6 @@ def test_ignore_order_and_group_by(self):
783783

784784
class TestCompareFuncIgnoreOrder:
785785

786-
EXPECTED = {
787-
'values_changed': {
788-
"root[2]['id']": {
789-
'new_value': 2,
790-
'old_value': 3
791-
},
792-
"root[1]['id']": {
793-
'new_value': 3,
794-
'old_value': 2
795-
}
796-
}
797-
}
798-
799-
EXPECTED_WITH_COMPARE_FUNC = {
800-
'iterable_item_added': {
801-
"root[2]['value'][2]": 1
802-
},
803-
'iterable_item_removed': {
804-
"root[1]['value'][2]": 1
805-
}
806-
}
807-
808786
def test_ignore_order_with_compare_func_to_guide_comparison(self):
809787
t1 = [
810788
{
@@ -836,9 +814,31 @@ def test_ignore_order_with_compare_func_to_guide_comparison(self):
836814
},
837815
]
838816

817+
expected = {
818+
'values_changed': {
819+
"root[2]['id']": {
820+
'new_value': 2,
821+
'old_value': 3
822+
},
823+
"root[1]['id']": {
824+
'new_value': 3,
825+
'old_value': 2
826+
}
827+
}
828+
}
829+
830+
expected_with_compare_func = {
831+
'iterable_item_added': {
832+
"root[2]['value'][2]": 1
833+
},
834+
'iterable_item_removed': {
835+
"root[1]['value'][2]": 1
836+
}
837+
}
838+
839839
ddiff = DeepDiff(t1, t2, ignore_order=True)
840840

841-
assert self.EXPECTED == ddiff
841+
assert expected == ddiff
842842

843843
def compare_func(x, y, level=None):
844844
try:
@@ -847,12 +847,12 @@ def compare_func(x, y, level=None):
847847
raise CannotCompare() from None
848848

849849
ddiff2 = DeepDiff(t1, t2, ignore_order=True, iterable_compare_func=compare_func)
850-
assert self.EXPECTED_WITH_COMPARE_FUNC == ddiff2
850+
assert expected_with_compare_func == ddiff2
851851
assert ddiff != ddiff2
852852

853853
def test_ignore_order_with_compare_func_can_throw_cannot_compare(self):
854854
t1 = [
855-
{},
855+
{1},
856856
{
857857
'id': 2,
858858
'value': [7, 8, 1]
@@ -875,15 +875,52 @@ def test_ignore_order_with_compare_func_can_throw_cannot_compare(self):
875875
{},
876876
]
877877

878-
ddiff = DeepDiff(t1, t2, ignore_order=True)
879-
assert self.EXPECTED == ddiff
878+
expected = {
879+
'type_changes': {
880+
'root[0]': {
881+
'old_type': set,
882+
'new_type': dict,
883+
'old_value': {1},
884+
'new_value': {}
885+
}
886+
},
887+
'values_changed': {
888+
"root[2]['id']": {
889+
'new_value': 2,
890+
'old_value': 3
891+
},
892+
"root[1]['id']": {
893+
'new_value': 3,
894+
'old_value': 2
895+
}
896+
}
897+
}
898+
expected_with_compare_func = {
899+
'type_changes': {
900+
'root[0]': {
901+
'old_type': set,
902+
'new_type': dict,
903+
'old_value': {1},
904+
'new_value': {}
905+
}
906+
},
907+
'iterable_item_added': {
908+
"root[2]['value'][2]": 1
909+
},
910+
'iterable_item_removed': {
911+
"root[1]['value'][2]": 1
912+
}
913+
}
914+
915+
ddiff = DeepDiff(t1, t2, cutoff_intersection_for_pairs=1, cutoff_distance_for_pairs=1, ignore_order=True)
916+
assert expected == ddiff
880917

881918
def compare_func(x, y, level=None):
882919
try:
883920
return x['id'] == y['id']
884921
except Exception:
885922
raise CannotCompare() from None
886923

887-
ddiff2 = DeepDiff(t1, t2, ignore_order=True, iterable_compare_func=compare_func)
888-
assert self.EXPECTED_WITH_COMPARE_FUNC == ddiff2
924+
ddiff2 = DeepDiff(t1, t2, ignore_order=True, cutoff_intersection_for_pairs=1, cutoff_distance_for_pairs=1, iterable_compare_func=compare_func)
925+
assert expected_with_compare_func == ddiff2
889926
assert ddiff != ddiff2

0 commit comments

Comments
 (0)