public function testEquals()
 {
     $line = new Line(new Coordinate(0, 0), new Coordinate(100, 100));
     $clone = clone $line;
     $this->assertTrue($line->equals($clone));
     $clone->getStart()->move(10, 10);
     $this->assertFalse($line->equals($clone));
     $clone->getStart()->move(0, 0);
     $clone->getEnd()->move(50, 50);
     $this->assertFalse($line->equals($clone));
     $clone->getEnd()->move(100, 100);
     $clone->getColor()->setRed(255);
     $this->assertFalse($line->equals($clone));
 }
 /**
  * {@inheritdoc}
  */
 protected function doApply(CanvasInterface $canvas)
 {
     $width = $canvas->getWidth();
     $height = $canvas->getHeight();
     $line = new Line();
     $line->setColor($this->getColor());
     for ($x = 1; $x <= $width; $x += $this->getSize()) {
         $line->getStart()->move($x, 0);
         $line->getEnd()->move($x, $height);
         $line->draw($canvas);
     }
     for ($y = 1; $y <= $height; $y += $this->getSize()) {
         $line->getStart()->move(0, $y);
         $line->getEnd()->move($width, $y);
         $line->draw($canvas);
     }
 }
 /**
  * {@inheritdoc}
  */
 protected function doApply(CanvasInterface $canvas)
 {
     $c1 = clone $this->getFirstColor();
     $c2 = clone $this->getSecondColor();
     $line = new Line();
     $width = $canvas->getWidth();
     $height = $canvas->getHeight();
     for ($i = 0; $i < $this->getWidth(); $i++) {
         $alpha = round($i / $this->getWidth() * 127);
         $c1->setAlpha($alpha);
         $c2->setAlpha($alpha);
         $line->setStart(new Coordinate($i, $i + 1))->setEnd(new Coordinate($i, $height - $i - 1))->setColor($c1)->draw($canvas)->setStart(new Coordinate($i, $i))->setEnd(new Coordinate($width - $i, $i))->draw($canvas)->setStart(new Coordinate($width - $i, $height - $i - 1))->setEnd(new Coordinate($width - $i, $i + 1))->setColor($c2)->draw($canvas)->setStart(new Coordinate($width - $i, $height - $i - 1))->setEnd(new Coordinate($i, $height - $i))->draw($canvas);
     }
 }