aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Lin <danny@kdrag0n.dev>2021-08-31 00:36:23 -0700
committerDanny Lin <danny@kdrag0n.dev>2021-08-31 00:46:06 -0700
commitea736b1f25221b4c41ba7c4a99f427b5d22b0e65 (patch)
treeab335f31c145a7afc1b5e95d28df7730f6f25374
parente92ca6fba4c636a4192ec4f8054a2aacce2b6e5c (diff)
tests: zcam: Test aliases and viewing condition parameters
-rw-r--r--src/commonTest/kotlin/dev/kdrag0n/colorkt/tests/ZcamTests.kt41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/commonTest/kotlin/dev/kdrag0n/colorkt/tests/ZcamTests.kt b/src/commonTest/kotlin/dev/kdrag0n/colorkt/tests/ZcamTests.kt
index 416a70e..e4598e3 100644
--- a/src/commonTest/kotlin/dev/kdrag0n/colorkt/tests/ZcamTests.kt
+++ b/src/commonTest/kotlin/dev/kdrag0n/colorkt/tests/ZcamTests.kt
@@ -2,12 +2,27 @@ package dev.kdrag0n.colorkt.tests
import dev.kdrag0n.colorkt.cam.Zcam
import dev.kdrag0n.colorkt.cam.Zcam.Companion.toZcam
+import dev.kdrag0n.colorkt.data.Illuminants
+import dev.kdrag0n.colorkt.rgb.LinearSrgb.Companion.toLinear
+import dev.kdrag0n.colorkt.rgb.Srgb
+import dev.kdrag0n.colorkt.tristimulus.CieXyz
+import dev.kdrag0n.colorkt.tristimulus.CieXyz.Companion.toXyz
import dev.kdrag0n.colorkt.tristimulus.CieXyzAbs
+import dev.kdrag0n.colorkt.tristimulus.CieXyzAbs.Companion.toAbs
+import dev.kdrag0n.colorkt.ucs.lab.CieLab
import kotlin.math.abs
import kotlin.test.Test
+import kotlin.test.assertEquals
import kotlin.test.assertTrue
class ZcamTests {
+ private val defaultCond = Zcam.ViewingConditions(
+ surroundFactor = Zcam.ViewingConditions.SURROUND_AVERAGE,
+ adaptingLuminance = 0.4 * CieXyzAbs.DEFAULT_SDR_WHITE_LUMINANCE,
+ backgroundLuminance = CieLab(50.0, 0.0, 0.0).toXyz().toAbs().y,
+ referenceWhite = Illuminants.D65.toAbs(),
+ )
+
@Test
fun zcamExample1() {
val cond = Zcam.ViewingConditions(
@@ -60,6 +75,32 @@ class ZcamTests {
assertApprox(inverted.z, sample.z, comment)
}
}
+
+ @Test
+ fun testZcamAliases() {
+ val zcam = Srgb(0xff00ff).toLinear().toXyz().toAbs().toZcam(defaultCond)
+ zcam.apply {
+ assertEquals(Qz, brightness)
+ assertEquals(Jz, lightness)
+ assertEquals(Mz, colorfulness)
+ assertEquals(Cz, chroma)
+ assertEquals(hz, hue)
+ assertEquals(Sz, saturation)
+ assertEquals(Vz, vividness)
+ assertEquals(Kz, blackness)
+ assertEquals(Wz, whiteness)
+ }
+ }
+
+ @Test
+ fun testViewingConditionParams() {
+ defaultCond.apply {
+ assertEquals(surroundFactor, Zcam.ViewingConditions.SURROUND_AVERAGE)
+ assertEquals(referenceWhite, Illuminants.D65.toAbs())
+ assertEquals(backgroundLuminance, CieLab(50.0, 0.0, 0.0).toXyz().toAbs().y)
+ assertEquals(adaptingLuminance, CieXyz(0.0, 0.4, 0.0).toAbs().y)
+ }
+ }
}
private fun assertSimilar(actual: Double, expected: Double) {