Skip to content

Commit 9c0352c

Browse files
committed
Fix
1 parent 9f11980 commit 9c0352c

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

deepdiff/diff.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -906,7 +906,7 @@ def _diff_iterable_in_order(self, level, parents_ids=frozenset(), _original_type
906906
child_relationship_class=child_relationship_class,
907907
local_tree=local_tree_pass2,
908908
)
909-
if len(local_tree_pass) >= len(local_tree_pass2):
909+
if len(local_tree_pass) > len(local_tree_pass2):
910910
local_tree_pass = local_tree_pass2
911911
else:
912912
self._iterable_opcodes[level.path(force=FORCE_DEFAULT)] = opcodes_with_values
@@ -1071,6 +1071,8 @@ def _diff_ordered_iterable_by_difflib(
10711071
and opcode_a.new_values == opcode_b.old_values
10721072
and len(opcode_a.old_values or []) == len(opcode_b.old_values or [])
10731073
):
1074+
# Mark both opcodes as consumed before any further processing
1075+
used.update({i, j})
10741076
length = len(opcode_a.old_values or [])
10751077
for offset in range(length):
10761078
val_a = opcode_a.old_values[offset]
@@ -1095,7 +1097,6 @@ def _diff_ordered_iterable_by_difflib(
10951097
)
10961098
self._report_result('iterable_item_moved', change_level, local_tree=local_tree)
10971099

1098-
used.update({i, j})
10991100
break
11001101

11011102
for idx, opcode in enumerate(replace_opcodes):

tests/test_diff_text.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1824,9 +1824,9 @@ def test_item_moved(self):
18241824
t2 = [4, 2, 3, 1]
18251825
diff = DeepDiff(t1, t2, verbose_level=2)
18261826
result = {
1827-
'values_changed': {
1828-
'root[0]': {'new_value': 4, 'old_value': 1},
1829-
'root[3]': {'new_value': 1, 'old_value': 4},
1827+
'iterable_item_moved': {
1828+
'root[0]': {'new_path': 'root[3]', 'value': 1},
1829+
'root[3]': {'new_path': 'root[0]', 'value': 4},
18301830
}
18311831
}
18321832
assert result == diff

0 commit comments

Comments
 (0)