Sha256: 5d680e4535fb45eed2265d65ce28896b67f9f10f2d07e9545faed6dbca95749e

Contents?: true

Size: 1.71 KB

Versions: 67

Compression:

Stored size: 1.71 KB

Contents

import org.scalatest.{Matchers, FunSuite}

/** @version 1.1.0 */
class ChangeTest extends FunSuite with Matchers {

  test("single coin change") {
    Change.findFewestCoins(25, List(1, 5, 10, 25, 100)) should be (Some(List(25)))
  }

  test("multiple coin change") {
    pending
    Change.findFewestCoins(15, List(1, 5, 10, 25, 100)) should be (Some(List(5, 10)))
  }

  test("change with Lilliputian Coins") {
    pending
    Change.findFewestCoins(23, List(1, 4, 15, 20, 50)) should be (Some(List(4, 4, 15)))
  }

  test("change with Lower Elbonia Coins") {
    pending
    Change.findFewestCoins(63, List(1, 5, 10, 21, 25)) should be (Some(List(21, 21, 21)))
  }

  test("large target values") {
    pending
    Change.findFewestCoins(999, List(1, 2, 5, 10, 20, 50, 100)) should be (Some(List(2, 2, 5, 20, 20, 50, 100, 100, 100, 100, 100, 100, 100, 100, 100)))
  }

  test("possible change without unit coins available") {
    pending
    Change.findFewestCoins(21, List(2, 5, 10, 20, 50)) should be (Some(List(2, 2, 2, 5, 10)))
  }

  test("another possible change without unit coins available") {
    pending
    Change.findFewestCoins(27, List(4, 5)) should be (Some(List(4, 4, 4, 5, 5, 5)))
  }

  test("no coins make 0 change") {
    pending
    Change.findFewestCoins(0, List(1, 5, 10, 21, 25)) should be (Some(List()))
  }

  test("error testing for change smaller than the smallest of coins") {
    pending
    Change.findFewestCoins(3, List(5, 10)) should be (None)
  }

  test("error if no combination can add up to target") {
    pending
    Change.findFewestCoins(94, List(5, 10)) should be (None)
  }

  test("cannot find negative change values") {
    pending
    Change.findFewestCoins(-5, List(1, 2, 5)) should be (None)
  }
}

Version data entries

67 entries across 67 versions & 1 rubygems

Version Path
trackler-2.2.1.106 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.105 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.104 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.103 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.102 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.101 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.100 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.99 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.98 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.97 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.96 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.95 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.94 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.93 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.92 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.91 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.90 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.89 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.88 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala
trackler-2.2.1.87 tracks/scala/exercises/change/src/test/scala/ChangeTest.scala