|
Scala example source code file (NonEmptyListTest.scala)
The NonEmptyListTest.scala Scala example source codepackage scalaz import scalaz.scalacheck.ScalazProperties._ import scalaz.scalacheck.ScalazArbitrary._ import std.AllInstances._ import org.scalacheck.Prop.forAll object NonEmptyListTest extends SpecLite { checkAll("NonEmptyList", monad.laws[NonEmptyList]) checkAll("NonEmptyList", bindRec.laws[NonEmptyList]) checkAll("NonEmptyList", plus.laws[NonEmptyList]) checkAll("NonEmptyList", semigroup.laws[NonEmptyList[Int]]) checkAll("NonEmptyList", equal.laws[NonEmptyList[Int]]) checkAll("NonEmptyList", order.laws[NonEmptyList[Int]]) checkAll("NonEmptyList", traverse1.laws[NonEmptyList]) checkAll("NonEmptyList", FoldableTests.anyAndAllLazy[NonEmptyList]) checkAll("NonEmptyList", zip.laws[NonEmptyList]) checkAll("NonEmptyList", align.laws[NonEmptyList]) checkAll("NonEmptyList", comonad.laws[NonEmptyList]) "scanLeft1" ! forAll { fa: NonEmptyList[List[Int]] => def f[A]: (List[A], List[A]) => List[A] = _ ::: _ val a = Foldable1[NonEmptyList].scanLeft1(fa)(f) a.list must_=== fa.tail.scanLeft(fa.head)(f) a.size must_=== fa.size } "scanRight1" ! forAll { fa: NonEmptyList[List[Int]] => def f[A]: (List[A], List[A]) => List[A] = _ ::: _ val a = Foldable1[NonEmptyList].scanRight1(fa)(f) a.list must_=== fa.init.scanRight(fa.last)(f) a.size must_=== fa.size } "findLeft/findRight" in { val a = NonEmptyList(1, 2, 3, 4, 5) Foldable[NonEmptyList].findLeft(a)(_ % 2 == 0) must_=== Some(2) Foldable[NonEmptyList].findRight(a)(_ % 2 == 0) must_=== Some(4) } "findLeft" ! forAll{ a: NonEmptyList[Int] => val f = (_: Int) % 3 == 0 Foldable[NonEmptyList].findLeft(a)(f) must_=== Foldable[IList].findLeft(a.list)(f) } "findRight" ! forAll { a: NonEmptyList[Int] => val f = (_: Int) % 3 == 0 Foldable[NonEmptyList].findRight(a)(f) must_=== Foldable[IList].findRight(a.list)(f) } "distinct" ! forAll { xs: NonEmptyList[Int] => Option(xs.distinct) must_=== std.list.toNel(Foldable[NonEmptyList].toList(xs).distinct) } "NonEmptyList size is correct" ! forAll { xs:NonEmptyList[Int] => xs.size must_===(1 + xs.tail.count(b => true)) } "foldl1 is reduceLeft" ! forAll {(rnge: NonEmptyList[IList[Int]]) => val F = Foldable1[NonEmptyList] rnge.list.toList.reduceLeft(_++_) must_===(F.foldl1(rnge)(a => b => a ++ b)) } "foldr1 is reduceRight" ! forAll {(rnge: NonEmptyList[IList[Int]]) => val F = Foldable1[NonEmptyList] rnge.list.toList.reduceRight(_++_) must_===(F.foldr1(rnge)(a => b => a ++ b)) } "foldRight1 is reduceRight" ! forAll { xs: NonEmptyList[IList[Int]] => val F = Foldable1[NonEmptyList] xs.list.toList.reduceRight(_ ++ _) must_== F.foldRight1(xs)(_ ++ _) } "NonEmptyList.last is correct" ! forAll { xs:NonEmptyList[Int] => xs.reverse.head must_===(xs.last) } "NonEmptyList.init size is correct" ! forAll { xs:NonEmptyList[Int] => xs.init.count(a => true) must_===(xs.tail.count(a => true)) } "correctness of tails" ! forAll { xs: NonEmptyList[Int] => import NonEmptyList._ xs.tails must_=== nel(xs, xs.tail match { case INil() => INil() case ICons(h, t) => nel(h, t).tails.list }) } "toNel is self" ! forAll { xs: NonEmptyList[Int] => Foldable1[NonEmptyList].toNel(xs) must_=== xs } "zipWithIndex" ! forAll { xs: NonEmptyList[Int] => xs.zipWithIndex.list must_== xs.list.zipWithIndex } } Other Scala examples (source code examples)Here is a short list of links related to this Scala NonEmptyListTest.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.