diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2013-04-12 16:58:26 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2016-11-10 18:03:23 +0100 |
commit | fe6c2fe7035df29901899d7acbf1425ac350f4a2 (patch) | |
tree | 6b1fb9989994f28dec62b279d71b3e1484b31fde /Scala/objsets/src/test/scala | |
parent | ef6855b60bf498deb42298708112a0b0ae9f334c (diff) | |
download | coursera-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.scala | 72 |
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") + } + } +} |