Testing Basics
Counting Passes
Run several checks and count how many pass.
count-passes
Looping over a list of inputs and tallying the ones that satisfy a condition gives a simple pass count out of the total.
Counting Passes
CountPasses.scala
Replay: real traced execution (multi-file project)
object Main {
def isEven(n: Int): Boolean = {
n % 2 == 0
}
def main(args: Array[String]): Unit = {
val threshold = 0
val inputs = List(2, 3, 4, 5, 6)
var passes = 0
for (n <- inputs) {
if (isEven(n) && n > threshold) {
passes = passes + 1
}
}
println("total=" + inputs.length)
println("passes=" + passes)
}
}
object Main {
def isEven(n: Int): Boolean = {
n % 2 == 0
}
def main(args: Array[String]): Unit = {
val threshold = 2
val inputs = List(2, 3, 4, 5, 6)
var passes = 0
for (n <- inputs) {
if (isEven(n) && n > threshold) {
passes = passes + 1
}
}
println("total=" + inputs.length)
println("passes=" + passes)
}
}
object Main {
def isEven(n: Int): Boolean = {
n % 2 == 0
}
def main(args: Array[String]): Unit = {
val threshold = 4
val inputs = List(2, 3, 4, 5, 6)
var passes = 0
for (n <- inputs) {
if (isEven(n) && n > threshold) {
passes = passes + 1
}
}
println("total=" + inputs.length)
println("passes=" + passes)
}
}
threshold ← 0, inputs ← List(2, 3, 4, 5, 6), passes ← 0
6def main(args: Array[String]): Unit = {7 val threshold→ 0 = 0 //@threshold=2, 48 val inputs→ List(2, 3, 4, 5, 6) = List(2, 3, 4, 5, 6)9 var passes→ 0 = 010 for (n <- inputs) {11 if (isEven(n) && n > threshold) {for (n <- inputs)
pass 1 of 59var passes = 010for (n2 <- inputsList(2, 3, 4, 5, 6)) {11 if (isEven(n) && n > threshold) {All 5 passes — pass 1 is the card above pass n1 2 2 3 3 4 4 5 5 6 def isEven(n: Int): Boolean =
pass 1 of 51object Main {2 def isEven(n2: Int): Boolean = {3 n2 % 2 == 04 }All 5 passes — pass 1 is the card above pass n1 2 2 3 3 4 4 5 5 6 passes ← 1
pass 1 of 310for (n <- inputs) {11 if (isEven(n2) && n > threshold0) {12 passes→ 1 = passes + 113 }14}All 3 passes — pass 1 is the card above pass npasses1 2 0 → 1 2 4 1 → 2 3 6 2 → 3 println("total=" + inputs.length)
16 println("total=" + inputs.length5)17 println("passes=" + passes3)18 }19}outputtotal=5 passes=3
threshold ← 2, inputs ← List(2, 3, 4, 5, 6), passes ← 0
6def main(args: Array[String]): Unit = {7 val threshold→ 2 = 28 val inputs→ List(2, 3, 4, 5, 6) = List(2, 3, 4, 5, 6)9 var passes→ 0 = 010 for (n <- inputs) {11 if (isEven(n) && n > threshold) {for (n <- inputs)
pass 1 of 59var passes = 010for (n2 <- inputsList(2, 3, 4, 5, 6)) {11 if (isEven(n) && n > threshold) {All 5 passes — pass 1 is the card above pass nthresholdpasses1 2 — — 2 3 — — 3 4 2 0 → 1 4 5 — — 5 6 2 1 → 2 def isEven(n: Int): Boolean =
pass 1 of 51object Main {2 def isEven(n2: Int): Boolean = {3 n2 % 2 == 04 }All 5 passes — pass 1 is the card above pass nthresholdpasses1 2 — — 2 3 — — 3 4 2 0 → 1 4 5 — — 5 6 2 1 → 2 passes ← 1
pass 1 of 210for (n <- inputs) {11 if (isEven(n4) && n > threshold2) {12 passes→ 1 = passes + 113 }14}passes ← 2
pass 2 of 210for (n <- inputs) {11 if (isEven(n6) && n > threshold2) {12 passes→ 2 = passes + 113 }14}println("total=" + inputs.length)
16 println("total=" + inputs.length5)17 println("passes=" + passes2)18 }19}outputtotal=5 passes=2
threshold ← 4, inputs ← List(2, 3, 4, 5, 6), passes ← 0
6def main(args: Array[String]): Unit = {7 val threshold→ 4 = 48 val inputs→ List(2, 3, 4, 5, 6) = List(2, 3, 4, 5, 6)9 var passes→ 0 = 010 for (n <- inputs) {11 if (isEven(n) && n > threshold) {for (n <- inputs)
pass 1 of 59var passes = 010for (n2 <- inputsList(2, 3, 4, 5, 6)) {11 if (isEven(n) && n > threshold) {All 5 passes — pass 1 is the card above pass nthresholdpasses1 2 — — 2 3 — — 3 4 — — 4 5 — — 5 6 4 0 → 1 def isEven(n: Int): Boolean =
pass 1 of 51object Main {2 def isEven(n2: Int): Boolean = {3 n2 % 2 == 04 }All 5 passes — pass 1 is the card above pass nthresholdpasses1 2 — — 2 3 — — 3 4 — — 4 5 — — 5 6 4 0 → 1 passes ← 1
10for (n <- inputs) {11 if (isEven(n6) && n > threshold4) {12 passes→ 1 = passes + 113 }14}println("total=" + inputs.length)
16 println("total=" + inputs.length5)17 println("passes=" + passes1)18 }19}outputtotal=5 passes=1