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()); + } +}