From e61075c4e173d8fad5127e90046f5b91e97c3180 Mon Sep 17 00:00:00 2001 From: Erik Rozendaal Date: Sat, 7 Jan 2012 19:20:46 +0100 Subject: Tests for takeWhile/dropWhile/span. Also simplified implementation of span to just use splitAt. --- test/files/scalacheck/treeset.scala | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'test/files/scalacheck/treeset.scala') diff --git a/test/files/scalacheck/treeset.scala b/test/files/scalacheck/treeset.scala index 87c3eb7108..e47a1b6cdd 100644 --- a/test/files/scalacheck/treeset.scala +++ b/test/files/scalacheck/treeset.scala @@ -92,6 +92,21 @@ object Test extends Properties("TreeSet") { prefix == subject.take(n) && suffix == subject.drop(n) } + property("takeWhile") = forAll { (subject: TreeMap[Int, String]) => + val result = subject.takeWhile(_._1 < 0) + result.forall(_._1 < 0) && result == subject.take(result.size) + } + + property("dropWhile") = forAll { (subject: TreeMap[Int, String]) => + val result = subject.dropWhile(_._1 < 0) + result.forall(_._1 >= 0) && result == subject.takeRight(result.size) + } + + property("span identity") = forAll { (subject: TreeMap[Int, String]) => + val (prefix, suffix) = subject.span(_._1 < 0) + prefix.forall(_._1 < 0) && suffix.forall(_._1 >= 0) && subject == prefix ++ suffix + } + property("remove single") = forAll { (subject: TreeSet[Int]) => subject.nonEmpty ==> { val element = oneOf(subject.toSeq).sample.get val removed = subject - element -- cgit v1.2.3