
Kotlin
中的面向对象编程
|
67
@Test
internal fun plus() {
val sum = first + second
assertThat(sum, `is`(Complex(3.0, 8.0)))
}
@Test
internal fun minus() {
val diff = second - first
assertThat(diff, `is`(Complex(1.0, 2.0)))
}
@Test
internal fun negate() {
val minus1 = -ONE
➊
assertThat(minus1.real, closeTo(-1.0, 0.000001))
assertThat(minus1.imaginary, closeTo(0.0, 0.000001))
}
@Test
internal fun `Euler's formula`() {
val iPI = I * PI
➋
assertTrue(Complex.equals(iPI.exp(), -ONE, 0.000001))
}
}
➊
导入 Complex.* 以允许用 ONE 来代替 Complex.ONE。
➋
可以使用 I 表示 Complex.I,使用 PI 表示 Math.PI。
在最后一个测试中,Complex 中的 exp 函数返回了 e^{arg} 的值,所以测试演示了
欧拉公式,e^{i * PI} == –1。
这个测试展示了许多重载运算符。如果你编写 ...