diff options
| author | Danny Lin <danny@kdrag0n.dev> | 2021-08-31 00:36:23 -0700 |
|---|---|---|
| committer | Danny Lin <danny@kdrag0n.dev> | 2021-08-31 00:46:06 -0700 |
| commit | ea736b1f25221b4c41ba7c4a99f427b5d22b0e65 (patch) | |
| tree | ab335f31c145a7afc1b5e95d28df7730f6f25374 | |
| parent | e92ca6fba4c636a4192ec4f8054a2aacce2b6e5c (diff) | |
tests: zcam: Test aliases and viewing condition parameters
| -rw-r--r-- | src/commonTest/kotlin/dev/kdrag0n/colorkt/tests/ZcamTests.kt | 41 |
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) { |
