summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/files/jvm/manifests-new.scala34
-rw-r--r--test/files/jvm/manifests-old.scala34
-rw-r--r--test/files/neg/javaConversions-2.10-ambiguity.check6
-rw-r--r--test/files/neg/t6406-regextract.check9
-rw-r--r--test/files/pos/annotations.scala2
-rw-r--r--test/files/pos/javaConversions-2.10-ambiguity.scala (renamed from test/files/neg/javaConversions-2.10-ambiguity.scala)2
-rw-r--r--test/files/pos/javaConversions-2.10-regression.scala6
-rw-r--r--test/files/pos/spec-annotations.scala2
-rw-r--r--test/files/pos/spec-arrays.scala41
-rw-r--r--test/files/pos/spec-funs.scala9
-rw-r--r--test/files/pos/t0422.scala3
-rwxr-xr-xtest/files/pos/t2484.scala4
-rw-r--r--test/files/pos/t2698.scala3
-rw-r--r--test/files/pos/t342.scala8
-rw-r--r--test/files/pos/t422.scala17
-rw-r--r--test/files/pos/t5223.scala2
-rw-r--r--test/files/presentation/callcc-interpreter.check3
-rw-r--r--test/files/presentation/ide-bug-1000349.check3
-rw-r--r--test/files/presentation/ide-bug-1000475.check9
-rw-r--r--test/files/presentation/ide-bug-1000531.check4
-rw-r--r--test/files/presentation/implicit-member.check3
-rw-r--r--test/files/presentation/ping-pong.check6
-rw-r--r--test/files/presentation/t5708.check3
-rw-r--r--test/files/presentation/visibility.check15
-rw-r--r--test/files/run/bitsets.scala4
-rw-r--r--test/files/run/enums.scala14
-rw-r--r--test/files/run/map_java_conversions.scala2
-rw-r--r--test/files/run/t1505.scala13
-rw-r--r--test/files/run/t2873.check2
-rw-r--r--test/files/run/t2873.scala7
-rw-r--r--test/files/run/t5225_2.check2
-rw-r--r--test/files/run/t5225_2.scala2
-rw-r--r--test/files/run/t5879.check8
-rw-r--r--test/files/run/t5879.scala15
-rw-r--r--test/files/run/t6329_repl.check32
-rw-r--r--test/files/run/t6329_repl.scala13
-rw-r--r--test/files/run/t6329_vanilla.check8
-rw-r--r--test/files/run/t6329_vanilla.scala14
-rw-r--r--test/files/scalacheck/redblack.scala213
39 files changed, 196 insertions, 381 deletions
diff --git a/test/files/jvm/manifests-new.scala b/test/files/jvm/manifests-new.scala
index f730be67bb..3937fdec69 100644
--- a/test/files/jvm/manifests-new.scala
+++ b/test/files/jvm/manifests-new.scala
@@ -56,7 +56,7 @@ object Test1 extends TestUtil {
}
object Test2 {
- import scala.util.Marshal._
+ import Marshal._
println("()="+load[Unit](dump(())))
println("true="+load[Boolean](dump(true)))
println("a="+load[Char](dump('a')))
@@ -88,6 +88,38 @@ object Test2 {
println()
}
+object Marshal {
+ import java.io._
+ import scala.reflect.ClassTag
+
+ def dump[A](o: A)(implicit t: ClassTag[A]): Array[Byte] = {
+ val ba = new ByteArrayOutputStream(512)
+ val out = new ObjectOutputStream(ba)
+ out.writeObject(t)
+ out.writeObject(o)
+ out.close()
+ ba.toByteArray()
+ }
+
+ @throws(classOf[IOException])
+ @throws(classOf[ClassCastException])
+ @throws(classOf[ClassNotFoundException])
+ def load[A](buffer: Array[Byte])(implicit expected: ClassTag[A]): A = {
+ val in = new ObjectInputStream(new ByteArrayInputStream(buffer))
+ val found = in.readObject.asInstanceOf[ClassTag[_]]
+ try {
+ found.runtimeClass.asSubclass(expected.runtimeClass)
+ in.readObject.asInstanceOf[A]
+ } catch {
+ case _: ClassCastException =>
+ in.close()
+ throw new ClassCastException("type mismatch;"+
+ "\n found : "+found+
+ "\n required: "+expected)
+ }
+ }
+}
+
trait TestUtil {
import java.io._
def write[A](o: A): Array[Byte] = {
diff --git a/test/files/jvm/manifests-old.scala b/test/files/jvm/manifests-old.scala
index 241966fd9d..bb1928f094 100644
--- a/test/files/jvm/manifests-old.scala
+++ b/test/files/jvm/manifests-old.scala
@@ -55,7 +55,7 @@ object Test1 extends TestUtil {
}
object Test2 {
- import scala.util.Marshal._
+ import Marshal._
println("()="+load[Unit](dump(())))
println("true="+load[Boolean](dump(true)))
println("a="+load[Char](dump('a')))
@@ -87,6 +87,38 @@ object Test2 {
println()
}
+object Marshal {
+ import java.io._
+ import scala.reflect.ClassTag
+
+ def dump[A](o: A)(implicit t: ClassTag[A]): Array[Byte] = {
+ val ba = new ByteArrayOutputStream(512)
+ val out = new ObjectOutputStream(ba)
+ out.writeObject(t)
+ out.writeObject(o)
+ out.close()
+ ba.toByteArray()
+ }
+
+ @throws(classOf[IOException])
+ @throws(classOf[ClassCastException])
+ @throws(classOf[ClassNotFoundException])
+ def load[A](buffer: Array[Byte])(implicit expected: ClassTag[A]): A = {
+ val in = new ObjectInputStream(new ByteArrayInputStream(buffer))
+ val found = in.readObject.asInstanceOf[ClassTag[_]]
+ try {
+ found.runtimeClass.asSubclass(expected.runtimeClass)
+ in.readObject.asInstanceOf[A]
+ } catch {
+ case _: ClassCastException =>
+ in.close()
+ throw new ClassCastException("type mismatch;"+
+ "\n found : "+found+
+ "\n required: "+expected)
+ }
+ }
+}
+
trait TestUtil {
import java.io._
def write[A](o: A): Array[Byte] = {
diff --git a/test/files/neg/javaConversions-2.10-ambiguity.check b/test/files/neg/javaConversions-2.10-ambiguity.check
deleted file mode 100644
index c064a22964..0000000000
--- a/test/files/neg/javaConversions-2.10-ambiguity.check
+++ /dev/null
@@ -1,6 +0,0 @@
-javaConversions-2.10-ambiguity.scala:8: error: type mismatch;
- found : scala.collection.concurrent.Map[String,String]
- required: scala.collection.mutable.ConcurrentMap[String,String]
- assertType[mutable.ConcurrentMap[String, String]](a)
- ^
-one error found
diff --git a/test/files/neg/t6406-regextract.check b/test/files/neg/t6406-regextract.check
index 19425a68b0..4fea66f760 100644
--- a/test/files/neg/t6406-regextract.check
+++ b/test/files/neg/t6406-regextract.check
@@ -1,6 +1,7 @@
-t6406-regextract.scala:4: warning: method unapplySeq in class Regex is deprecated: Extracting a match result from anything but a CharSequence or Match is deprecated
+t6406-regextract.scala:4: error: cannot resolve overloaded unapply
List(1) collect { case r(i) => i }
^
-error: No warnings can be incurred under -Xfatal-warnings.
-one warning found
-one error found
+t6406-regextract.scala:4: error: not found: value i
+ List(1) collect { case r(i) => i }
+ ^
+two errors found
diff --git a/test/files/pos/annotations.scala b/test/files/pos/annotations.scala
index 501e2a6bd3..4832ce4ecd 100644
--- a/test/files/pos/annotations.scala
+++ b/test/files/pos/annotations.scala
@@ -2,7 +2,7 @@ class ann(i: Int) extends scala.annotation.Annotation
class cfann(x: String) extends annotation.ClassfileAnnotation
// annotations on abstract types
-abstract class C1[@cloneable +T, U, V[_]]
+abstract class C1[@annotation.elidable(0) +T, U, V[_]]
abstract class C2[@deprecated
@ann(1) T <: Number,
V]
diff --git a/test/files/neg/javaConversions-2.10-ambiguity.scala b/test/files/pos/javaConversions-2.10-ambiguity.scala
index e856846a29..c4aad6cbfc 100644
--- a/test/files/neg/javaConversions-2.10-ambiguity.scala
+++ b/test/files/pos/javaConversions-2.10-ambiguity.scala
@@ -5,6 +5,6 @@ import java.util.concurrent.{ConcurrentHashMap => CHM}
object Bar {
def assertType[T](t: T) = t
val a = new CHM[String, String]() += (("", ""))
- assertType[mutable.ConcurrentMap[String, String]](a)
+ assertType[concurrent.Map[String, String]](a)
}
// vim: set et:
diff --git a/test/files/pos/javaConversions-2.10-regression.scala b/test/files/pos/javaConversions-2.10-regression.scala
index e1b81015ba..7c7ff03b55 100644
--- a/test/files/pos/javaConversions-2.10-regression.scala
+++ b/test/files/pos/javaConversions-2.10-regression.scala
@@ -3,10 +3,10 @@ import JavaConversions._
import java.util.concurrent.{ConcurrentHashMap => CHM}
object Foo {
- def buildCache2_9_simple[K <: AnyRef, V <: AnyRef]: mutable.ConcurrentMap[K, V] =
- asScalaConcurrentMap(new CHM())
+ def buildCache2_9_simple[K <: AnyRef, V <: AnyRef]: concurrent.Map[K, V] =
+ mapAsScalaConcurrentMap(new CHM())
- def buildCache2_9_implicit[K <: AnyRef, V <: AnyRef]: mutable.ConcurrentMap[K, V] =
+ def buildCache2_9_implicit[K <: AnyRef, V <: AnyRef]: concurrent.Map[K, V] =
new CHM[K, V]()
}
diff --git a/test/files/pos/spec-annotations.scala b/test/files/pos/spec-annotations.scala
index 6c1f737470..b23abf48e8 100644
--- a/test/files/pos/spec-annotations.scala
+++ b/test/files/pos/spec-annotations.scala
@@ -1,7 +1,7 @@
class ann(i: Int) extends scala.annotation.Annotation
// annotations on abstract types
-abstract class C1[@cloneable +T, U, V[_]]
+abstract class C1[@annotation.elidable(0) +T, U, V[_]]
abstract class C2[@deprecated
@ann(1) T <: Number,
V]
diff --git a/test/files/pos/spec-arrays.scala b/test/files/pos/spec-arrays.scala
index 84f6eef071..7ae2cb1efb 100644
--- a/test/files/pos/spec-arrays.scala
+++ b/test/files/pos/spec-arrays.scala
@@ -177,38 +177,11 @@ class ScalaSpec3Test extends Test {
}
}
-object TestJava extends scala.testing.Benchmark {
- def run() {
- (new JavaTest).run()
- }
-}
-
-object TestSpec extends scala.testing.Benchmark {
- def run() {
- (new ScalaSpecTest).run()
- }
-}
-
-object TestSpec2 extends scala.testing.Benchmark {
- def run() {
- (new ScalaSpec2Test).run()
- }
-}
-
-object TestGen extends scala.testing.Benchmark {
- def run() {
- (new ScalaGenTest).run()
- }
-}
-
-object TestWrap extends scala.testing.Benchmark {
- def run() {
- (new ScalaWrapTest).run()
- }
-}
-
-object TestSpec3 extends scala.testing.Benchmark {
- def run() {
- (new ScalaSpec3Test).run()
- }
+object TestRunner {
+ (new JavaTest).run()
+ (new ScalaSpecTest).run()
+ (new ScalaSpec2Test).run()
+ (new ScalaGenTest).run()
+ (new ScalaWrapTest).run()
+ (new ScalaSpec3Test).run()
}
diff --git a/test/files/pos/spec-funs.scala b/test/files/pos/spec-funs.scala
index 611ec0ef62..b9acbe171a 100644
--- a/test/files/pos/spec-funs.scala
+++ b/test/files/pos/spec-funs.scala
@@ -54,10 +54,7 @@ final class ClosureTest {
}
}
-object TestInt extends scala.testing.Benchmark {
- def run() = (new IntTest).run()
-}
-
-object TestClosure extends scala.testing.Benchmark {
- def run() = (new ClosureTest).run()
+object TestRunner {
+ (new IntTest).run()
+ (new ClosureTest).run()
}
diff --git a/test/files/pos/t0422.scala b/test/files/pos/t0422.scala
index cb3ba279d4..2adfa392d2 100644
--- a/test/files/pos/t0422.scala
+++ b/test/files/pos/t0422.scala
@@ -1,5 +1,4 @@
-import scala.util.regexp.WordExp;
-import scala.util.automata.WordBerrySethi;
+package scala.xml.dtd.impl
object BoolWordExp extends WordExp {
type _labelT = MyLabels;
diff --git a/test/files/pos/t2484.scala b/test/files/pos/t2484.scala
index 7d1b7cb03c..29f798edf9 100755
--- a/test/files/pos/t2484.scala
+++ b/test/files/pos/t2484.scala
@@ -1,7 +1,9 @@
+import concurrent.ExecutionContext.Implicits.global
+
class Admin extends javax.swing.JApplet {
val jScrollPane = new javax.swing.JScrollPane (null, 0, 0)
def t2484: Unit = {
- scala.concurrent.ops.spawn {jScrollPane.synchronized {
+ scala.concurrent.future {jScrollPane.synchronized {
def someFunction () = {}
//scala.concurrent.ops.spawn {someFunction ()}
jScrollPane.addComponentListener (new java.awt.event.ComponentAdapter {override def componentShown (e: java.awt.event.ComponentEvent) = {
diff --git a/test/files/pos/t2698.scala b/test/files/pos/t2698.scala
index 0e2662de61..7de50a13d6 100644
--- a/test/files/pos/t2698.scala
+++ b/test/files/pos/t2698.scala
@@ -1,5 +1,6 @@
+package scala.xml.dtd.impl
+
import scala.collection._
-import scala.util.regexp._
abstract class S2 {
val lang: WordExp
diff --git a/test/files/pos/t342.scala b/test/files/pos/t342.scala
deleted file mode 100644
index 752b24d2ba..0000000000
--- a/test/files/pos/t342.scala
+++ /dev/null
@@ -1,8 +0,0 @@
-object Main extends App {
-
- object Foo extends Enumeration(0, "Bar") { // 2
- val Bar = Value
- }
- import Foo._;
- Console.println(Bar)
-}
diff --git a/test/files/pos/t422.scala b/test/files/pos/t422.scala
deleted file mode 100644
index cb3ba279d4..0000000000
--- a/test/files/pos/t422.scala
+++ /dev/null
@@ -1,17 +0,0 @@
-import scala.util.regexp.WordExp;
-import scala.util.automata.WordBerrySethi;
-
-object BoolWordExp extends WordExp {
- type _labelT = MyLabels;
- type _regexpT = RegExp;
- abstract class MyLabels extends Label ;
- case class MyLabel(c:Char) extends MyLabels;
-}
-
-object MyTranslator extends WordBerrySethi {
- override val lang = BoolWordExp;
- import lang._;
- override protected def seenLabel( r:RegExp, i:Int, label: _labelT ): Unit = {
- super.seenLabel(r,i,label)
- }
-}
diff --git a/test/files/pos/t5223.scala b/test/files/pos/t5223.scala
index 0b2528e367..d81daa9907 100644
--- a/test/files/pos/t5223.scala
+++ b/test/files/pos/t5223.scala
@@ -2,5 +2,5 @@ import scala.reflect.runtime.universe._
object Foo extends App {
reify{def printf(format: String, args: Any*): String = null }
- reify{def printf(format: String, args: Any*): String = ("abc": @cloneable)}
+ reify{def printf(format: String, args: Any*): String = ("abc": @deprecated)}
} \ No newline at end of file
diff --git a/test/files/presentation/callcc-interpreter.check b/test/files/presentation/callcc-interpreter.check
index 3a08e2a2ea..dd3ee68e45 100644
--- a/test/files/presentation/callcc-interpreter.check
+++ b/test/files/presentation/callcc-interpreter.check
@@ -3,7 +3,7 @@ reload: CallccInterpreter.scala
askTypeCompletion at CallccInterpreter.scala(51,38)
================================================================================
[response] aksTypeCompletion at (51,38)
-retrieved 64 members
+retrieved 63 members
[accessible: true] `class AddcallccInterpreter.Add`
[accessible: true] `class AppcallccInterpreter.App`
[accessible: true] `class CcccallccInterpreter.Ccc`
@@ -50,7 +50,6 @@ retrieved 64 members
[accessible: true] `method wait()Unit`
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
-[accessible: true] `method x=> callccInterpreter.type`
[accessible: true] `method →[B](y: B)(callccInterpreter.type, B)`
[accessible: true] `object WrongcallccInterpreter.Wrong.type`
[accessible: true] `trait TermcallccInterpreter.Term`
diff --git a/test/files/presentation/ide-bug-1000349.check b/test/files/presentation/ide-bug-1000349.check
index 44a3207d75..7eeaddc054 100644
--- a/test/files/presentation/ide-bug-1000349.check
+++ b/test/files/presentation/ide-bug-1000349.check
@@ -3,7 +3,7 @@ reload: CompletionOnEmptyArgMethod.scala
askTypeCompletion at CompletionOnEmptyArgMethod.scala(2,17)
================================================================================
[response] aksTypeCompletion at (2,17)
-retrieved 37 members
+retrieved 36 members
[accessible: true] `method !=(x$1: Any)Boolean`
[accessible: true] `method !=(x$1: AnyRef)Boolean`
[accessible: true] `method ##()Int`
@@ -32,7 +32,6 @@ retrieved 37 members
[accessible: true] `method wait()Unit`
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
-[accessible: true] `method x=> Foo`
[accessible: true] `method →[B](y: B)(Foo, B)`
[accessible: true] `value __leftOfArrowFoo`
[accessible: true] `value __resultOfEnsuringFoo`
diff --git a/test/files/presentation/ide-bug-1000475.check b/test/files/presentation/ide-bug-1000475.check
index 34c3b557d8..01de4608ca 100644
--- a/test/files/presentation/ide-bug-1000475.check
+++ b/test/files/presentation/ide-bug-1000475.check
@@ -3,7 +3,7 @@ reload: Foo.scala
askTypeCompletion at Foo.scala(3,7)
================================================================================
[response] aksTypeCompletion at (3,7)
-retrieved 36 members
+retrieved 35 members
[accessible: true] `method !=(x$1: Any)Boolean`
[accessible: true] `method !=(x$1: AnyRef)Boolean`
[accessible: true] `method ##()Int`
@@ -29,7 +29,6 @@ retrieved 36 members
[accessible: true] `method wait()Unit`
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
-[accessible: true] `method x=> Object`
[accessible: true] `method →[B](y: B)(Object, B)`
[accessible: true] `value __leftOfArrowObject`
[accessible: true] `value __resultOfEnsuringObject`
@@ -41,7 +40,7 @@ retrieved 36 members
askTypeCompletion at Foo.scala(6,10)
================================================================================
[response] aksTypeCompletion at (6,10)
-retrieved 36 members
+retrieved 35 members
[accessible: true] `method !=(x$1: Any)Boolean`
[accessible: true] `method !=(x$1: AnyRef)Boolean`
[accessible: true] `method ##()Int`
@@ -67,7 +66,6 @@ retrieved 36 members
[accessible: true] `method wait()Unit`
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
-[accessible: true] `method x=> Object`
[accessible: true] `method →[B](y: B)(Object, B)`
[accessible: true] `value __leftOfArrowObject`
[accessible: true] `value __resultOfEnsuringObject`
@@ -79,7 +77,7 @@ retrieved 36 members
askTypeCompletion at Foo.scala(7,7)
================================================================================
[response] aksTypeCompletion at (7,7)
-retrieved 36 members
+retrieved 35 members
[accessible: true] `method !=(x$1: Any)Boolean`
[accessible: true] `method !=(x$1: AnyRef)Boolean`
[accessible: true] `method ##()Int`
@@ -105,7 +103,6 @@ retrieved 36 members
[accessible: true] `method wait()Unit`
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
-[accessible: true] `method x=> Object`
[accessible: true] `method →[B](y: B)(Object, B)`
[accessible: true] `value __leftOfArrowObject`
[accessible: true] `value __resultOfEnsuringObject`
diff --git a/test/files/presentation/ide-bug-1000531.check b/test/files/presentation/ide-bug-1000531.check
index 6c3892d272..7fa550179f 100644
--- a/test/files/presentation/ide-bug-1000531.check
+++ b/test/files/presentation/ide-bug-1000531.check
@@ -3,7 +3,7 @@ reload: CrashOnLoad.scala
askTypeCompletion at CrashOnLoad.scala(6,12)
================================================================================
[response] aksTypeCompletion at (6,12)
-retrieved 126 members
+retrieved 124 members
[accessible: true] `class GroupedIteratorIterator[B]#GroupedIterator`
[accessible: true] `method !=(x$1: Any)Boolean`
[accessible: true] `method !=(x$1: AnyRef)Boolean`
@@ -12,7 +12,6 @@ retrieved 126 members
[accessible: true] `method ++[B >: B](that: => scala.collection.GenTraversableOnce[B])Iterator[B]`
[accessible: true] `method ->[B](y: B)(java.util.Iterator[B], B)`
[accessible: true] `method /:[B](z: B)(op: (B, B) => B)B`
-[accessible: true] `method /:\[A1 >: B](z: A1)(op: (A1, A1) => A1)A1`
[accessible: true] `method :\[B](z: B)(op: (B, B) => B)B`
[accessible: true] `method ==(x$1: Any)Boolean`
[accessible: true] `method ==(x$1: AnyRef)Boolean`
@@ -115,7 +114,6 @@ retrieved 126 members
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
[accessible: true] `method withFilter(p: B => Boolean)Iterator[B]`
-[accessible: true] `method x=> java.util.Iterator[B]`
[accessible: true] `method zipAll[B, A1 >: B, B1 >: B](that: Iterator[B], thisElem: A1, thatElem: B1)Iterator[(A1, B1)]`
[accessible: true] `method zipWithIndex=> Iterator[(B, Int)]`
[accessible: true] `method zip[B](that: Iterator[B])Iterator[(B, B)]`
diff --git a/test/files/presentation/implicit-member.check b/test/files/presentation/implicit-member.check
index 05d6f61699..7b4f792bf3 100644
--- a/test/files/presentation/implicit-member.check
+++ b/test/files/presentation/implicit-member.check
@@ -3,7 +3,7 @@ reload: ImplicitMember.scala
askTypeCompletion at ImplicitMember.scala(7,7)
================================================================================
[response] aksTypeCompletion at (7,7)
-retrieved 39 members
+retrieved 38 members
[accessible: true] `class AppliedImplicitImplicit.AppliedImplicit`
[accessible: true] `method !=(x$1: Any)Boolean`
[accessible: true] `method !=(x$1: AnyRef)Boolean`
@@ -33,7 +33,6 @@ retrieved 39 members
[accessible: true] `method wait()Unit`
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
-[accessible: true] `method x=> Implicit.type`
[accessible: true] `method →[B](y: B)(Implicit.type, B)`
[accessible: true] `value __leftOfArrowImplicit.type`
[accessible: true] `value __resultOfEnsuringImplicit.type`
diff --git a/test/files/presentation/ping-pong.check b/test/files/presentation/ping-pong.check
index b666d51de5..c85f6cc21a 100644
--- a/test/files/presentation/ping-pong.check
+++ b/test/files/presentation/ping-pong.check
@@ -3,7 +3,7 @@ reload: PingPong.scala
askTypeCompletion at PingPong.scala(10,23)
================================================================================
[response] aksTypeCompletion at (10,23)
-retrieved 40 members
+retrieved 39 members
[accessible: true] `method !=(x$1: Any)Boolean`
[accessible: true] `method !=(x$1: AnyRef)Boolean`
[accessible: true] `method ##()Int`
@@ -30,7 +30,6 @@ retrieved 40 members
[accessible: true] `method wait()Unit`
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
-[accessible: true] `method x=> Pong`
[accessible: true] `method →[B](y: B)(Pong, B)`
[accessible: true] `value __leftOfArrowPong`
[accessible: true] `value __resultOfEnsuringPong`
@@ -44,7 +43,7 @@ retrieved 40 members
askTypeCompletion at PingPong.scala(19,20)
================================================================================
[response] aksTypeCompletion at (19,20)
-retrieved 40 members
+retrieved 39 members
[accessible: true] `method !=(x$1: Any)Boolean`
[accessible: true] `method !=(x$1: AnyRef)Boolean`
[accessible: true] `method ##()Int`
@@ -73,7 +72,6 @@ retrieved 40 members
[accessible: true] `method wait()Unit`
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
-[accessible: true] `method x=> Ping`
[accessible: true] `method →[B](y: B)(Ping, B)`
[accessible: true] `value __leftOfArrowPing`
[accessible: true] `value __resultOfEnsuringPing`
diff --git a/test/files/presentation/t5708.check b/test/files/presentation/t5708.check
index c6d4762635..572f404cf4 100644
--- a/test/files/presentation/t5708.check
+++ b/test/files/presentation/t5708.check
@@ -3,7 +3,7 @@ reload: Completions.scala
askTypeCompletion at Completions.scala(17,9)
================================================================================
[response] aksTypeCompletion at (17,9)
-retrieved 44 members
+retrieved 43 members
[accessible: true] `lazy value fooInt`
[accessible: true] `method !=(x$1: Any)Boolean`
[accessible: true] `method !=(x$1: AnyRef)Boolean`
@@ -31,7 +31,6 @@ retrieved 44 members
[accessible: true] `method wait()Unit`
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
-[accessible: true] `method x=> test.Compat.type`
[accessible: true] `method →[B](y: B)(test.Compat.type, B)`
[accessible: true] `value CONST_STRINGString("constant")`
[accessible: true] `value __leftOfArrowtest.Compat.type`
diff --git a/test/files/presentation/visibility.check b/test/files/presentation/visibility.check
index 3026e58f7e..87b4463bf7 100644
--- a/test/files/presentation/visibility.check
+++ b/test/files/presentation/visibility.check
@@ -3,7 +3,7 @@ reload: Completions.scala
askTypeCompletion at Completions.scala(14,12)
================================================================================
[response] aksTypeCompletion at (14,12)
-retrieved 42 members
+retrieved 41 members
[accessible: true] `method !=(x$1: Any)Boolean`
[accessible: true] `method !=(x$1: AnyRef)Boolean`
[accessible: true] `method ##()Int`
@@ -36,7 +36,6 @@ retrieved 42 members
[accessible: true] `method wait()Unit`
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
-[accessible: true] `method x=> accessibility.Foo`
[accessible: true] `method →[B](y: B)(accessibility.Foo, B)`
[accessible: true] `value __leftOfArrowaccessibility.Foo`
[accessible: true] `value __resultOfEnsuringaccessibility.Foo`
@@ -47,7 +46,7 @@ retrieved 42 members
askTypeCompletion at Completions.scala(16,11)
================================================================================
[response] aksTypeCompletion at (16,11)
-retrieved 42 members
+retrieved 41 members
[accessible: true] `method !=(x$1: Any)Boolean`
[accessible: true] `method !=(x$1: AnyRef)Boolean`
[accessible: true] `method ##()Int`
@@ -81,7 +80,6 @@ retrieved 42 members
[accessible: true] `method wait()Unit`
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
-[accessible: true] `method x=> accessibility.Foo`
[accessible: true] `method →[B](y: B)(accessibility.Foo, B)`
[accessible: true] `value __leftOfArrowaccessibility.Foo`
[accessible: true] `value __resultOfEnsuringaccessibility.Foo`
@@ -91,7 +89,7 @@ retrieved 42 members
askTypeCompletion at Completions.scala(22,11)
================================================================================
[response] aksTypeCompletion at (22,11)
-retrieved 42 members
+retrieved 41 members
[accessible: true] `method !=(x$1: Any)Boolean`
[accessible: true] `method !=(x$1: AnyRef)Boolean`
[accessible: true] `method ##()Int`
@@ -124,7 +122,6 @@ retrieved 42 members
[accessible: true] `method wait()Unit`
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
-[accessible: true] `method x=> accessibility.AccessibilityChecks`
[accessible: true] `method →[B](y: B)(accessibility.AccessibilityChecks, B)`
[accessible: true] `value __leftOfArrowaccessibility.AccessibilityChecks`
[accessible: true] `value __resultOfEnsuringaccessibility.AccessibilityChecks`
@@ -135,7 +132,7 @@ retrieved 42 members
askTypeCompletion at Completions.scala(28,10)
================================================================================
[response] aksTypeCompletion at (28,10)
-retrieved 42 members
+retrieved 41 members
[accessible: true] `method !=(x$1: Any)Boolean`
[accessible: true] `method !=(x$1: AnyRef)Boolean`
[accessible: true] `method ##()Int`
@@ -164,7 +161,6 @@ retrieved 42 members
[accessible: true] `method wait()Unit`
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
-[accessible: true] `method x=> accessibility.Foo`
[accessible: true] `method →[B](y: B)(accessibility.Foo, B)`
[accessible: true] `value __leftOfArrowaccessibility.Foo`
[accessible: true] `value __resultOfEnsuringaccessibility.Foo`
@@ -179,7 +175,7 @@ retrieved 42 members
askTypeCompletion at Completions.scala(37,8)
================================================================================
[response] aksTypeCompletion at (37,8)
-retrieved 42 members
+retrieved 41 members
[accessible: true] `method !=(x$1: Any)Boolean`
[accessible: true] `method !=(x$1: AnyRef)Boolean`
[accessible: true] `method ##()Int`
@@ -207,7 +203,6 @@ retrieved 42 members
[accessible: true] `method wait()Unit`
[accessible: true] `method wait(x$1: Long)Unit`
[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
-[accessible: true] `method x=> accessibility.Foo`
[accessible: true] `method →[B](y: B)(accessibility.Foo, B)`
[accessible: true] `value __leftOfArrowaccessibility.Foo`
[accessible: true] `value __resultOfEnsuringaccessibility.Foo`
diff --git a/test/files/run/bitsets.scala b/test/files/run/bitsets.scala
index 27395683b4..bdeb1fd811 100644
--- a/test/files/run/bitsets.scala
+++ b/test/files/run/bitsets.scala
@@ -85,8 +85,8 @@ object TestImmutable {
import scala.collection.immutable.BitSet
val is0 = BitSet()
- val is1 = BitSet.fromArray(Array())
- val is2 = BitSet.fromArray(Array(4))
+ val is1 = BitSet.fromBitMask(Array())
+ val is2 = BitSet.fromBitMask(Array(4))
val is3 = BitSet.empty
Console.println("is0 = " + is0)
diff --git a/test/files/run/enums.scala b/test/files/run/enums.scala
index 9cdeed2691..3aad7ec320 100644
--- a/test/files/run/enums.scala
+++ b/test/files/run/enums.scala
@@ -36,8 +36,11 @@ object Test2 {
object Test3 {
- object Direction extends Enumeration("North", "South", "East", "West") {
- val North, South, East, West = Value;
+ object Direction extends Enumeration {
+ val North = Value("North")
+ val South = Value("South")
+ val East = Value("East")
+ val West = Value("West")
}
def run: Int = {
@@ -48,8 +51,11 @@ object Test3 {
object Test4 {
- object Direction extends Enumeration("North", "South", "East", "West") {
- val North, South, East, West = Value;
+ object Direction extends Enumeration {
+ val North = Value("North")
+ val South = Value("South")
+ val East = Value("East")
+ val West = Value("West")
}
def run: Int = {
diff --git a/test/files/run/map_java_conversions.scala b/test/files/run/map_java_conversions.scala
index 7714b2cc74..751167c04d 100644
--- a/test/files/run/map_java_conversions.scala
+++ b/test/files/run/map_java_conversions.scala
@@ -19,7 +19,7 @@ object Test {
val concMap = new java.util.concurrent.ConcurrentHashMap[String, String]
test(concMap)
- val cmap = asScalaConcurrentMap(concMap)
+ val cmap = mapAsScalaConcurrentMap(concMap)
cmap.putIfAbsent("absentKey", "absentValue")
cmap.put("somekey", "somevalue")
assert(cmap.remove("somekey", "somevalue") == true)
diff --git a/test/files/run/t1505.scala b/test/files/run/t1505.scala
index a246e8a35b..d7feb30ce3 100644
--- a/test/files/run/t1505.scala
+++ b/test/files/run/t1505.scala
@@ -1,5 +1,3 @@
-object P extends Enumeration(0, "A", "B", "C") { val A, B, C = Value }
-
object Q extends Enumeration {
val A = Value("A")
val B = Value("B")
@@ -11,9 +9,14 @@ object R extends Enumeration {
}
object Test extends App {
- assert(P(0) == P.withName("A"))
- assert(P.C == P.withName("C"))
-
assert(Q(0) == Q.withName("A"))
assert(Q.C == Q.withName("C"))
+
+ assert(R(0) == R.withName("A"))
+ assert(R.C == R.withName("C"))
+
+ var failed = false
+ try { Q.withName("x") } catch { case _: NoSuchElementException => failed = true }
+ assert(failed)
+
}
diff --git a/test/files/run/t2873.check b/test/files/run/t2873.check
index 9198280f61..209b679c07 100644
--- a/test/files/run/t2873.check
+++ b/test/files/run/t2873.check
@@ -1 +1 @@
-scala.collection.immutable.RedBlack<A>.Empty$
+RedBlack<A>.Empty$
diff --git a/test/files/run/t2873.scala b/test/files/run/t2873.scala
index 8d48a8dbb4..3a3cc59b46 100644
--- a/test/files/run/t2873.scala
+++ b/test/files/run/t2873.scala
@@ -1,5 +1,10 @@
+abstract class RedBlack[A] extends Serializable {
+ abstract class Tree[+B] extends Serializable
+ case object Empty extends Tree[Nothing]
+}
+
object Test {
def main(args: Array[String]): Unit = {
- println(classOf[scala.collection.immutable.RedBlack[_]].getMethod("Empty").getGenericReturnType)
+ println(classOf[RedBlack[_]].getMethod("Empty").getGenericReturnType)
}
}
diff --git a/test/files/run/t5225_2.check b/test/files/run/t5225_2.check
index 8ed54a14bb..477ea4eb6d 100644
--- a/test/files/run/t5225_2.check
+++ b/test/files/run/t5225_2.check
@@ -1,4 +1,4 @@
{
- def foo(@new cloneable() x: Int) = "";
+ def foo(@new elidable(0) x: Int) = "";
()
}
diff --git a/test/files/run/t5225_2.scala b/test/files/run/t5225_2.scala
index d1b607499c..cf0f23a5c8 100644
--- a/test/files/run/t5225_2.scala
+++ b/test/files/run/t5225_2.scala
@@ -1,6 +1,6 @@
import scala.reflect.runtime.universe._
object Test extends App {
- val tree = reify{def foo(@cloneable x: Int) = ""}.tree
+ val tree = reify{def foo(@annotation.elidable(0) x: Int) = ""}.tree
println(tree.toString)
} \ No newline at end of file
diff --git a/test/files/run/t5879.check b/test/files/run/t5879.check
index b6cbda35a7..4bdf3f5fcf 100644
--- a/test/files/run/t5879.check
+++ b/test/files/run/t5879.check
@@ -1,16 +1,8 @@
Map(1 -> 1)
1
-Map(1 -> 1)
-1
-(1,1)
-Map(1 -> 1)
-1
(1,1)
Map(1 -> 1)
1
(1,2)
Map(1 -> 2)
2
-(1,2)
-Map(1 -> 2)
-2 \ No newline at end of file
diff --git a/test/files/run/t5879.scala b/test/files/run/t5879.scala
index e1c07fc4c2..18dd94289d 100644
--- a/test/files/run/t5879.scala
+++ b/test/files/run/t5879.scala
@@ -17,10 +17,6 @@ object Test {
val r = a.merged(b)(null)
println(r)
println(r(1))
-
- val rold = a.merge(b)
- println(rold)
- println(rold(1))
}
def resolveFirst() {
@@ -34,10 +30,6 @@ object Test {
val r = a.merged(b) { collision }
println(r)
println(r(1))
-
- val rold = a.merge(b, collision)
- println(rold)
- println(rold(1))
}
def resolveSecond() {
@@ -51,10 +43,6 @@ object Test {
val r = a.merged(b) { collision }
println(r)
println(r(1))
-
- val rold = a.merge(b, collision)
- println(rold)
- println(rold(1))
}
def resolveMany() {
@@ -66,9 +54,6 @@ object Test {
val r = a.merged(b) { collision }
for ((k, v) <- r) assert(v == 100 + 2 * k, (k, v))
-
- val rold = a.merge(b, collision)
- for ((k, v) <- r) assert(v == 100 + 2 * k, (k, v))
}
}
diff --git a/test/files/run/t6329_repl.check b/test/files/run/t6329_repl.check
index 8663184bde..55d689f2fb 100644
--- a/test/files/run/t6329_repl.check
+++ b/test/files/run/t6329_repl.check
@@ -3,11 +3,37 @@ Type :help for more information.
scala>
-scala> classManifest[List[_]]
+scala> import scala.reflect.classTag
+import scala.reflect.classTag
+
+scala> classManifest[scala.List[_]]
warning: there were 1 deprecation warnings; re-run with -deprecation for details
-res0: scala.reflect.ClassTag[List[_]] = scala.collection.immutable.List[Any]
+res0: scala.reflect.ClassTag[List[_]] = scala.collection.immutable.List[<?>]
-scala> scala.reflect.classTag[List[_]]
+scala> classTag[scala.List[_]]
res1: scala.reflect.ClassTag[List[_]] = scala.collection.immutable.List
+scala> classManifest[scala.collection.immutable.List[_]]
+warning: there were 1 deprecation warnings; re-run with -deprecation for details
+res2: scala.reflect.ClassTag[List[_]] = scala.collection.immutable.List[<?>]
+
+scala> classTag[scala.collection.immutable.List[_]]
+res3: scala.reflect.ClassTag[List[_]] = scala.collection.immutable.List
+
+scala> classManifest[Predef.Set[_]]
+warning: there were 1 deprecation warnings; re-run with -deprecation for details
+res4: scala.reflect.ClassTag[scala.collection.immutable.Set[_]] = scala.collection.immutable.Set[<?>]
+
+scala> classTag[Predef.Set[_]]
+res5: scala.reflect.ClassTag[scala.collection.immutable.Set[_]] = scala.collection.immutable.Set
+
+scala> classManifest[scala.collection.immutable.Set[_]]
+warning: there were 1 deprecation warnings; re-run with -deprecation for details
+res6: scala.reflect.ClassTag[scala.collection.immutable.Set[_]] = scala.collection.immutable.Set[<?>]
+
+scala> classTag[scala.collection.immutable.Set[_]]
+res7: scala.reflect.ClassTag[scala.collection.immutable.Set[_]] = scala.collection.immutable.Set
+
+scala>
+
scala>
diff --git a/test/files/run/t6329_repl.scala b/test/files/run/t6329_repl.scala
index add6d64962..f210d6512c 100644
--- a/test/files/run/t6329_repl.scala
+++ b/test/files/run/t6329_repl.scala
@@ -2,7 +2,14 @@ import scala.tools.partest.ReplTest
object Test extends ReplTest {
def code = """
- |classManifest[List[_]]
- |scala.reflect.classTag[List[_]]
- |""".stripMargin
+ |import scala.reflect.classTag
+ |classManifest[scala.List[_]]
+ |classTag[scala.List[_]]
+ |classManifest[scala.collection.immutable.List[_]]
+ |classTag[scala.collection.immutable.List[_]]
+ |classManifest[Predef.Set[_]]
+ |classTag[Predef.Set[_]]
+ |classManifest[scala.collection.immutable.Set[_]]
+ |classTag[scala.collection.immutable.Set[_]]
+ """.stripMargin
}
diff --git a/test/files/run/t6329_vanilla.check b/test/files/run/t6329_vanilla.check
index 8282afaeba..ad8f4b5c77 100644
--- a/test/files/run/t6329_vanilla.check
+++ b/test/files/run/t6329_vanilla.check
@@ -1,2 +1,8 @@
-scala.collection.immutable.List[Any]
+scala.collection.immutable.List[<?>]
scala.collection.immutable.List
+scala.collection.immutable.List[<?>]
+scala.collection.immutable.List
+scala.collection.immutable.Set[<?>]
+scala.collection.immutable.Set
+scala.collection.immutable.Set[<?>]
+scala.collection.immutable.Set
diff --git a/test/files/run/t6329_vanilla.scala b/test/files/run/t6329_vanilla.scala
index a31cd5c72e..f2d843896d 100644
--- a/test/files/run/t6329_vanilla.scala
+++ b/test/files/run/t6329_vanilla.scala
@@ -1,4 +1,12 @@
+import scala.reflect.classTag
+
object Test extends App {
- println(classManifest[List[_]])
- println(scala.reflect.classTag[List[_]])
-} \ No newline at end of file
+ println(classManifest[scala.List[_]])
+ println(classTag[scala.List[_]])
+ println(classManifest[scala.collection.immutable.List[_]])
+ println(classTag[scala.collection.immutable.List[_]])
+ println(classManifest[Predef.Set[_]])
+ println(classTag[Predef.Set[_]])
+ println(classManifest[scala.collection.immutable.Set[_]])
+ println(classTag[scala.collection.immutable.Set[_]])
+}
diff --git a/test/files/scalacheck/redblack.scala b/test/files/scalacheck/redblack.scala
deleted file mode 100644
index bbc6504f58..0000000000
--- a/test/files/scalacheck/redblack.scala
+++ /dev/null
@@ -1,213 +0,0 @@
-import org.scalacheck._
-import Prop._
-import Gen._
-
-/*
-Properties of a Red & Black Tree:
-
-A node is either red or black.
-The root is black. (This rule is used in some definitions and not others. Since the
-root can always be changed from red to black but not necessarily vice-versa this
-rule has little effect on analysis.)
-All leaves are black.
-Both children of every red node are black.
-Every simple path from a given node to any of its descendant leaves contains the same number of black nodes.
-*/
-
-abstract class RedBlackTest extends Properties("RedBlack") {
- def minimumSize = 0
- def maximumSize = 5
-
- object RedBlackTest extends scala.collection.immutable.RedBlack[String] {
- def isSmaller(x: String, y: String) = x < y
- }
-
- import RedBlackTest._
-
- def nodeAt[A](tree: Tree[A], n: Int): Option[(String, A)] = if (n < tree.iterator.size && n >= 0)
- Some(tree.iterator.drop(n).next)
- else
- None
-
- def treeContains[A](tree: Tree[A], key: String) = tree.iterator.map(_._1) contains key
-
- def mkTree(level: Int, parentIsBlack: Boolean = false, label: String = ""): Gen[Tree[Int]] =
- if (level == 0) {
- value(Empty)
- } else {
- for {
- oddOrEven <- choose(0, 2)
- tryRed = oddOrEven.sample.get % 2 == 0 // work around arbitrary[Boolean] bug
- isRed = parentIsBlack && tryRed
- nextLevel = if (isRed) level else level - 1
- left <- mkTree(nextLevel, !isRed, label + "L")
- right <- mkTree(nextLevel, !isRed, label + "R")
- } yield {
- if (isRed)
- RedTree(label + "N", 0, left, right)
- else
- BlackTree(label + "N", 0, left, right)
- }
- }
-
- def genTree = for {
- depth <- choose(minimumSize, maximumSize + 1)
- tree <- mkTree(depth)
- } yield tree
-
- type ModifyParm
- def genParm(tree: Tree[Int]): Gen[ModifyParm]
- def modify(tree: Tree[Int], parm: ModifyParm): Tree[Int]
-
- def genInput: Gen[(Tree[Int], ModifyParm, Tree[Int])] = for {
- tree <- genTree
- parm <- genParm(tree)
- } yield (tree, parm, modify(tree, parm))
-}
-
-trait RedBlackInvariants {
- self: RedBlackTest =>
-
- import RedBlackTest._
-
- def rootIsBlack[A](t: Tree[A]) = t.isBlack
-
- def areAllLeavesBlack[A](t: Tree[A]): Boolean = t match {
- case Empty => t.isBlack
- case ne: NonEmpty[_] => List(ne.left, ne.right) forall areAllLeavesBlack
- }
-
- def areRedNodeChildrenBlack[A](t: Tree[A]): Boolean = t match {
- case RedTree(_, _, left, right) => List(left, right) forall (t => t.isBlack && areRedNodeChildrenBlack(t))
- case BlackTree(_, _, left, right) => List(left, right) forall areRedNodeChildrenBlack
- case Empty => true
- }
-
- def blackNodesToLeaves[A](t: Tree[A]): List[Int] = t match {
- case Empty => List(1)
- case BlackTree(_, _, left, right) => List(left, right) flatMap blackNodesToLeaves map (_ + 1)
- case RedTree(_, _, left, right) => List(left, right) flatMap blackNodesToLeaves
- }
-
- def areBlackNodesToLeavesEqual[A](t: Tree[A]): Boolean = t match {
- case Empty => true
- case ne: NonEmpty[_] =>
- (
- blackNodesToLeaves(ne).distinct.size == 1
- && areBlackNodesToLeavesEqual(ne.left)
- && areBlackNodesToLeavesEqual(ne.right)
- )
- }
-
- def orderIsPreserved[A](t: Tree[A]): Boolean =
- t.iterator zip t.iterator.drop(1) forall { case (x, y) => isSmaller(x._1, y._1) }
-
- def setup(invariant: Tree[Int] => Boolean) = forAll(genInput) { case (tree, parm, newTree) =>
- invariant(newTree)
- }
-
- property("root is black") = setup(rootIsBlack)
- property("all leaves are black") = setup(areAllLeavesBlack)
- property("children of red nodes are black") = setup(areRedNodeChildrenBlack)
- property("black nodes are balanced") = setup(areBlackNodesToLeavesEqual)
- property("ordering of keys is preserved") = setup(orderIsPreserved)
-}
-
-object TestInsert extends RedBlackTest with RedBlackInvariants {
- import RedBlackTest._
-
- override type ModifyParm = Int
- override def genParm(tree: Tree[Int]): Gen[ModifyParm] = choose(0, tree.iterator.size + 1)
- override def modify(tree: Tree[Int], parm: ModifyParm): Tree[Int] = tree update (generateKey(tree, parm), 0)
-
- def generateKey(tree: Tree[Int], parm: ModifyParm): String = nodeAt(tree, parm) match {
- case Some((key, _)) => key.init.mkString + "MN"
- case None => nodeAt(tree, parm - 1) match {
- case Some((key, _)) => key.init.mkString + "RN"
- case None => "N"
- }
- }
-
- property("update adds elements") = forAll(genInput) { case (tree, parm, newTree) =>
- treeContains(newTree, generateKey(tree, parm))
- }
-}
-
-object TestModify extends RedBlackTest {
- import RedBlackTest._
-
- def newValue = 1
- override def minimumSize = 1
- override type ModifyParm = Int
- override def genParm(tree: Tree[Int]): Gen[ModifyParm] = choose(0, tree.iterator.size)
- override def modify(tree: Tree[Int], parm: ModifyParm): Tree[Int] = nodeAt(tree, parm) map {
- case (key, _) => tree update (key, newValue)
- } getOrElse tree
-
- property("update modifies values") = forAll(genInput) { case (tree, parm, newTree) =>
- nodeAt(tree,parm) forall { case (key, _) =>
- newTree.iterator contains (key, newValue)
- }
- }
-}
-
-object TestDelete extends RedBlackTest with RedBlackInvariants {
- import RedBlackTest._
-
- override def minimumSize = 1
- override type ModifyParm = Int
- override def genParm(tree: Tree[Int]): Gen[ModifyParm] = choose(0, tree.iterator.size)
- override def modify(tree: Tree[Int], parm: ModifyParm): Tree[Int] = nodeAt(tree, parm) map {
- case (key, _) => tree delete key
- } getOrElse tree
-
- property("delete removes elements") = forAll(genInput) { case (tree, parm, newTree) =>
- nodeAt(tree, parm) forall { case (key, _) =>
- !treeContains(newTree, key)
- }
- }
-}
-
-object TestRange extends RedBlackTest with RedBlackInvariants {
- import RedBlackTest._
-
- override type ModifyParm = (Option[Int], Option[Int])
- override def genParm(tree: Tree[Int]): Gen[ModifyParm] = for {
- from <- choose(0, tree.iterator.size)
- to <- choose(0, tree.iterator.size) suchThat (from <=)
- optionalFrom <- oneOf(Some(from), None, Some(from)) // Double Some(n) to get around a bug
- optionalTo <- oneOf(Some(to), None, Some(to)) // Double Some(n) to get around a bug
- } yield (optionalFrom, optionalTo)
-
- override def modify(tree: Tree[Int], parm: ModifyParm): Tree[Int] = {
- val from = parm._1 flatMap (nodeAt(tree, _) map (_._1))
- val to = parm._2 flatMap (nodeAt(tree, _) map (_._1))
- tree range (from, to)
- }
-
- property("range boundaries respected") = forAll(genInput) { case (tree, parm, newTree) =>
- val from = parm._1 flatMap (nodeAt(tree, _) map (_._1))
- val to = parm._2 flatMap (nodeAt(tree, _) map (_._1))
- ("lower boundary" |: (from forall ( key => newTree.iterator.map(_._1) forall (key <=)))) &&
- ("upper boundary" |: (to forall ( key => newTree.iterator.map(_._1) forall (key >))))
- }
-
- property("range returns all elements") = forAll(genInput) { case (tree, parm, newTree) =>
- val from = parm._1 flatMap (nodeAt(tree, _) map (_._1))
- val to = parm._2 flatMap (nodeAt(tree, _) map (_._1))
- val filteredTree = (tree.iterator
- .map(_._1)
- .filter(key => from forall (key >=))
- .filter(key => to forall (key <))
- .toList)
- filteredTree == newTree.iterator.map(_._1).toList
- }
-}
-
-object Test extends Properties("RedBlack") {
- include(TestInsert)
- include(TestModify)
- include(TestDelete)
- include(TestRange)
-}
-