mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 08:18:15 +03:00
663e918bc2
This is not only a bit faster, but also aligns with callers' expectations better since we can legitimately have manifestdict's _flags set to '' instead of unset. hg perfmergecalculate -r . before: ! wall 0.139582 comb 0.140000 user 0.140000 sys 0.000000 (best of 59) after: ! wall 0.126154 comb 0.120000 user 0.120000 sys 0.000000 (best of 74) hg perfmergecalculate -r .^ before: ! wall 0.236333 comb 0.240000 user 0.240000 sys 0.000000 (best of 36) after: ! wall 0.212265 comb 0.210000 user 0.210000 sys 0.000000 (best of 45)
60 lines
2.3 KiB
Python
60 lines
2.3 KiB
Python
from mercurial.dicthelpers import diff, join
|
|
import unittest
|
|
import silenttestrunner
|
|
|
|
class testdicthelpers(unittest.TestCase):
|
|
def test_dicthelpers(self):
|
|
# empty dicts
|
|
self.assertEqual(diff({}, {}), {})
|
|
self.assertEqual(join({}, {}), {})
|
|
|
|
d1 = {}
|
|
d1['a'] = 'foo'
|
|
d1['b'] = 'bar'
|
|
d1['c'] = 'baz'
|
|
|
|
# same identity
|
|
self.assertEqual(diff(d1, d1), {})
|
|
self.assertEqual(join(d1, d1), {'a': ('foo', 'foo'),
|
|
'b': ('bar', 'bar'),
|
|
'c': ('baz', 'baz')})
|
|
|
|
# vs empty
|
|
self.assertEqual(diff(d1, {}), {'a': ('foo', None),
|
|
'b': ('bar', None),
|
|
'c': ('baz', None)})
|
|
self.assertEqual(diff(d1, {}), {'a': ('foo', None),
|
|
'b': ('bar', None),
|
|
'c': ('baz', None)})
|
|
|
|
d2 = {}
|
|
d2['a'] = 'foo2'
|
|
d2['b'] = 'bar'
|
|
d2['d'] = 'quux'
|
|
|
|
self.assertEqual(diff(d1, d2), {'a': ('foo', 'foo2'),
|
|
'c': ('baz', None),
|
|
'd': (None, 'quux')})
|
|
self.assertEqual(join(d1, d2), {'a': ('foo', 'foo2'),
|
|
'b': ('bar', 'bar'),
|
|
'c': ('baz', None),
|
|
'd': (None, 'quux')})
|
|
|
|
# with default argument
|
|
self.assertEqual(diff(d1, d2, 123), {'a': ('foo', 'foo2'),
|
|
'c': ('baz', 123),
|
|
'd': (123, 'quux')})
|
|
self.assertEqual(join(d1, d2, 456), {'a': ('foo', 'foo2'),
|
|
'b': ('bar', 'bar'),
|
|
'c': ('baz', 456),
|
|
'd': (456, 'quux')})
|
|
|
|
# check that we compare against default
|
|
self.assertEqual(diff(d1, d2, 'baz'), {'a': ('foo', 'foo2'),
|
|
'd': ('baz', 'quux')})
|
|
self.assertEqual(diff(d1, d2, 'quux'), {'a': ('foo', 'foo2'),
|
|
'c': ('baz', 'quux')})
|
|
|
|
if __name__ == '__main__':
|
|
silenttestrunner.main(__name__)
|