예제 #1
0
    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
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
 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)