summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-09-15 23:12:47 +0000
committerPaul Phillips <paulp@improving.org>2010-09-15 23:12:47 +0000
commit726a3366519b61a63462cae38f8ce01c9bd62d90 (patch)
tree441d267babc93f314c846edb578a1e047f7ca457 /test
parent8562015759b9f99547a78886e28da79e588eaf18 (diff)
downloadscala-726a3366519b61a63462cae38f8ce01c9bd62d90.tar.gz
scala-726a3366519b61a63462cae38f8ce01c9bd62d90.tar.bz2
scala-726a3366519b61a63462cae38f8ce01c9bd62d90.zip
Added implicits to create Orderings from java's...
Added implicits to create Orderings from java's Comparable and Comparator interfaces. Also some cleanup in Sorting. Review by community.
Diffstat (limited to 'test')
-rw-r--r--test/files/run/comparable-comparator.scala28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/files/run/comparable-comparator.scala b/test/files/run/comparable-comparator.scala
new file mode 100644
index 0000000000..aafe10eb59
--- /dev/null
+++ b/test/files/run/comparable-comparator.scala
@@ -0,0 +1,28 @@
+
+object Test {
+ import java.util.Comparator
+
+ class C1(val s: String) extends Comparable[C1] {
+ def compareTo(other: C1) = s compareTo other.s
+ override def toString = s
+ }
+ class C2(val s: String) {
+ def compareTo(other: C2) = s compareTo other.s
+ override def toString = s
+ }
+
+ implicit val cmp: Comparator[C2] = new Comparator[C2] {
+ def compare(p1: C2, p2: C2) = p2.s compareTo p1.s
+ }
+
+ val strs = "zip foo bar baz aggle bing bong" split ' ' toList
+ val c1s = strs map (x => new C1(x))
+ val c2s = strs map (x => new C2(x))
+
+ val sorted1 = c1s.sorted map (_.s)
+ val sorted2 = c2s.sorted map (_.s)
+
+ def main(args: Array[String]): Unit = {
+ assert(sorted1 == sorted2.reverse)
+ }
+}