tests: Tests für natürlichen Transformations-Klassen hinzufügen

This commit is contained in:
2022-03-03 13:22:02 +01:00
parent 03d2680305
commit 92cbb1eb46
4 changed files with 485 additions and 0 deletions
@@ -0,0 +1,121 @@
<?php
namespace TorstenHettstedt\Colors\Tests\Unit\NaturallyTransformer;
use Codeception\Test\Unit;
use Exception;
use TorstenHettstedt\Colors\NaturallyColorModels\CyanMagentaYellowKey;
use TorstenHettstedt\Colors\Tests\Helper\ValidNaturallyColorValuesProvider;
use TorstenHettstedt\Colors\NaturallyTransformer\CyanMagentaYellowKeyTransformer;
class CyanMagentaYellowKeyTransformerTest extends Unit
{
protected CyanMagentaYellowKey $color;
/**
* @return array<string, array<string, float>[]>
*/
public function validRgbValuesProvider(): array
{
return (new ValidNaturallyColorValuesProvider())->getValidColorValues(
ValidNaturallyColorValuesProvider::CMYK,
ValidNaturallyColorValuesProvider::RGB
);
}
/**
* @return array<string, array<string, float>[]>
*/
public function validHsvValuesProvider(): array
{
return (new ValidNaturallyColorValuesProvider())->getValidColorValues(
ValidNaturallyColorValuesProvider::CMYK,
ValidNaturallyColorValuesProvider::HSV
);
}
/**
* @return array<string, array<string, float>[]>
*/
public function validCmykValuesProvider(): array
{
return (new ValidNaturallyColorValuesProvider())->getValidColorValues(
ValidNaturallyColorValuesProvider::CMYK,
ValidNaturallyColorValuesProvider::CMYK
);
}
/**
* @param array<string, float> $pure_color
* @param array<string, float> $rgb
*
* @dataProvider validRgbValuesProvider
*
* @throws Exception
*/
public function testToRedGreenBlue(array $pure_color, array $rgb): void
{
$this->color = $this->make(CyanMagentaYellowKey::class, [
'getPureColor' => $this->make(\TorstenHettstedt\Colors\ColorModels\CyanMagentaYellowKey::class, $pure_color)
]);
$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<string, float> $pure_color
* @param array<string, float> $cmyk
*
* @dataProvider validCmykValuesProvider
*
* @throws Exception
*/
public function testToCyanMagentaYellowKey(array $pure_color, array $cmyk): void
{
$this->color = $this->make(CyanMagentaYellowKey::class, [
'getPureColor' => $this->make(\TorstenHettstedt\Colors\ColorModels\CyanMagentaYellowKey::class, $pure_color)
]);
$transformer = new CyanMagentaYellowKeyTransformer($this->color);
$color = $transformer->toCyanMagentaYellowKey();
$this->assertEquals($cmyk['cyan'], $color->getCyan());
$this->assertEquals($cmyk['magenta'], $color->getMagenta());
$this->assertEquals($cmyk['yellow'], $color->getYellow());
$this->assertEquals($cmyk['key'], $color->getKey());
}
/**
* @param array<string, float> $pure_color
* @param array<string, float> $hsv
*
* @throws Exception
*
* @dataProvider validHsvValuesProvider
*
*/
public function testToHueSaturationValue(array $pure_color, array $hsv): void
{
$this->color = $this->make(CyanMagentaYellowKey::class, [
'getPureColor' => $this->make(\TorstenHettstedt\Colors\ColorModels\CyanMagentaYellowKey::class, $pure_color)
]);
$transformer = new CyanMagentaYellowKeyTransformer($this->color);
$color = $transformer->toHueSaturationValue();
$this->assertEquals($hsv['hue'], $color->getHue());
$this->assertEquals($hsv['saturation'], $color->getSaturation());
$this->assertEquals($hsv['value'], $color->getValue());
}
}
@@ -0,0 +1,118 @@
<?php
namespace TorstenHettstedt\Colors\Tests\Unit\NaturallyTransformer;
use Codeception\Test\Unit;
use Exception;
use TorstenHettstedt\Colors\NaturallyColorModels\HueSaturationValue;
use TorstenHettstedt\Colors\Tests\Helper\ValidNaturallyColorValuesProvider;
use TorstenHettstedt\Colors\NaturallyTransformer\HueSaturationValueTransformer;
class HueSaturationValueTransformerTest extends Unit
{
protected HueSaturationValue $color;
/**
* @return array<string, array<string, float>[]>
*/
public function validCmykValuesProvider(): array
{
return (new ValidNaturallyColorValuesProvider())->getValidColorValues(
ValidNaturallyColorValuesProvider::HSV,
ValidNaturallyColorValuesProvider::CMYK,
);
}
/**
* @return array<string, array<string, float>[]>
*/
public function validRgbValuesProvider(): array
{
return (new ValidNaturallyColorValuesProvider())->getValidColorValues(
ValidNaturallyColorValuesProvider::HSV,
ValidNaturallyColorValuesProvider::RGB,
);
}
/**
* @return array<string, array<string, float>[]>
*/
public function validHsvValuesProvider(): array
{
return (new ValidNaturallyColorValuesProvider())->getValidColorValues(
ValidNaturallyColorValuesProvider::HSV,
ValidNaturallyColorValuesProvider::HSV,
);
}
/**
* @param array<string, float> $pure_color
* @param array<string, float> $rgb
*
* @dataProvider validRgbValuesProvider
*
* @throws Exception
*/
public function testToRedGreenBlue(array $pure_color, array $rgb): void
{
$this->color = $this->make(HueSaturationValue::class, [
'getPureColor' => $this->make(\TorstenHettstedt\Colors\ColorModels\HueSaturationValue::class, $pure_color)
]);
$transformer = new HueSaturationValueTransformer($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<string, float> $pure_color
* @param array<string, float> $cmyk
*
* @throws Exception
* @dataProvider validCmykValuesProvider
*
*/
public function testToCyanMagentaYellowKey(array $pure_color, array $cmyk): void
{
$this->color = $this->make(HueSaturationValue::class, [
'getPureColor' => $this->make(\TorstenHettstedt\Colors\ColorModels\HueSaturationValue::class, $pure_color)
]);
$transformer = new HueSaturationValueTransformer($this->color);
$color = $transformer->toCyanMagentaYellowKey();
$this->assertEquals($cmyk['cyan'], $color->getCyan());
$this->assertEquals($cmyk['magenta'], $color->getMagenta());
$this->assertEquals($cmyk['yellow'], $color->getYellow());
$this->assertEquals($cmyk['key'], $color->getKey());
}
/**
* @param array<string, float> $pure_color
* @param array<string, float> $hsv
*
* @throws Exception
* @dataProvider validHsvValuesProvider
*/
public function testToHueSaturationValue(array $pure_color, array $hsv): void
{
$this->color = $this->make(HueSaturationValue::class, [
'getPureColor' => $this->make(\TorstenHettstedt\Colors\ColorModels\HueSaturationValue::class, $pure_color)
]);
$transformer = new HueSaturationValueTransformer($this->color);
$color = $transformer->toHueSaturationValue();
$this->assertEquals($hsv['hue'], $color->getHue());
$this->assertEquals($hsv['saturation'], $color->getSaturation());
$this->assertEquals($hsv['value'], $color->getValue());
}
}
@@ -0,0 +1,118 @@
<?php
namespace TorstenHettstedt\Colors\Tests\Unit\NaturallyTransformer;
use Codeception\Test\Unit;
use Exception;
use TorstenHettstedt\Colors\NaturallyColorModels\RedGreenBlue;
use TorstenHettstedt\Colors\Tests\Helper\ValidNaturallyColorValuesProvider;
use TorstenHettstedt\Colors\NaturallyTransformer\RedGreenBlueTransformer;
class RedGreenBlueTransformerTest extends Unit
{
protected RedGreenBlue $color;
/**
* @return array<string, array<string, float>[]>
*/
public function validCmykValuesProvider(): array
{
return (new ValidNaturallyColorValuesProvider())->getValidColorValues(
ValidNaturallyColorValuesProvider::RGB,
ValidNaturallyColorValuesProvider::CMYK,
);
}
/**
* @return array<string, array<string, float>[]>
*/
public function validHsvValuesProvider(): array
{
return (new ValidNaturallyColorValuesProvider())->getValidColorValues(
ValidNaturallyColorValuesProvider::RGB,
ValidNaturallyColorValuesProvider::HSV,
);
}
/**
* @return array<string, array<string, float>[]>
*/
public function validRgbValuesProvider(): array
{
return (new ValidNaturallyColorValuesProvider())->getValidColorValues(
ValidNaturallyColorValuesProvider::RGB,
ValidNaturallyColorValuesProvider::RGB,
);
}
/**
* @param array<string, float> $pure_color
* @param array<string, float> $rgb
*
* @dataProvider validRgbValuesProvider
*
* @throws Exception
*/
public function testToRedGreenBlue(array $pure_color, array $rgb): void
{
$this->color = $this->make(RedGreenBlue::class, [
'getPureColor' => $this->make(\TorstenHettstedt\Colors\ColorModels\RedGreenBlue::class, $pure_color)
]);
$transformer = new RedGreenBlueTransformer($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<string, float> $pure_color
* @param array<string, float> $cmyk
*
* @throws Exception
* @dataProvider validCmykValuesProvider
*
*/
public function testToCyanMagentaYellowKey(array $pure_color, array $cmyk): void
{
$this->color = $this->make(RedGreenBlue::class, [
'getPureColor' => $this->make(\TorstenHettstedt\Colors\ColorModels\RedGreenBlue::class, $pure_color)
]);
$transformer = new RedGreenBlueTransformer($this->color);
$color = $transformer->toCyanMagentaYellowKey();
$this->assertEquals($cmyk['cyan'], $color->getCyan());
$this->assertEquals($cmyk['magenta'], $color->getMagenta());
$this->assertEquals($cmyk['yellow'], $color->getYellow());
$this->assertEquals($cmyk['key'], $color->getKey());
}
/**
* @param array<string, float> $pure_color
* @param array<string, float> $hsv
*
* @throws Exception
* @dataProvider validHsvValuesProvider
*/
public function testToHueSaturationValue(array $pure_color, array $hsv): void
{
$this->color = $this->make(RedGreenBlue::class, [
'getPureColor' => $this->make(\TorstenHettstedt\Colors\ColorModels\RedGreenBlue::class, $pure_color)
]);
$transformer = new RedGreenBlueTransformer($this->color);
$color = $transformer->toHueSaturationValue();
$this->assertEquals($hsv['hue'], $color->getHue());
$this->assertEquals($hsv['saturation'], $color->getSaturation());
$this->assertEquals($hsv['value'], $color->getValue());
}
}