#NEWLINE# @ ddt . data ( { #NEWLINE# #INDENT# 'sources' : [ [ [ 1 , 3 , 5 ] , [ 5 , 7 , 9 , 14 ] , [ 17 , 21 , 36 , 41 ] ] , [ [ 2 , 2 , 4 ] , [ 9 , 10 ] , [ 16 , 19 , 23 , 26 , 91 ] ] , [ [ 5 ] , [ 5 , 7 , 11 , 14 , 14 , 19 , 23 ] ] ] , #NEWLINE# 'expected_output' : [ [ 1 , 2 , 2 , 3 , 4 , 5 , 5 , 5 , 5 , 7 ] , [ 7 , 9 , 9 , 10 , 11 , 14 , 14 , 14 , 16 , 17 ] , [ 19 , 19 , 21 , 23 , 23 , 26 , 36 , 41 , 91 ] ] , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'sources' : [ [ [ 1 , 3 , 5 ] , [ 5 , 7 , 9 , 14 ] , [ 17 , 21 , 36 , 41 ] ] , [ [ 2 , 2 , 4 ] , [ 9 , 10 ] , [ 16 , 19 , 23 , 26 , 91 ] ] , [ [ 5 ] , [ 5 , 7 , 11 , 14 , 14 , 19 , 23 ] ] , [ ] ] , #NEWLINE# 'expected_output' : [ [ 1 , 2 , 2 , 3 , 4 , 5 , 5 , 5 , 5 , 7 ] , [ 7 , 9 , 9 , 10 , 11 , 14 , 14 , 14 , 16 , 17 ] , [ 19 , 19 , 21 , 23 , 23 , 26 , 36 , 41 , 91 ] ] , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'sources' : [ [ [ 1 , 3 , 5 ] , [ 5 , 7 , 9 , 14 ] , [ 17 , 21 , 36 , 41 ] ] , [ [ 2 , 2 , 4 ] , [ 9 , 10 ] , [ 16 , 19 , 23 , 26 , 91 ] ] , [ [ 5 ] , [ 5 , 7 , 11 , 14 , 14 , 19 , 23 ] ] , [ [ ] ] ] , #NEWLINE# 'expected_output' : [ [ 1 , 2 , 2 , 3 , 4 , 5 , 5 , 5 , 5 , 7 ] , [ 7 , 9 , 9 , 10 , 11 , 14 , 14 , 14 , 16 , 17 ] , [ 19 , 19 , 21 , 23 , 23 , 26 , 36 , 41 , 91 ] ] , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'sources' : [ [ [ 1 , 3 , 5 ] , [ ] , [ ] , [ 5 , 7 , 9 , 14 ] , [ 17 , 21 , 36 , 41 ] ] , [ [ ] , [ 2 , 2 , 4 ] , [ 9 , 10 ] , [ 16 , 19 , 23 , 26 , 91 ] ] , [ [ 5 ] , [ 5 , 7 , 11 , 14 , 14 , 19 , 23 ] , [ ] ] ] , #NEWLINE# 'expected_output' : [ [ 1 , 2 , 2 , 3 , 4 , 5 , 5 , 5 , 5 , 7 ] , [ 7 , 9 , 9 , 10 , 11 , 14 , 14 , 14 , 16 , 17 ] , [ 19 , 19 , 21 , 23 , 23 , 26 , 36 , 41 , 91 ] ] , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'sources' : [ [ [ 1 , 3 , 5 ] , [ 5 , 7 , 9 , 14 ] , [ 17 , 21 , 36 , 41 ] ] ] , #NEWLINE# 'expected_output' : [ [ 1 , 3 , 5 , 5 , 7 , 9 , 14 , 17 , 21 , 36 ] , [ 41 ] ] , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'sources' : [ ] , #NEWLINE# 'expected_output' : [ ] , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'sources' : [ [ ] , [ ] , [ ] , [ ] ] , #NEWLINE# 'expected_output' : [ ] , #NEWLINE# #UNINDENT# } ) #NEWLINE# @ ddt . unpack #NEWLINE# def test_merge( self , sources , expected_output ) : #NEWLINE# #INDENT# in_iters = [ iter ( src ) for src in in_iters ] #NEWLINE# out = list ( utils . merge ( 10 , * in_iters ) ) #NEWLINE# self . assertEqual ( out , expected_output )