diff options
author | Paul Phillips <paulp@improving.org> | 2010-09-15 23:12:47 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-09-15 23:12:47 +0000 |
commit | 726a3366519b61a63462cae38f8ce01c9bd62d90 (patch) | |
tree | 441d267babc93f314c846edb578a1e047f7ca457 /test/files | |
parent | 8562015759b9f99547a78886e28da79e588eaf18 (diff) | |
download | scala-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/files')
-rw-r--r-- | test/files/run/comparable-comparator.scala | 28 |
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) + } +} |