def test_no_nesting(self): self.assertEqual(['a', 'bcd', 123, 45.6], list(tools.flatten('a', 'bcd', 123, 45.6))) self.assertEqual(['a', 'bcd', 123, 45.6], list(tools.flatten(['a', 'bcd', 123, 45.6]))) self.assertEqual(['a', 'bcd', 123, 45.6], list(tools.flatten(['a', 'bcd'], [123, 45.6])))
def test_nesting(self): self.assertEqual(['a', 'bcd', 123, 45.6], list(tools.flatten('a', ['bcd'], [123], 45.6))) self.assertEqual(['a', 'bcd', 123, 45.6], list(tools.flatten([['a', ('bcd', [123])], 45.6]))) self.assertEqual(['a', 'bcd', 123, 45.6], list(tools.flatten([('a', 'bcd')], [[[[123]]], 45.6])))
def __init__(self, name: str, steps: Iterable[Callable]): self.name = name self._steps = tuple(tools.flatten(steps))
def test_empty(self): self.assertEqual([], list(tools.flatten())) self.assertEqual([], list(tools.flatten([]))) self.assertEqual([], list(tools.flatten([], ()))) self.assertEqual([], list(tools.flatten([[], (), [[]]], ((), []))))