Esempio n. 1
0
 def test_flatten(self):
     # flatten nested lists
     self.assertEqual([1, 2, 3, 4], list(iters.flatten([[1, 2], [3, 4]])))
     self.assertEqual([1, 2, 3, 4, 5, 6],
                      list(iters.flatten([[1, 2], [3, [4, 5, 6]]])))
     # flatten nested tuples, sets, and frozen sets
     self.assertEqual([1, 2, 3, 4, 5, 6],
                      list(iters.flatten(((1, 2), (3, (4, 5, 6))))))
     self.assertEqual([1, 2, 3],
                      list(iters.flatten(set([1, frozenset([2, 3])]))))
     # flatten nested generators
     generators = ((num + 1 for num in range(0, n)) for n in range(1, 4))
     self.assertEqual([1, 1, 2, 1, 2, 3], list(iters.flatten(generators)))
     # flat list should return itself
     self.assertEqual([1, 2, 3], list(iters.flatten([1, 2, 3])))
     # Don't flatten strings/unicode, bytes, or bytearrays
     self.assertEqual([2, "abc", 1], list(iters.flatten([2, "abc", 1])))
     self.assertEqual([2, b'abc', 1], list(iters.flatten([2, b'abc', 1])))
     self.assertEqual([2, bytearray(b'abc'), 1],
                      list(iters.flatten([2, bytearray(b'abc'), 1])))
     self.assertEqual([bytearray(b'abc'), b'\xd1\x8f'.decode('utf8'), b'y'],
                      list(
                          iters.flatten([
                              bytearray(b'abc'), b'\xd1\x8f'.decode('utf8'),
                              b'y'
                          ])))
Esempio n. 2
0
 def test_flatten(self):
     self.assertEqual([1,2,3,4], list(iters.flatten([[1,2], [3,4]])))
     self.assertEqual([1,2,3,4,5,6], list(iters.flatten([[1,2], [3, [4,5,6]]])))
     # flat list should return themself 
     self.assertEqual([1,2,3], list(iters.flatten([1,2,3])))
     # string is not a list
     self.assertEqual([2,"abc",1], list(iters.flatten([2,"abc",1])))
Esempio n. 3
0
 def test_flatten(self):
     # flatten nested lists
     self.assertEqual([1, 2, 3, 4], list(iters.flatten([[1, 2], [3, 4]])))
     self.assertEqual(
         [1, 2, 3, 4, 5, 6],
         list(iters.flatten([[1, 2], [3, [4, 5, 6]]]))
     )
     # flatten nested tuples, sets, and frozen sets
     self.assertEqual(
         [1, 2, 3, 4, 5, 6],
         list(iters.flatten(((1, 2), (3, (4, 5, 6)))))
     )
     self.assertEqual(
         [1, 2, 3],
         list(iters.flatten(set([1, frozenset([2, 3])])))
     )
     # flatten nested generators
     generators = ((num + 1 for num in range(0, n)) for n in range(1, 4))
     self.assertEqual([1, 1, 2, 1, 2, 3], list(iters.flatten(generators)))
     # flat list should return itself
     self.assertEqual([1, 2, 3], list(iters.flatten([1, 2, 3])))
     # Don't flatten strings/unicode, bytes, or bytearrays
     self.assertEqual([2, "abc", 1], list(iters.flatten([2, "abc", 1])))
     self.assertEqual([2, b'abc', 1], list(iters.flatten([2, b'abc', 1])))
     self.assertEqual([2, bytearray(b'abc'), 1],
                      list(iters.flatten([2, bytearray(b'abc'), 1])))
     self.assertEqual(
         [bytearray(b'abc'), b'\xd1\x8f'.decode('utf8'), b'y'],
         list(iters.flatten(
             [bytearray(b'abc'), b'\xd1\x8f'.decode('utf8'), b'y']
         )))
Esempio n. 4
0
 def test_flatten(self):
     # flatten nested lists
     self.assertEqual([1,2,3,4], list(iters.flatten([[1,2], [3,4]])))
     self.assertEqual([1,2,3,4,5,6], list(iters.flatten([[1,2], [3, [4,5,6]]])))
     # flatten nested tuples, sets, and frozen sets
     self.assertEqual([1,2,3,4,5,6], list(iters.flatten(((1,2), (3, (4,5,6))))))
     self.assertEqual([1,2,3], list(iters.flatten(set([1, frozenset([2,3])]))))
     # flatten nested generators
     generator_func = lambda n: (num for num in range(0, n))
     generators = (generator_func(n) for n in range(1, 4))
     self.assertEqual([0,0,1,0,1,2], list(iters.flatten(generators)))
     # flat list should return itself
     self.assertEqual([1,2,3], list(iters.flatten([1,2,3])))
     # Don't flatten strings, bytes, or bytearrays
     self.assertEqual([2,"abc",1], list(iters.flatten([2,"abc",1])))
     self.assertEqual([2, b'abc', 1], list(iters.flatten([2, b'abc', 1])))
     barray = bytearray(b'abc')
     self.assertEqual([2, bytearray(b'abc'), 1], list(iters.flatten([2, bytearray(b'abc'), 1])))