~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_merge3.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-05-29 23:15:16 UTC
  • mfrom: (1711.2.25 jam-integration)
  • Revision ID: pqm@pqm.ubuntu.com-20060529231516-cad98b5042ea75f3
(jam) Updates to PatienceDiff for performance, and other cleanups.

Show diffs side-by-side

added added

removed removed

Lines of Context:
302
302
        self.log(''.join(ml))
303
303
        self.assertEquals(ml, MERGED_RESULT)
304
304
 
305
 
    def test_minimal_conflicts(self):
 
305
    def test_minimal_conflicts_common(self):
306
306
        """Reprocessing"""
307
307
        base_text = ("a\n" * 20).splitlines(True)
308
308
        this_text = ("a\n"*10+"b\n" * 10).splitlines(True)
310
310
        m3 = Merge3(base_text, other_text, this_text)
311
311
        m_lines = m3.merge_lines('OTHER', 'THIS', reprocess=True)
312
312
        merged_text = "".join(list(m_lines))
313
 
        optimal_text = "a\n" * 10 + "<<<<<<< OTHER\nc\n=======\n>>>>>>> THIS"\
314
 
            + "\n" + 8* "b\n" + "<<<<<<< OTHER\nc\n=======\nb\nb\n>>>>>>>"\
315
 
            + " THIS\n"
316
 
        self.assertEqualDiff(merged_text, optimal_text)
 
313
        optimal_text = ("a\n" * 10 + "<<<<<<< OTHER\nc\n"
 
314
            + 8* "b\n" + "c\n=======\n"
 
315
            + 10*"b\n" + ">>>>>>> THIS\n")
 
316
        self.assertEqualDiff(optimal_text, merged_text)
 
317
 
 
318
    def test_minimal_conflicts_unique(self):
 
319
        def add_newline(s):
 
320
            """Add a newline to each entry in the string"""
 
321
            return [(x+'\n') for x in s]
 
322
 
 
323
        base_text = add_newline("abcdefghijklm")
 
324
        this_text = add_newline("abcdefghijklmNOPQRSTUVWXYZ")
 
325
        other_text = add_newline("abcdefghijklm1OPQRSTUVWXY2")
 
326
        m3 = Merge3(base_text, other_text, this_text)
 
327
        m_lines = m3.merge_lines('OTHER', 'THIS', reprocess=True)
 
328
        merged_text = "".join(list(m_lines))
 
329
        optimal_text = ''.join(add_newline("abcdefghijklm")
 
330
            + ["<<<<<<< OTHER\n1\n=======\nN\n>>>>>>> THIS\n"]
 
331
            + add_newline('OPQRSTUVWXY')
 
332
            + ["<<<<<<< OTHER\n2\n=======\nZ\n>>>>>>> THIS\n"]
 
333
            )
 
334
        self.assertEqualDiff(optimal_text, merged_text)
 
335
 
 
336
    def test_minimal_conflicts_nonunique(self):
 
337
        def add_newline(s):
 
338
            """Add a newline to each entry in the string"""
 
339
            return [(x+'\n') for x in s]
 
340
 
 
341
        base_text = add_newline("abacddefgghij")
 
342
        this_text = add_newline("abacddefgghijkalmontfprz")
 
343
        other_text = add_newline("abacddefgghijknlmontfprd")
 
344
        m3 = Merge3(base_text, other_text, this_text)
 
345
        m_lines = m3.merge_lines('OTHER', 'THIS', reprocess=True)
 
346
        merged_text = "".join(list(m_lines))
 
347
        optimal_text = ''.join(add_newline("abacddefgghijk")
 
348
            + ["<<<<<<< OTHER\nn\n=======\na\n>>>>>>> THIS\n"]
 
349
            + add_newline('lmontfpr')
 
350
            + ["<<<<<<< OTHER\nd\n=======\nz\n>>>>>>> THIS\n"]
 
351
            )
 
352
        self.assertEqualDiff(optimal_text, merged_text)
317
353
 
318
354
    def test_reprocess_and_base(self):
319
355
        """Reprocessing and showing base breaks correctly"""