2017-12-16 22:43:48 +00:00
|
|
|
<?php
|
2018-01-02 00:14:55 +00:00
|
|
|
namespace MisuzuTests;
|
2017-12-16 22:43:48 +00:00
|
|
|
|
2018-01-02 00:14:55 +00:00
|
|
|
use PHPUnit\Framework\TestCase;
|
2017-12-16 22:43:48 +00:00
|
|
|
use Misuzu\Colour;
|
2018-01-05 02:43:09 +00:00
|
|
|
use InvalidArgumentException;
|
2017-12-16 22:43:48 +00:00
|
|
|
|
2017-12-16 22:51:36 +00:00
|
|
|
class ColourTest extends TestCase
|
|
|
|
{
|
2017-12-16 22:43:48 +00:00
|
|
|
public const RED_HEX6 = 67;
|
|
|
|
public const GREEN_HEX6 = 45;
|
|
|
|
public const BLUE_HEX6 = 23;
|
|
|
|
public const SSTR_HEX6 = '#432d17';
|
|
|
|
public const STR_HEX6 = '432d17';
|
|
|
|
public const RAW_HEX6 = 4402455;
|
|
|
|
|
|
|
|
public const RED_HEX3 = 51;
|
|
|
|
public const GREEN_HEX3 = 136;
|
|
|
|
public const BLUE_HEX3 = 221;
|
|
|
|
public const SSTR_HEX3 = '#38d';
|
|
|
|
public const STR_HEX3 = '3388dd';
|
|
|
|
public const RAW_HEX3 = 3377373;
|
|
|
|
|
2017-12-16 22:51:36 +00:00
|
|
|
public function testNone()
|
|
|
|
{
|
2017-12-16 22:43:48 +00:00
|
|
|
$colour = Colour::none();
|
|
|
|
|
2018-03-31 22:28:32 +00:00
|
|
|
$this->assertTrue($colour->getInherit());
|
|
|
|
$this->assertEquals($colour->getRaw(), 0x40000000);
|
|
|
|
$this->assertEquals($colour->getRed(), 0);
|
|
|
|
$this->assertEquals($colour->getGreen(), 0);
|
|
|
|
$this->assertEquals($colour->getBlue(), 0);
|
|
|
|
$this->assertEquals($colour->getHex(), '000000');
|
2017-12-16 22:43:48 +00:00
|
|
|
}
|
|
|
|
|
2018-02-11 13:27:44 +00:00
|
|
|
public function testNull()
|
|
|
|
{
|
|
|
|
$colour = new Colour(null);
|
|
|
|
|
2018-03-31 22:28:32 +00:00
|
|
|
$this->assertTrue($colour->getInherit());
|
|
|
|
$this->assertEquals($colour->getRaw(), 0x40000000);
|
|
|
|
$this->assertEquals($colour->getRed(), 0);
|
|
|
|
$this->assertEquals($colour->getGreen(), 0);
|
|
|
|
$this->assertEquals($colour->getBlue(), 0);
|
|
|
|
$this->assertEquals($colour->getHex(), '000000');
|
2018-02-11 13:27:44 +00:00
|
|
|
}
|
|
|
|
|
2017-12-16 22:51:36 +00:00
|
|
|
public function testFromRaw()
|
|
|
|
{
|
2017-12-16 22:43:48 +00:00
|
|
|
$colour = new Colour(static::RAW_HEX6);
|
|
|
|
|
2018-03-31 22:28:32 +00:00
|
|
|
$this->assertEquals($colour->getHex(), static::STR_HEX6);
|
|
|
|
$this->assertEquals($colour->getRaw(), static::RAW_HEX6);
|
|
|
|
$this->assertEquals($colour->getRed(), static::RED_HEX6);
|
|
|
|
$this->assertEquals($colour->getGreen(), static::GREEN_HEX6);
|
|
|
|
$this->assertEquals($colour->getBlue(), static::BLUE_HEX6);
|
|
|
|
$this->assertFalse($colour->getInherit());
|
2017-12-16 22:43:48 +00:00
|
|
|
}
|
|
|
|
|
2017-12-16 22:51:36 +00:00
|
|
|
public function testFromRGB()
|
|
|
|
{
|
2017-12-16 22:43:48 +00:00
|
|
|
$colour = Colour::fromRGB(static::RED_HEX6, static::GREEN_HEX6, static::BLUE_HEX6);
|
|
|
|
|
2018-03-31 22:28:32 +00:00
|
|
|
$this->assertEquals($colour->getHex(), static::STR_HEX6);
|
|
|
|
$this->assertEquals($colour->getRaw(), static::RAW_HEX6);
|
|
|
|
$this->assertEquals($colour->getRed(), static::RED_HEX6);
|
|
|
|
$this->assertEquals($colour->getGreen(), static::GREEN_HEX6);
|
|
|
|
$this->assertEquals($colour->getBlue(), static::BLUE_HEX6);
|
|
|
|
$this->assertFalse($colour->getInherit());
|
2017-12-16 22:43:48 +00:00
|
|
|
}
|
|
|
|
|
2017-12-16 22:51:36 +00:00
|
|
|
public function testFromHex()
|
|
|
|
{
|
2017-12-16 22:43:48 +00:00
|
|
|
$colour = Colour::fromHex(static::SSTR_HEX6);
|
|
|
|
|
2018-03-31 22:28:32 +00:00
|
|
|
$this->assertEquals($colour->getHex(), static::STR_HEX6);
|
|
|
|
$this->assertEquals($colour->getRaw(), static::RAW_HEX6);
|
|
|
|
$this->assertEquals($colour->getRed(), static::RED_HEX6);
|
|
|
|
$this->assertEquals($colour->getGreen(), static::GREEN_HEX6);
|
|
|
|
$this->assertEquals($colour->getBlue(), static::BLUE_HEX6);
|
|
|
|
$this->assertFalse($colour->getInherit());
|
2017-12-16 22:43:48 +00:00
|
|
|
}
|
|
|
|
|
2017-12-16 22:51:36 +00:00
|
|
|
public function testFromHex3()
|
|
|
|
{
|
2017-12-16 22:43:48 +00:00
|
|
|
$colour = Colour::fromHex(static::SSTR_HEX3);
|
|
|
|
|
2018-03-31 22:28:32 +00:00
|
|
|
$this->assertEquals($colour->getHex(), static::STR_HEX3);
|
|
|
|
$this->assertEquals($colour->getRaw(), static::RAW_HEX3);
|
|
|
|
$this->assertEquals($colour->getRed(), static::RED_HEX3);
|
|
|
|
$this->assertEquals($colour->getGreen(), static::GREEN_HEX3);
|
|
|
|
$this->assertEquals($colour->getBlue(), static::BLUE_HEX3);
|
|
|
|
$this->assertFalse($colour->getInherit());
|
2017-12-16 22:43:48 +00:00
|
|
|
}
|
2018-01-05 02:43:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @expectedException InvalidArgumentException
|
|
|
|
* @expectedExceptionMessage Invalid hex colour format!
|
|
|
|
*/
|
|
|
|
public function testHexException()
|
|
|
|
{
|
|
|
|
Colour::fromHex('invalid hex code');
|
|
|
|
}
|
2017-12-16 22:43:48 +00:00
|
|
|
}
|