1
0
mirror of https://github.com/KarolS/millfork.git synced 2025-04-09 09:41:23 +00:00

MInor test suite improvements

This commit is contained in:
Karol Stasiak 2018-12-19 17:28:15 +01:00
parent 0b90addc9a
commit 49ee0fd3a2
2 changed files with 19 additions and 11 deletions

View File

@ -2,12 +2,12 @@ package millfork.test
import millfork.Cpu
import millfork.test.emu.{EmuBenchmarkRun, EmuCrossPlatformBenchmarkRun, EmuUltraBenchmarkRun}
import org.scalatest.{FunSuite, Matchers}
import org.scalatest.{AppendedClues, FunSuite, Matchers}
/**
* @author Karol Stasiak
*/
class ByteMathSuite extends FunSuite with Matchers {
class ByteMathSuite extends FunSuite with Matchers with AppendedClues {
test("Complex expression") {
EmuCrossPlatformBenchmarkRun(Cpu.Mos, Cpu.Z80, Cpu.Intel8080, Cpu.Sharp)(
@ -174,7 +174,7 @@ class ByteMathSuite extends FunSuite with Matchers {
| output = a * $y
| }
""".
stripMargin)(_.readByte(0xc000) should equal(x * y))
stripMargin)(_.readByte(0xc000) should equal(x * y) withClue s"$x * $y")
}
test("Byte multiplication 2") {
@ -264,6 +264,6 @@ class ByteMathSuite extends FunSuite with Matchers {
| byte f() {return $x}
| byte g() {return $y}
""".
stripMargin)(_.readByte(0xc000) should equal(x * y))
stripMargin)(_.readByte(0xc000) should equal(x * y) withClue s"$x * $y")
}
}

View File

@ -1,12 +1,12 @@
package millfork.test
import millfork.Cpu
import millfork.test.emu.{EmuBenchmarkRun, EmuCmosBenchmarkRun, EmuCrossPlatformBenchmarkRun}
import org.scalatest.{FunSuite, Matchers}
import org.scalatest.{AppendedClues, FunSuite, Matchers}
/**
* @author Karol Stasiak
*/
class WordMathSuite extends FunSuite with Matchers {
class WordMathSuite extends FunSuite with Matchers with AppendedClues {
test("Word addition") {
EmuCrossPlatformBenchmarkRun(Cpu.Sixteen, Cpu.Mos, Cpu.Z80, Cpu.Intel8080, Cpu.Sharp)("""
@ -401,7 +401,7 @@ class WordMathSuite extends FunSuite with Matchers {
| output *= $y
| }
""".
stripMargin)(_.readWord(0xc000) should equal(x * y))
stripMargin)(_.readWord(0xc000) should equal(x * y) withClue s"$x * $y")
}
test("Not-in-place word/byte multiplication") {
@ -420,23 +420,31 @@ class WordMathSuite extends FunSuite with Matchers {
multiplyCase2(2, 100)
multiplyCase2(500, 50)
multiplyCase2(4, 54)
multiplyCase2(1, 10)
multiplyCase2(12, 10)
multiplyCase2(123, 10)
multiplyCase2(1234, 10)
}
private def multiplyCase2(x: Int, y: Int): Unit = {
EmuCrossPlatformBenchmarkRun(Cpu.Mos, Cpu.Z80)(
s"""
| import zp_reg
| word output @$$c000
| word output1 @$$c000
| word output2 @$$c004
| word tmp
| noinline void init() {
| tmp = $x
| }
| void main () {
| init()
| output = $y * tmp
| output = tmp * $y
| output1 = $y * tmp
| output2 = tmp * $y
| }
""".
stripMargin)(_.readWord(0xc000) should equal(x * y))
stripMargin) { m =>
m.readWord(0xc000) should equal(x * y) withClue s"$y * $x"
m.readWord(0xc004) should equal(x * y) withClue s"$x * $y"
}
}
}