/** * Test: convert XY and brightness to RGB * * @covers \Phue\Helper\ColorConversion::convertXYToRGB */ public function testConvertXYToRGB() { // Conversion back from the test above // Alice Blue $rgb = ColorConversion::convertXYToRGB(0.3088, 0.3212, 233); $this->assertEquals($rgb['red'], 239); $this->assertEquals($rgb['green'], 247); $this->assertEquals($rgb['blue'], 255); // Firebrick $rgb = ColorConversion::convertXYToRGB(0.6622, 0.3024, 35); $this->assertEquals($rgb['red'], 178); $this->assertEquals($rgb['green'], 33); $this->assertEquals($rgb['blue'], 33); // Medium Sea Green $rgb = ColorConversion::convertXYToRGB(0.1979, 0.5004999999999999, 81); $this->assertEquals($rgb['red'], 61); $this->assertEquals($rgb['green'], 178); $this->assertEquals($rgb['blue'], 112); }
/** * Get calculated RGB * * @return array red, green, blue key/value */ public function getRGB() { $xy = $this->getXY(); $bri = $this->getBrightness(); $rgb = ColorConversion::convertXYToRGB($xy['x'], $xy['y'], $bri); return $rgb; }
/** * Test: Get/Set RGB * * @covers \Phue\Light::getRGB * @covers \Phue\Light::setRGB */ public function testGetSetRGB() { $this->stubMockClientSendSetLightStateCommand(); // Make sure original rgb is retrievable $rgb = ColorConversion::convertXYToRGB($this->attributes->state->xy[0], $this->attributes->state->xy[1], $this->attributes->state->bri); $this->assertEquals(array('red' => $rgb['red'], 'green' => $rgb['green'], 'blue' => $rgb['blue']), $this->light->getRGB()); // Ensure setRGB returns self $this->assertEquals($this->light, $this->light->setRGB(50, 50, 50)); // Make sure light attributes are updated $this->assertEquals(array('red' => 50, 'green' => 50, 'blue' => 50), $this->light->getRGB()); }