summaryrefslogtreecommitdiff
path: root/test/files/run
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-11-01 07:29:42 -0700
committerPaul Phillips <paulp@improving.org>2012-11-01 07:29:42 -0700
commit6f273cb58ba69cc8b30ec9b1b31dc015e0ef1a62 (patch)
treecaebb02fd12a0075f5eacc3acaac754766f10f0d /test/files/run
parente3f4f199dcf012200ddf04e2871de93477474073 (diff)
parent4e4060f4faee791759417f1a598322e90623464d (diff)
downloadscala-6f273cb58ba69cc8b30ec9b1b31dc015e0ef1a62.tar.gz
scala-6f273cb58ba69cc8b30ec9b1b31dc015e0ef1a62.tar.bz2
scala-6f273cb58ba69cc8b30ec9b1b31dc015e0ef1a62.zip
Merge pull request #1535 from paulp/stream-distinct
Fix SI-6584, Stream#distinct uses too much memory.
Diffstat (limited to 'test/files/run')
-rw-r--r--test/files/run/streams.check1
-rw-r--r--test/files/run/streams.scala5
-rw-r--r--test/files/run/t6584.check8
-rw-r--r--test/files/run/t6584.scala16
4 files changed, 29 insertions, 1 deletions
diff --git a/test/files/run/streams.check b/test/files/run/streams.check
index 7f894052d9..032057d4a1 100644
--- a/test/files/run/streams.check
+++ b/test/files/run/streams.check
@@ -23,3 +23,4 @@ Stream(100001, ?)
true
true
705082704
+6
diff --git a/test/files/run/streams.scala b/test/files/run/streams.scala
index 51b4e5d76c..dc5d0204ac 100644
--- a/test/files/run/streams.scala
+++ b/test/files/run/streams.scala
@@ -29,7 +29,7 @@ object Test extends App {
def powers(x: Int) = if ((x&(x-1)) == 0) Some(x) else None
println(s3.flatMap(powers).reverse.head)
- // large enough to generate StackOverflows (on most systems)
+ // large enough to generate StackOverflows (on most systems)
// unless the following methods are tail call optimized.
val size = 100000
@@ -43,4 +43,7 @@ object Test extends App {
println(Stream.from(1).take(size).foldLeft(0)(_ + _))
val arr = new Array[Int](size)
Stream.from(1).take(size).copyToArray(arr, 0)
+
+ // dropRight terminates
+ println(Stream from 1 dropRight 1000 take 3 sum)
}
diff --git a/test/files/run/t6584.check b/test/files/run/t6584.check
new file mode 100644
index 0000000000..35c8688751
--- /dev/null
+++ b/test/files/run/t6584.check
@@ -0,0 +1,8 @@
+Array: 102400
+Vector: 102400
+List: 102400
+Stream: 102400
+Array: 102400
+Vector: 102400
+List: 102400
+Stream: 102400
diff --git a/test/files/run/t6584.scala b/test/files/run/t6584.scala
new file mode 100644
index 0000000000..24c236ef35
--- /dev/null
+++ b/test/files/run/t6584.scala
@@ -0,0 +1,16 @@
+object Test {
+ def main(args: Array[String]): Unit = {
+ val size = 100 * 1024
+ val doubled = (1 to size) ++ (1 to size)
+
+ println("Array: " + Array.tabulate(size)(x => x).distinct.size)
+ println("Vector: " + Vector.tabulate(size)(x => x).distinct.size)
+ println("List: " + List.tabulate(size)(x => x).distinct.size)
+ println("Stream: " + Stream.tabulate(size)(x => x).distinct.size)
+
+ println("Array: " + doubled.toArray.distinct.size)
+ println("Vector: " + doubled.toVector.distinct.size)
+ println("List: " + doubled.toList.distinct.size)
+ println("Stream: " + doubled.toStream.distinct.size)
+ }
+}