def test_ignore_order_depth5(self): t1 = [4, 2, 2, 1] t2 = [4, 1, 1, 1] ddiff = DeepDiff(t1, t2, ignore_order=True, report_repetition=True, cache_purge_level=0) expected = { 'iterable_item_removed': { 'root[1]': 2, 'root[2]': 2 }, 'repetition_change': { 'root[3]': { 'old_repeat': 1, 'new_repeat': 3, 'old_indexes': [3], 'new_indexes': [1, 2, 3], 'value': 1 } } } assert expected == ddiff ddiff = DeepDiff(t1, t2, ignore_order=True, report_repetition=False, cache_purge_level=0) dist = ddiff._get_rough_distance() assert 0.1 == dist
def test_distance_of_the_same_objects(self): t1 = [{1, 2, 3}, {4, 5, 6}] t2 = [{4, 5, 6}, {1, 2, 3}] ddiff = DeepDiff(t1, t2, ignore_order=True, cache_purge_level=0) assert {} == ddiff assert 0 == _get_item_length(ddiff) assert '0' == str(ddiff._get_rough_distance())[:10] assert 9 == ddiff._DistanceMixin__get_item_rough_length(ddiff.t1) assert 9 == ddiff._DistanceMixin__get_item_rough_length(ddiff.t2)
def test_distance_of_list_sets(self): t1 = [{1, 2, 3}, {4, 5}] t2 = [{4, 5, 6}, {1, 2, 3}] ddiff = DeepDiff(t1, t2, ignore_order=True, cache_purge_level=0) delta = ddiff._to_delta_dict(report_repetition_required=False) assert {'set_item_added': {'root[1]': {6}}} == delta assert 1 == _get_item_length(ddiff) assert '0.05882352' == str(ddiff._get_rough_distance())[:10] assert 8 == ddiff._DistanceMixin__get_item_rough_length(ddiff.t1) assert 9 == ddiff._DistanceMixin__get_item_rough_length(ddiff.t2)
def test_get_rough_length_after_cache_purge(self): diff = DeepDiff([1], ['a']) with pytest.raises(RuntimeError) as excinfo: diff._get_rough_distance() assert DISTANCE_CALCS_NEEDS_CACHE == str(excinfo.value)