~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_tsort.py

  • Committer: John Arbash Meinel
  • Date: 2008-01-09 19:47:39 UTC
  • mto: This revision was merged to the branch mainline in revision 3188.
  • Revision ID: meinel@lululaptop-20080109194739-q5nyw06zus444na3
Write up a simple test that is getting ready to fix up deeply nested dotted revnos.

Show diffs side-by-side

added added

removed removed

Lines of Context:
238
238
             ],
239
239
            True
240
240
            )
241
 
 
 
241
 
 
242
    def test_dotted_revnos_with_simple_merges(self):
 
243
        # A         1
 
244
        # |\
 
245
        # B C       2, 1.1.1
 
246
        # | |\
 
247
        # D E F     3, 1.1.2, 1.2.1
 
248
        # |/ /|
 
249
        # G H I     4, 1.2.2, 1.3.1
 
250
        # |/ /
 
251
        # J K       5, 1.3.2
 
252
        # |/
 
253
        # L         6
 
254
        self.assertSortAndIterate(
 
255
            {'A': [],
 
256
             'B': ['A'],
 
257
             'C': ['A'],
 
258
             'D': ['B'],
 
259
             'E': ['C'],
 
260
             'F': ['C'],
 
261
             'G': ['D', 'E'],
 
262
             'H': ['F'],
 
263
             'I': ['F'],
 
264
             'J': ['G', 'H'],
 
265
             'K': ['I'],
 
266
             'L': ['J', 'K'],
 
267
            }.items(),
 
268
            'L',
 
269
            [(0, 'L', 0, (6,), False),
 
270
             (1, 'K', 1, (1,1,1,1,1,1,2), False),
 
271
             (2, 'I', 1, (1,1,1,1,1,1,1), True),
 
272
             (3, 'J', 0, (5,), False),
 
273
             (4, 'H', 1, (1,1,1,1,2), False),
 
274
             (5, 'F', 1, (1,1,1,1,1), True),
 
275
             (6, 'G', 0, (4,), False),
 
276
             (7, 'E', 1, (1,1,2), False),
 
277
             (8, 'C', 1, (1,1,1), True),
 
278
             (9, 'D', 0, (3,), False),
 
279
             (10, 'B', 0, (2,), False),
 
280
             (11, 'A', 0, (1,),  True),
 
281
             ],
 
282
            #[(0, 'L', 0, (6,), False),
 
283
            # (1, 'K', 1, (1,3,2), False),
 
284
            # (2, 'I', 1, (1,3,1), True),
 
285
            # (3, 'J', 0, (5,), False),
 
286
            # (4, 'H', 1, (1,2,2), False),
 
287
            # (5, 'F', 1, (1,2,1), True),
 
288
            # (6, 'G', 0, (4,), False),
 
289
            # (7, 'E', 1, (1,1,2), False),
 
290
            # (8, 'C', 1, (1,1,1), True),
 
291
            # (9, 'D', 0, (3,), False),
 
292
            # (10, 'B', 0, (2,), False),
 
293
            # (11, 'A', 0, (1,),  False),
 
294
            # ],
 
295
            True
 
296
            )
 
297
        # Adding a shortcut from the first revision should not change any of
 
298
        # the existing numbers
 
299
        self.assertSortAndIterate(
 
300
            {'A': [],
 
301
             'B': ['A'],
 
302
             'C': ['A'],
 
303
             'D': ['B'],
 
304
             'E': ['C'],
 
305
             'F': ['C'],
 
306
             'G': ['D', 'E'],
 
307
             'H': ['F'],
 
308
             'I': ['F'],
 
309
             'J': ['G', 'H'],
 
310
             'K': ['I'],
 
311
             'L': ['J', 'K'],
 
312
             'M': ['A'],
 
313
             'N': ['L', 'M'],
 
314
            }.items(),
 
315
            'N',
 
316
            [(0, 'N', 0, (7,), False),
 
317
             (1, 'M', 1, (1,2,1), True),
 
318
             (2, 'L', 0, (6,), False),
 
319
             (3, 'K', 1, (1,1,1,1,1,1,2), False),
 
320
             (4, 'I', 1, (1,1,1,1,1,1,1), True),
 
321
             (5, 'J', 0, (5,), False),
 
322
             (6, 'H', 1, (1,1,1,1,2), False),
 
323
             (7, 'F', 1, (1,1,1,1,1), True),
 
324
             (8, 'G', 0, (4,), False),
 
325
             (9, 'E', 1, (1,1,2), False),
 
326
             (10, 'C', 1, (1,1,1), True),
 
327
             (11, 'D', 0, (3,), False),
 
328
             (12, 'B', 0, (2,), False),
 
329
             (13, 'A', 0, (1,),  True),
 
330
             ],
 
331
            #[(0, 'N', 0, (7,), False),
 
332
            # (0, 'M', 1, (1,4,1), True),
 
333
            # (0, 'L', 0, (6,), False),
 
334
            # (1, 'K', 1, (1,3,2), False),
 
335
            # (2, 'I', 1, (1,3,1), True),
 
336
            # (3, 'J', 0, (5,), False),
 
337
            # (4, 'H', 1, (1,2,2), False),
 
338
            # (5, 'F', 1, (1,2,1), True),
 
339
            # (6, 'G', 0, (4,), False),
 
340
            # (7, 'E', 1, (1,1,2), False),
 
341
            # (8, 'C', 1, (1,1,1), True),
 
342
            # (9, 'D', 0, (3,), False),
 
343
            # (10, 'B', 0, (2,), False),
 
344
            # (11, 'A', 0, (1,),  False),
 
345
            # ],
 
346
            True
 
347
            )
 
348
 
242
349
    def test_end_of_merge_not_last_revision_in_branch(self):
243
350
        # within a branch only the last revision gets an
244
351
        # end of merge marker.