summaryrefslogtreecommitdiffstats
path: root/Scala/recfun/src/test/scala
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2013-03-28 22:12:53 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2016-11-10 18:03:21 +0100
commit8d91a5a9141393e6c738d8624f7fe5d1bbdb28f9 (patch)
treea51880194eb31b00611be8dd6d713d3072bd2f2f /Scala/recfun/src/test/scala
parent6b137fb0ee01b203f4008ab85ad88a1c1aec3cbe (diff)
downloadcoursera-8d91a5a9141393e6c738d8624f7fe5d1bbdb28f9.zip
coursera-8d91a5a9141393e6c738d8624f7fe5d1bbdb28f9.tar.gz
Scala : add recfun
Diffstat (limited to 'Scala/recfun/src/test/scala')
-rw-r--r--Scala/recfun/src/test/scala/recfun/BalanceSuite.scala27
-rw-r--r--Scala/recfun/src/test/scala/recfun/CountChangeSuite.scala26
-rw-r--r--Scala/recfun/src/test/scala/recfun/PascalSuite.scala22
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)
+ }
+}