Files
scalaKoans/src/test/scala/org/functionalkoans/forscala/AboutMutableMaps.scala
Tommy Parnell 1dff526dea init
2018-06-02 14:05:05 -04:00

59 lines
2.0 KiB
Scala

package org.functionalkoans.forscala
import support.KoanSuite
import support.BlankValues._
import org.scalatest.matchers.ShouldMatchers
import java.util.Date
import scala.collection.mutable
class AboutMutableMaps extends KoanSuite with ShouldMatchers {
koan("Mutable maps can be created easily") {
val myMap = mutable.Map("MI" -> "Michigan", "OH" -> "Ohio", "WI" -> "Wisconsin", "IA" -> "Iowa")
myMap.size should be(4)
myMap += "OR" -> "Oregon"
myMap contains "OR" should be(true)
}
koan("Mutable maps can have elements removed") {
val myMap = mutable.Map("MI" -> "Michigan", "OH" -> "Ohio", "WI" -> "Wisconsin", "IA" -> "Iowa")
myMap -= "OH"
myMap contains "OH" should be(false)
}
koan("Mutable maps can have tuples of elements removed") {
val myMap = mutable.Map("MI" -> "Michigan", "OH" -> "Ohio", "WI" -> "Wisconsin", "IA" -> "Iowa")
myMap -= ("IA", "OH")
myMap contains "OH" should be(false)
myMap.size should be(2)
}
koan("Mutable maps can have tuples of elements added") {
val myMap = mutable.Map("MI" -> "Michigan", "WI" -> "Wisconsin")
myMap += ("IA" -> "Iowa", "OH" -> "Ohio")
myMap contains "OH" should be(true)
myMap.size should be(4)
}
koan("Mutable maps can have Lists of elements added") {
val myMap = mutable.Map("MI" -> "Michigan", "WI" -> "Wisconsin")
myMap ++= List("IA" -> "Iowa", "OH" -> "Ohio")
myMap contains "OH" should be(true)
myMap.size should be(4)
}
koan("Mutable maps can have Lists of elements removed") {
val myMap = mutable.Map("MI" -> "Michigan", "OH" -> "Ohio", "WI" -> "Wisconsin", "IA" -> "Iowa")
myMap --= List("IA", "OH")
myMap contains "OH" should be(false)
myMap.size should be(2)
}
koan("Mutable maps can be cleared") {
val myMap = mutable.Map("MI" -> "Michigan", "OH" -> "Ohio", "WI" -> "Wisconsin", "IA" -> "Iowa")
myMap.clear() // Convention is to use parens if possible when method called changes state
myMap contains "OH" should be(false)
myMap.size should be(0)
}
}