|
Scala example source code file (AlignTest.scala)
The AlignTest.scala Scala example source codepackage scalaz import std.AllInstances._ import org.scalacheck.Prop.forAll object AlignTest extends SpecLite { val F = Align[List] "pad" ! forAll{ (xs: List[Int], ys: List[Int]) => val xys = F.pad(xs, ys) xys.foreach(_. mustMatch {case (None, None) => false; case _ => true}) val max = xs.size max ys.size val min = xs.size min ys.size xys.length must_===(max) xys.takeWhile{case (x, y) => x.isDefined && y.isDefined}.size must_===(min) val dropped: List[(Option[Int], Option[Int])] = xys.dropWhile{case (x, y) => x.isDefined && y.isDefined} if(xs.size > ys.size) dropped.foreach(_ mustMatch {case (Some(_), None) => true}) else dropped.foreach(_ mustMatch {case (None, Some(_)) => true}) } "merge" ! forAll{ (xs: List[Int], ys: List[Int]) => val xys = F.merge(xs, ys) xys.size must_===(xs.size max ys.size) xys must_===(xs.zipAll(ys, 0, 0).map{case (x, y) => x + y}) } "alignA" ! forAll{ (xs: List[Int], ys: List[Int]) => val xys = F.alignA(xs, ys) xys.size must_===(xs.size max ys.size) xys.takeWhile(_.isDefined).size must_===(xs.size) (xys.dropWhile(_.isDefined)).foreach(_ must_== None) } "alignB" ! forAll{ (xs: List[Int], ys: List[Int]) => val xys = F.alignB(xs, ys) xys.size must_===(xs.size max ys.size) xys.takeWhile(_.isDefined).size must_===(ys.size) xys.dropWhile(_.isDefined).foreach(_ must_== None) } "alignThis" ! forAll{ (xs: List[Int], ys: List[Int]) => val xys = F.alignThis(xs, ys) xys.size must_===(xs.size max ys.size) xys.dropWhile(_.isEmpty).size must_===((xs.size - ys.size) max 0) xys.dropWhile(_.isEmpty) foreach (_ mustMatch { case Some(_) => true }) } "alignThat" ! forAll{ (xs: List[Int], ys: List[Int]) => val xys = F.alignThat(xs, ys) xys.size must_===(xs.size max ys.size) xys.dropWhile(_.isEmpty).size must_===((ys.size - xs.size) max 0) xys.dropWhile(_.isEmpty) foreach (_ mustMatch { case Some(_) => true }) } "alignBoth" ! forAll{ (xs: List[Int], ys: List[Int]) => val xys = F.alignBoth(xs, ys) xys.size must_===(xs.size max ys.size) xys.takeWhile(_.isDefined).size must_===(xs.size min ys.size) xys.dropWhile(_.isDefined) foreach (_ must_== None) } } Other Scala examples (source code examples)Here is a short list of links related to this Scala AlignTest.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.