diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2013-03-28 22:12:53 +0100 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2016-11-10 18:03:21 +0100 |
commit | 8d91a5a9141393e6c738d8624f7fe5d1bbdb28f9 (patch) | |
tree | a51880194eb31b00611be8dd6d713d3072bd2f2f /Scala/recfun/src/test/scala | |
parent | 6b137fb0ee01b203f4008ab85ad88a1c1aec3cbe (diff) | |
download | coursera-8d91a5a9141393e6c738d8624f7fe5d1bbdb28f9.zip coursera-8d91a5a9141393e6c738d8624f7fe5d1bbdb28f9.tar.gz |
Scala : add recfun
Diffstat (limited to 'Scala/recfun/src/test/scala')
3 files changed, 75 insertions, 0 deletions
diff --git a/Scala/recfun/src/test/scala/recfun/BalanceSuite.scala b/Scala/recfun/src/test/scala/recfun/BalanceSuite.scala new file mode 100644 index 0000000..c040682 --- /dev/null +++ b/Scala/recfun/src/test/scala/recfun/BalanceSuite.scala @@ -0,0 +1,27 @@ +package recfun + +import org.scalatest.FunSuite + +import org.junit.runner.RunWith +import org.scalatest.junit.JUnitRunner + +@RunWith(classOf[JUnitRunner]) +class BalanceSuite extends FunSuite { + import Main.balance + + test("balance: '(if (zero? x) max (/ 1 x))' is balanced") { + assert(balance("(if (zero? x) max (/ 1 x))".toList)) + } + + test("balance: 'I told him ...' is balanced") { + assert(balance("I told him (that it's not (yet) done).\n(But he wasn't listening)".toList)) + } + + test("balance: ':-)' is unbalanced") { + assert(!balance(":-)".toList)) + } + + test("balance: counting is not enough") { + assert(!balance("())(".toList)) + } +} diff --git a/Scala/recfun/src/test/scala/recfun/CountChangeSuite.scala b/Scala/recfun/src/test/scala/recfun/CountChangeSuite.scala new file mode 100644 index 0000000..0da3359 --- /dev/null +++ b/Scala/recfun/src/test/scala/recfun/CountChangeSuite.scala @@ -0,0 +1,26 @@ +package recfun + +import org.scalatest.FunSuite + +import org.junit.runner.RunWith +import org.scalatest.junit.JUnitRunner + +@RunWith(classOf[JUnitRunner]) +class CountChangeSuite extends FunSuite { + import Main.countChange + test("countChange: example given in instructions") { + assert(countChange(4,List(1,2)) === 3) + } + + test("countChange: sorted CHF") { + assert(countChange(300,List(5,10,20,50,100,200,500)) === 1022) + } + + test("countChange: no pennies") { + assert(countChange(301,List(5,10,20,50,100,200,500)) === 0) + } + + test("countChange: unsorted CHF") { + assert(countChange(300,List(500,5,50,100,20,200,10)) === 1022) + } +} diff --git a/Scala/recfun/src/test/scala/recfun/PascalSuite.scala b/Scala/recfun/src/test/scala/recfun/PascalSuite.scala new file mode 100644 index 0000000..58c899e --- /dev/null +++ b/Scala/recfun/src/test/scala/recfun/PascalSuite.scala @@ -0,0 +1,22 @@ +package recfun + +import org.scalatest.FunSuite + +import org.junit.runner.RunWith +import org.scalatest.junit.JUnitRunner + +@RunWith(classOf[JUnitRunner]) +class PascalSuite extends FunSuite { + import Main.pascal + test("pascal: col=0,row=2") { + assert(pascal(0,2) === 1) + } + + test("pascal: col=1,row=2") { + assert(pascal(1,2) === 2) + } + + test("pascal: col=1,row=3") { + assert(pascal(1,3) === 3) + } +} |