diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-05-22 16:07:23 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-05-22 16:07:23 +0200 |
commit | 6965b470d433f501203c4e3d77b0919f826691ba (patch) | |
tree | 413446f1af3f40bb69499a60066609af6bc38d9f /tests/run/t4835.scala | |
parent | 91bb668c5f1b6e5c51dad9b373c9398521508bc3 (diff) | |
download | dotty-6965b470d433f501203c4e3d77b0919f826691ba.tar.gz dotty-6965b470d433f501203c4e3d77b0919f826691ba.tar.bz2 dotty-6965b470d433f501203c4e3d77b0919f826691ba.zip |
Enable 440 run tests that pass.
Note that some of them may pass due to several bugs that interfere.
Diffstat (limited to 'tests/run/t4835.scala')
-rw-r--r-- | tests/run/t4835.scala | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/run/t4835.scala b/tests/run/t4835.scala new file mode 100644 index 000000000..26275c0ab --- /dev/null +++ b/tests/run/t4835.scala @@ -0,0 +1,38 @@ +/* + * Test case for SI-4835. This tests confirm that the fix + * doesn't break laziness. To test memory consumption, + * I need to confirm that OutOfMemoryError doesn't occur. + * I could create such tests. However, such tests consume + * too much time and memory. + */ +object Test { + private final val INFINITE = -1 + def testStreamIterator(num: Int, stream: Stream[Int]): Unit = { + val iter = stream.iterator + print(num) + // if num == -1, then steram is infinite sequence + if (num == INFINITE) { + for(i <- 0 until 10) { + print(" " + iter.next()) + } + } else { + while(iter.hasNext) { + print(" " + iter.next()) + } + } + println() + } + + def main(args: Array[String]): Unit = { + import Stream.{from, cons, empty} + testStreamIterator(INFINITE, from(0)) + testStreamIterator(INFINITE, from(0).filter(_ % 2 == 1)) + testStreamIterator(1, Stream(1)) + testStreamIterator(2, Stream(1, 2)) + //Stream with side effect + testStreamIterator(2, cons(1, cons({ print(" A"); 2}, empty))) + testStreamIterator(3, Stream(1, 2, 3)) + //Stream with side effect + testStreamIterator(3, cons(1, cons({ print(" A"); 2}, cons({ print(" B"); 3}, Stream.empty)))) + } +} |