diff options
Diffstat (limited to 'test/files/run')
-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) + } +} |