summaryrefslogtreecommitdiffstats
path: root/Scala/objsets/src/test/scala
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2013-04-12 16:58:26 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2016-11-10 18:03:23 +0100
commitfe6c2fe7035df29901899d7acbf1425ac350f4a2 (patch)
tree6b1fb9989994f28dec62b279d71b3e1484b31fde /Scala/objsets/src/test/scala
parentef6855b60bf498deb42298708112a0b0ae9f334c (diff)
downloadcoursera-fe6c2fe7035df29901899d7acbf1425ac350f4a2.zip
coursera-fe6c2fe7035df29901899d7acbf1425ac350f4a2.tar.gz
Scala : Scala : add objsets
Diffstat (limited to 'Scala/objsets/src/test/scala')
-rw-r--r--Scala/objsets/src/test/scala/objsets/TweetSetSuite.scala72
1 files changed, 72 insertions, 0 deletions
diff --git a/Scala/objsets/src/test/scala/objsets/TweetSetSuite.scala b/Scala/objsets/src/test/scala/objsets/TweetSetSuite.scala
new file mode 100644
index 0000000..be82938
--- /dev/null
+++ b/Scala/objsets/src/test/scala/objsets/TweetSetSuite.scala
@@ -0,0 +1,72 @@
+package objsets
+
+import org.scalatest.FunSuite
+
+import org.junit.runner.RunWith
+import org.scalatest.junit.JUnitRunner
+
+@RunWith(classOf[JUnitRunner])
+class TweetSetSuite extends FunSuite {
+ trait TestSets {
+ val set1 = new Empty
+ val set2 = set1.incl(new Tweet("a", "a body", 20))
+ val set3 = set2.incl(new Tweet("b", "b body", 20))
+ val c = new Tweet("c", "c body", 7)
+ val d = new Tweet("d", "d body", 9)
+ val set4c = set3.incl(c)
+ val set4d = set3.incl(d)
+ val set5 = set4c.incl(d)
+ }
+
+ def asSet(tweets: TweetSet): Set[Tweet] = {
+ var res = Set[Tweet]()
+ tweets.foreach(res += _)
+ res
+ }
+
+ def size(set: TweetSet): Int = asSet(set).size
+
+ test("filter: on empty set") {
+ new TestSets {
+ assert(size(set1.filter(tw => tw.user == "a")) === 0)
+ }
+ }
+
+ test("filter: a on set5") {
+ new TestSets {
+ assert(size(set5.filter(tw => tw.user == "a")) === 1)
+ }
+ }
+
+ test("filter: 20 on set5") {
+ new TestSets {
+ assert(size(set5.filter(tw => tw.retweets == 20)) === 2)
+ }
+ }
+
+ test("union: set4c and set4d") {
+ new TestSets {
+ assert(size(set4c.union(set4d)) === 4)
+ }
+ }
+
+ test("union: with empty set (1)") {
+ new TestSets {
+ assert(size(set5.union(set1)) === 4)
+ }
+ }
+
+ test("union: with empty set (2)") {
+ new TestSets {
+ assert(size(set1.union(set5)) === 4)
+ }
+ }
+
+ test("descending: set5") {
+ new TestSets {
+ val trends = set5.descendingByRetweet
+ assert(!trends.isEmpty)
+ assert(trends.head.user == "a" || trends.head.user == "b")
+ }
+ }
+}