|
Scala example source code file (MonoidTest.scala)
The MonoidTest.scala Scala example source codepackage scalaz import std.AllInstances._ import org.scalacheck.Prop.forAll object MonoidTest extends SpecLite { "multiply" ! forAll{ (a: Int, b: Int) => if(b <= 0) { Monoid[Int].multiply(a, b) must_=== 0 } else { Monoid[Int].multiply(a, b) must_=== (a * b) } } "endo multiply" in { import syntax.monoid._ def inc(i: Int) = i + 1 val incTimesThree: Endo[Int] = Endo(inc).multiply(3) incTimesThree(0) must_===(3) } "endo kleisli multiply" in { import syntax.monoid._ val k = Kleisli { i: Int => if (i % 2 == 0) Some(i * 2) else None } val kTimes3 = k.endo.multiply(3) kTimes3.run(2) must_=== (Some(16)) } "unfold" in { val ss = std.stream.unfold(1) { case x if x < 10 => Some((x.toString, x * 2)) case _ => None } ss.toList must_===(List("1", "2", "4", "8")) } "intercalate empty" in ( Foldable[List].intercalate(List[String](), "oops") must_===("") ) "intercalate" in { val xs = List(Vector(Cord("this"), Cord("has")), Vector(), Vector(Cord("elements")), Vector(Cord("beneath")), Vector()) ((Foldable[List] compose Foldable[Vector]).intercalate(xs, Cord("!!")).toString must_===(Cord("this!!has!!elements!!beneath").toString)) } "invariant functor" in { import InvariantFunctorTest._ import syntax.invariantFunctor._ val sg: Monoid[Num] = Monoid[Int].xmap[Num](Num.apply _, _.x) sg.append(Num(1), Num(2)) must_===(Num(3)) sg.zero must_===(Num(0)) } } Other Scala examples (source code examples)Here is a short list of links related to this Scala MonoidTest.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.