LoginSignup
1
0

More than 5 years have passed since last update.

CFD法を学ぶ、第4回「ソフトウェアテスト技法ドリル」勉強会

Last updated at Posted at 2014-02-03

そーだそーだ、やりたいのはこういうディシジョンツリーに漏れがあった時の対応だ。

CFD.scala
// [CFD法を学ぶ、第4回「ソフトウェアテスト技法ドリル」勉強会](http://softest.cocolog-nifty.com/blog/2011/04/cfd4-28d6.html)

object 買い物合計金額 extends Enumeration {
  type 買い物合計金額 = Value
  val v2000円以上,その他 = Value
}
object カード持参 extends Enumeration {
  type カード持参 = Value
  val 持参している,持参していない = Value
}
object 支払方法 extends Enumeration {
  type 支払方法 = Value
  val 現金,現金以外 = Value
}

object 付与 extends Enumeration {
  type 付与 = Value
  val ポイント付与,付与なし = Value
}

import 買い物合計金額._
import カード持参._
import 支払方法._
import 付与._

def ディシジョンテーブル(a:買い物合計金額,b:カード持参,c:支払方法):付与 = {
  (a,b,c) match {
    case (v2000円以上,持参している,現金) => ポイント付与
    case (v2000円以上,持参している,現金以外) => 付与なし
    case (v2000円以上,持参していない,c) => 付与なし
    case (その他,b,c) => 付与なし
    case (a,b,c) => 付与なし // ここはどうすんの?
  }
}

println(ディシジョンテーブル(v2000円以上,持参していない,現金))
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0