From b6c256c84dbb64cee4e120613d465ddbe3d909df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20L=C3=BCcke?= Date: Mon, 1 Mar 2021 17:52:35 +0100 Subject: [PATCH] =?UTF-8?q?Umwandlung-Tests=20f=C3=BCr=20CMYK-Objekte=20ge?= =?UTF-8?q?schrieben.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ColorModelTransformInterface.php | 15 ++ .../CyanMagentaYellowKeyTransformer.php | 33 +++++ .../CyanMagentaYellowKeyTransformerTest.php | 133 ++++++++++++++++++ 3 files changed, 181 insertions(+) create mode 100644 src/Transformer/ColorModelTransformInterface.php create mode 100644 src/Transformer/CyanMagentaYellowKeyTransformer.php create mode 100644 tests/unit/Transformer/CyanMagentaYellowKeyTransformerTest.php diff --git a/src/Transformer/ColorModelTransformInterface.php b/src/Transformer/ColorModelTransformInterface.php new file mode 100644 index 0000000..71fd556 --- /dev/null +++ b/src/Transformer/ColorModelTransformInterface.php @@ -0,0 +1,15 @@ +color = $color; + } + + + public function toRedGreenBlue(): RedGreenBlue + { + // TODO: Implement toRedGreenBlue() method. + } + + public function toCyanMagentaYellowKey(): CyanMagentaYellowKey + { + // TODO: Implement toCyanMagentaYellowKey() method. + } +} \ No newline at end of file diff --git a/tests/unit/Transformer/CyanMagentaYellowKeyTransformerTest.php b/tests/unit/Transformer/CyanMagentaYellowKeyTransformerTest.php new file mode 100644 index 0000000..70b55ab --- /dev/null +++ b/tests/unit/Transformer/CyanMagentaYellowKeyTransformerTest.php @@ -0,0 +1,133 @@ + [ + [ + 'cyan' => 0.0, + 'magenta' => 0.0, + 'yellow' => 0.0, + 'key' => 0.0, + ], + [ + 'red' => 1.0, + 'green' => 1.0, + 'blue' => 1.0, + ] + ], + 'schwarz' => [ + [ + 'cyan' => 0.0, + 'magenta' => 0.0, + 'yellow' => 0.0, + 'key' => 1.0, + ], + [ + 'red' => 0.0, + 'green' => 0.0, + 'blue' => 0.0, + ] + ], + 'cyan' => [ + [ + 'cyan' => 1.0, + 'magenta' => 0.0, + 'yellow' => 0.0, + 'key' => 0.0, + ], + [ + 'red' => 0.0, + 'green' => 1.0, + 'blue' => 1.0, + ] + ], + 'magenta' => [ + [ + 'cyan' => 0.0, + 'magenta' => 1.0, + 'yellow' => 0.0, + 'key' => 0.0, + ], + [ + 'red' => 1.0, + 'green' => 0.0, + 'blue' => 1.0, + ] + ], + 'gelb' => [ + [ + 'cyan' => 0.0, + 'magenta' => 0.0, + 'yellow' => 1.0, + 'key' => 0.0, + ], + [ + 'red' => 1.0, + 'green' => 1.0, + 'blue' => 0.0, + ] + ], + ]; + } + + /** + * @param array $cmyk + * @param array $rgb + * + * @dataProvider validRgbValuesProvider + * + * @throws Exception + */ + public function testToRedGreenBlue(array $cmyk, array $rgb) + { + $this->color = $this->make(CyanMagentaYellowKey::class, $cmyk); + + $transformer = new CyanMagentaYellowKeyTransformer($this->color); + + $color = $transformer->toRedGreenBlue(); + + $this->assertEquals($rgb['red'], $color->getRed()); + $this->assertEquals($rgb['green'], $color->getGreen()); + $this->assertEquals($rgb['blue'], $color->getBlue()); + + } + + /** + * @param array $cmyk + * @param array $rgb + * + * @dataProvider validRgbValuesProvider + * + * @throws Exception + */ + public function testToCyanMagentaYellowKey(array $cmyk, array $rgb) + { + + $this->color = $this->make(CyanMagentaYellowKey::class, $cmyk); + + $transformer = new CyanMagentaYellowKeyTransformer($this->color); + + $color = $transformer->toCyanMagentaYellowKey(); + + $this->assertEquals($rgb['cyan'], $color->getCyan()); + $this->assertEquals($rgb['magenta'], $color->getMagenta()); + $this->assertEquals($rgb['yellow'], $color->getYellow()); + $this->assertEquals($rgb['key'], $color->getKey()); + } +}