object Test { def f1 = List(Iterator(Some(1), None, Some(2)), Iterator(Some(3), None)) def f2 = Iterator(List(Some(1), None, Some(2)), List(Some(3), None), Nil) def f3 = List(Some(Iterator(1)), None, Some(Iterator(2, 3))) def f4 = List(Some(Iterator(1)), Some(Iterator(2, 3))) def f5 = Iterator(List(Some(1), Some(2)), List(Some(3)), Nil) def main(args: Array[String]): Unit = { assert(f1.flatten.flatten.toList == List(1, 2, 3)) assert(f5.flatten.flatten.toList == List(1, 2, 3)) assert(f2.flatten.flatten.toList == List(1, 2, 3)) assert(f3.flatten.flatten.toList == List(1, 2, 3)) assert(f4.flatten.flatten.toList == List(1, 2, 3)) } }