blob: 2753ef3186f334dfbdb72ae48de2c30ffcae6c45 [file] [log] [blame]
<?php
/**
* ezcGraphRenderer2dTest
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
* @package Graph
* @version //autogen//
* @subpackage Tests
* @copyright Copyright (C) 2005-2010 eZ Systems AS. All rights reserved.
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
*/
require_once dirname( __FILE__ ) . '/test_case.php';
/**
* Tests for ezcGraph class.
*
* @package Graph
* @subpackage Tests
*/
class ezcGraphRenderer2dTest extends ezcGraphTestCase
{
protected $basePath;
protected $tempDir;
protected $renderer;
protected $driver;
public static function suite()
{
return new PHPUnit_Framework_TestSuite( "ezcGraphRenderer2dTest" );
}
protected function setUp()
{
static $i = 0;
if ( version_compare( phpversion(), '5.1.3', '<' ) )
{
$this->markTestSkipped( "This test requires PHP 5.1.3 or later." );
}
$this->tempDir = $this->createTempDir( __CLASS__ . sprintf( '_%03d_', ++$i ) ) . '/';
$this->basePath = dirname( __FILE__ ) . '/data/';
$this->renderer = new ezcGraphRenderer2d();
$this->driver = $this->getMock( 'ezcGraphSvgDriver', array(
'drawPolygon',
'drawLine',
'drawTextBox',
'drawCircleSector',
'drawCircularArc',
'drawCircle',
'drawImage',
) );
$this->renderer->setDriver( $this->driver );
$this->driver->options->width = 400;
$this->driver->options->height = 200;
}
protected function tearDown()
{
$this->driver = null;
$this->renderer = null;
if ( !$this->hasFailed() )
{
$this->removeTempDir();
}
}
// /*
public function testRenderLabeledPieSegment()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawCircleSector' )
->with(
$this->equalTo( new ezcGraphCoordinate( 200, 100 ), 1. ),
$this->equalTo( 180, 1. ),
$this->equalTo( 180, 1. ),
$this->equalTo( 15, 1. ),
$this->equalTo( 156, 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawCircleSector' )
->with(
$this->equalTo( new ezcGraphCoordinate( 200, 100 ), 1. ),
$this->equalTo( 180, 1. ),
$this->equalTo( 180, 1. ),
$this->equalTo( 15, 1. ),
$this->equalTo( 156, 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#800000' ) ),
$this->equalTo( false )
);
$this->driver
->expects( $this->at( 2 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 205., 166. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 250., 190. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#000000' ) ),
$this->equalTo( 1 )
);
$this->driver
->expects( $this->at( 3 ) )
->method( 'drawCircle' )
->with(
$this->equalTo( new ezcGraphCoordinate( 205., 166. ), 1. ),
$this->equalTo( 6 ),
$this->equalTo( 6 ),
$this->equalTo( ezcGraphColor::fromHex( '#000000' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 4 ) )
->method( 'drawCircle' )
->with(
$this->equalTo( new ezcGraphCoordinate( 250., 190. ), 1. ),
$this->equalTo( 6 ),
$this->equalTo( 6 ),
$this->equalTo( ezcGraphColor::fromHex( '#000000' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 5 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'Testlabel' ),
$this->equalTo( new ezcGraphCoordinate( 256., 180. ), 1. ),
$this->equalTo( 144.5, 1. ),
$this->equalTo( 20., 1. ),
$this->equalTo( 36 )
);
// Render
$this->renderer->drawPieSegment(
new ezcGraphBoundings( 0, 0, 400, 200 ),
new ezcGraphContext(),
ezcGraphColor::fromHex( '#FF0000' ),
15,
156,
'Testlabel',
0
);
$this->renderer->render( $this->tempDir . '/' . __METHOD__ . '.svg' );
}
public function testRenderNonLabeledPieSegment()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawCircleSector' )
->with(
$this->equalTo( new ezcGraphCoordinate( 200., 100. ), 1. ),
$this->equalTo( 180., 1. ),
$this->equalTo( 180., 1. ),
$this->equalTo( 15., 1. ),
$this->equalTo( 156., 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawCircleSector' )
->with(
$this->equalTo( new ezcGraphCoordinate( 200., 100. ), 1. ),
$this->equalTo( 180., 1. ),
$this->equalTo( 180., 1. ),
$this->equalTo( 15., 1. ),
$this->equalTo( 156., 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#800000' ) ),
$this->equalTo( false )
);
// Render
$this->renderer->drawPieSegment(
new ezcGraphBoundings( 0, 0, 400, 200 ),
new ezcGraphContext(),
ezcGraphColor::fromHex( '#FF0000' ),
15,
156,
false,
0
);
$this->renderer->render( $this->tempDir . '/' . __METHOD__ . '.svg' );
}
public function testRenderNonLabeledPieSegmentMoveOut()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawCircleSector' )
->with(
$this->equalTo( new ezcGraphCoordinate( 201., 109. ), 1. ),
$this->equalTo( 180., 1. ),
$this->equalTo( 180., 1. ),
$this->equalTo( 15., 1. ),
$this->equalTo( 156., 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawCircleSector' )
->with(
$this->equalTo( new ezcGraphCoordinate( 201., 109. ), 1. ),
$this->equalTo( 180., 1. ),
$this->equalTo( 180., 1. ),
$this->equalTo( 15., 1. ),
$this->equalTo( 156., 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#800000' ) ),
$this->equalTo( false )
);
// Render
$this->renderer->drawPieSegment(
new ezcGraphBoundings( 0, 0, 400, 200 ),
new ezcGraphContext(),
ezcGraphColor::fromHex( '#FF0000' ),
15,
156,
false,
true
);
$this->renderer->render( $this->tempDir . '/' . __METHOD__ . '.svg' );
}
public function testRenderLotsOfLabeledPieSegments()
{
$this->driver
->expects( $this->at( 13 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'Label 5' ),
$this->equalTo( new ezcGraphCoordinate( 0, 180. ), 1. ),
$this->equalTo( 144.5, 1. ),
$this->equalTo( 20., 1. ),
$this->equalTo( 40 )
);
$this->driver
->expects( $this->at( 17 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'Label 1' ),
$this->equalTo( new ezcGraphCoordinate( 307., 120. ), 1. ),
$this->equalTo( 92.5, 1. ),
$this->equalTo( 20., 1. ),
$this->equalTo( 36 )
);
$this->driver
->expects( $this->at( 21 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'Label 2' ),
$this->equalTo( new ezcGraphCoordinate( 298.5, 140. ), 1. ),
$this->equalTo( 101.5, 1. ),
$this->equalTo( 20., 1. ),
$this->equalTo( 36 )
);
$this->driver
->expects( $this->at( 25 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'Label 3' ),
$this->equalTo( new ezcGraphCoordinate( 283.5, 160. ), 1. ),
$this->equalTo( 116.5, 1. ),
$this->equalTo( 20., 1. ),
$this->equalTo( 36 )
);
$this->driver
->expects( $this->at( 29 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'Label 4' ),
$this->equalTo( new ezcGraphCoordinate( 255.5, 180. ), 1. ),
$this->equalTo( 144.5, 1. ),
$this->equalTo( 20., 1. ),
$this->equalTo( 36 )
);
// Render
$this->renderer->drawPieSegment( new ezcGraphBoundings( 0, 0, 400, 200 ), new ezcGraphContext(), ezcGraphColor::fromHex( '#FF0000' ), 15, 27, 'Label 1', true );
$this->renderer->drawPieSegment( new ezcGraphBoundings( 0, 0, 400, 200 ), new ezcGraphContext(), ezcGraphColor::fromHex( '#FF0000' ), 27, 38, 'Label 2', true );
$this->renderer->drawPieSegment( new ezcGraphBoundings( 0, 0, 400, 200 ), new ezcGraphContext(), ezcGraphColor::fromHex( '#FF0000' ), 38, 45, 'Label 3', true );
$this->renderer->drawPieSegment( new ezcGraphBoundings( 0, 0, 400, 200 ), new ezcGraphContext(), ezcGraphColor::fromHex( '#FF0000' ), 45, 70, 'Label 4', true );
$this->renderer->drawPieSegment( new ezcGraphBoundings( 0, 0, 400, 200 ), new ezcGraphContext(), ezcGraphColor::fromHex( '#FF0000' ), 70, 119, 'Label 5', true );
$this->renderer->render( $this->tempDir . '/' . __METHOD__ . '.svg' );
}
public function testRenderBar()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 157.5, 0. ),
new ezcGraphCoordinate( 157.5, 40. ),
new ezcGraphCoordinate( 242.5, 40. ),
new ezcGraphCoordinate( 242.5, 0. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 157.5, 0. ),
new ezcGraphCoordinate( 157.5, 40. ),
new ezcGraphCoordinate( 242.5, 40. ),
new ezcGraphCoordinate( 242.5, 0. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#800000' ) ),
$this->equalTo( false )
);
$this->renderer->drawBar(
new ezcGraphBoundings( 0, 0, 400, 200 ),
new ezcGraphContext(),
ezcGraphColor::fromHex( '#FF0000' ),
new ezcGraphCoordinate( .5, .2 ),
100,
0,
1,
0
);
}
public function testRenderSecondBar()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 157.5, 0. ),
new ezcGraphCoordinate( 157.5, 40. ),
new ezcGraphCoordinate( 197.5, 40. ),
new ezcGraphCoordinate( 197.5, 0. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( true )
);
$this->renderer->drawBar(
new ezcGraphBoundings( 0, 0, 400, 200 ),
new ezcGraphContext(),
ezcGraphColor::fromHex( '#FF0000' ),
new ezcGraphCoordinate( .5, .2 ),
100,
1,
2,
0
);
}
public function testRenderStackedBar()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 155, 40. ),
new ezcGraphCoordinate( 155, 120. ),
new ezcGraphCoordinate( 245, 120. ),
new ezcGraphCoordinate( 245, 40. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 155, 40. ),
new ezcGraphCoordinate( 155, 120. ),
new ezcGraphCoordinate( 245, 120. ),
new ezcGraphCoordinate( 245, 40. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#800000' ) ),
$this->equalTo( false )
);
$this->renderer->drawStackedBar(
new ezcGraphBoundings( 0, 0, 400, 200 ),
new ezcGraphContext(),
ezcGraphColor::fromHex( '#FF0000' ),
new ezcGraphCoordinate( .5, .2 ),
new ezcGraphCoordinate( .5, .6 ),
100,
0
);
}
public function testRenderDataLine()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 40., 40. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 280., 60. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( 1 )
);
$this->renderer->drawDataLine(
new ezcGraphBoundings( 0, 0, 400, 200 ),
new ezcGraphContext(),
ezcGraphColor::fromHex( '#FF0000' ),
new ezcGraphCoordinate( .1, .2 ),
new ezcGraphCoordinate( .7, .3 )
);
}
public function testRenderFilledDataLine()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 40., 40. ),
new ezcGraphCoordinate( 280., 60. ),
new ezcGraphCoordinate( 280., 0. ),
new ezcGraphCoordinate( 40., 0. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000DD' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 40., 40. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 280., 60. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( 1 )
);
$this->renderer->drawDataLine(
new ezcGraphBoundings( 0, 0, 400, 200 ),
new ezcGraphContext(),
ezcGraphColor::fromHex( '#FF0000' ),
new ezcGraphCoordinate( .1, .2 ),
new ezcGraphCoordinate( .7, .3 ),
0,
1,
ezcGraph::NO_SYMBOL,
null,
ezcGraphColor::fromHex( '#FF0000DD' ),
.0
);
}
public function testRenderFilledDataLineWithIntersection()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 40., 100. ),
new ezcGraphCoordinate( 40., 40. ),
new ezcGraphCoordinate( 184., 100. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000DD' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 280., 100. ),
new ezcGraphCoordinate( 280., 140. ),
new ezcGraphCoordinate( 184., 100. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000DD' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 2 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 40., 40. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 280., 140. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( 1 )
);
$this->renderer->drawDataLine(
new ezcGraphBoundings( 0, 0, 400, 200 ),
new ezcGraphContext(),
ezcGraphColor::fromHex( '#FF0000' ),
new ezcGraphCoordinate( .1, .2 ),
new ezcGraphCoordinate( .7, .7 ),
0,
1,
ezcGraph::NO_SYMBOL,
null,
ezcGraphColor::fromHex( '#FF0000DD' ),
.5
);
}
public function testRenderRadarDataLine()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 200., 50. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 300., 100. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( 1 )
);
$this->renderer->drawRadarDataLine(
new ezcGraphBoundings( 0, 0, 400, 200 ),
new ezcGraphContext(),
ezcGraphColor::fromHex( '#FF0000' ),
new ezcGraphCoordinate( 200., 100. ),
new ezcGraphCoordinate( 0., .5 ),
new ezcGraphCoordinate( .25, .5 )
);
}
public function testRenderFilledRadarDataLine()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 200., 50. ),
new ezcGraphCoordinate( 300., 100. ),
new ezcGraphCoordinate( 200., 100. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000DD' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 200., 50. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 300., 100. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( 1 )
);
$this->renderer->drawRadarDataLine(
new ezcGraphBoundings( 0, 0, 400, 200 ),
new ezcGraphContext(),
ezcGraphColor::fromHex( '#FF0000' ),
new ezcGraphCoordinate( 200., 100. ),
new ezcGraphCoordinate( 0., .5 ),
new ezcGraphCoordinate( .25, .5 ),
0,
1,
ezcGraph::NO_SYMBOL,
null,
ezcGraphColor::fromHex( '#FF0000DD' )
);
}
public function testRenderFilledRadarDataLineWithSymbol()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 200., 50. ),
new ezcGraphCoordinate( 300., 100. ),
new ezcGraphCoordinate( 200., 100. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000DD' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 200., 50. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 300., 100. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( 1 )
);
$this->driver
->expects( $this->at( 2 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 300., 97. ),
new ezcGraphCoordinate( 303., 100. ),
new ezcGraphCoordinate( 300., 103. ),
new ezcGraphCoordinate( 297., 100. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( true )
);
$this->renderer->drawRadarDataLine(
new ezcGraphBoundings( 0, 0, 400, 200 ),
new ezcGraphContext(),
ezcGraphColor::fromHex( '#FF0000' ),
new ezcGraphCoordinate( 200., 100. ),
new ezcGraphCoordinate( 0., .5 ),
new ezcGraphCoordinate( .25, .5 ),
0,
1,
ezcGraph::DIAMOND,
ezcGraphColor::fromHex( '#FF0000' ),
ezcGraphColor::fromHex( '#FF0000DD' )
);
}
public function testRenderSymbolNone()
{
$this->driver
->expects( $this->once() )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 100, 100 ),
new ezcGraphCoordinate( 120, 100 ),
new ezcGraphCoordinate( 120, 120 ),
new ezcGraphCoordinate( 100, 120 ),
) ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
true
);
$this->renderer->drawSymbol(
new ezcGraphBoundings( 100, 100, 120, 120 ),
ezcGraphColor::fromHex( '#FF0000' )
);
}
public function testRenderSymbolDiamond()
{
$this->driver
->expects( $this->once() )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 110, 100 ),
new ezcGraphCoordinate( 120, 110 ),
new ezcGraphCoordinate( 110, 120 ),
new ezcGraphCoordinate( 100, 110 ),
) ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
true
);
$this->renderer->drawSymbol(
new ezcGraphBoundings( 100, 100, 120, 120 ),
ezcGraphColor::fromHex( '#FF0000' ),
ezcGraph::DIAMOND
);
}
public function testRenderSymbolBullet()
{
$this->driver
->expects( $this->once() )
->method( 'drawCircle' )
->with(
$this->equalTo( new ezcGraphCoordinate( 110, 110 ) ),
$this->equalTo( 20 ),
$this->equalTo( 20 ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( true )
);
$this->renderer->drawSymbol(
new ezcGraphBoundings( 100, 100, 120, 120 ),
ezcGraphColor::fromHex( '#FF0000' ),
ezcGraph::BULLET
);
}
public function testRenderSymbolCircle()
{
$this->driver
->expects( $this->once() )
->method( 'drawCircle' )
->with(
$this->equalTo( new ezcGraphCoordinate( 110, 110 ) ),
$this->equalTo( 20 ),
$this->equalTo( 20 ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( false )
);
$this->renderer->drawSymbol(
new ezcGraphBoundings( 100, 100, 120, 120 ),
ezcGraphColor::fromHex( '#FF0000' ),
ezcGraph::CIRCLE
);
}
public function testRenderSymbolSquare()
{
$this->driver
->expects( $this->once() )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 100, 100 ),
new ezcGraphCoordinate( 120, 100 ),
new ezcGraphCoordinate( 120, 120 ),
new ezcGraphCoordinate( 100, 120 ),
) ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( true )
);
$this->renderer->drawSymbol(
new ezcGraphBoundings( 100, 100, 120, 120 ),
ezcGraphColor::fromHex( '#FF0000' ),
ezcGraph::SQUARE
);
}
public function testRenderSymbolBox()
{
$this->driver
->expects( $this->once() )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 100, 100 ),
new ezcGraphCoordinate( 120, 100 ),
new ezcGraphCoordinate( 120, 120 ),
new ezcGraphCoordinate( 100, 120 ),
) ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( false )
);
$this->renderer->drawSymbol(
new ezcGraphBoundings( 100, 100, 120, 120 ),
ezcGraphColor::fromHex( '#FF0000' ),
ezcGraph::BOX
);
}
public function testRenderFilledDataLineWithSymbolSameColor()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 40., 100. ),
new ezcGraphCoordinate( 40., 40. ),
new ezcGraphCoordinate( 184., 100. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000DD' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 280., 100. ),
new ezcGraphCoordinate( 280., 140. ),
new ezcGraphCoordinate( 184., 100. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000DD' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 2 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 40., 40. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 280., 140. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( 1 )
);
$this->driver
->expects( $this->at( 3 ) )
->method( 'drawCircle' )
->with(
$this->equalTo( new ezcGraphCoordinate( 280, 140 ) ),
$this->equalTo( 6 ),
$this->equalTo( 6 ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( false )
);
$this->renderer->drawDataLine(
new ezcGraphBoundings( 0, 0, 400, 200 ),
new ezcGraphContext(),
ezcGraphColor::fromHex( '#FF0000' ),
new ezcGraphCoordinate( .1, .2 ),
new ezcGraphCoordinate( .7, .7 ),
0,
1,
ezcGraph::CIRCLE,
null,
ezcGraphColor::fromHex( '#FF0000DD' ),
.5
);
$this->renderer->render( $this->tempDir . __METHOD__ . 'svg' );
}
public function testRenderFilledDataLineWithSymbolInDifferentColorAndCustomSize()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 40., 100. ),
new ezcGraphCoordinate( 40., 40. ),
new ezcGraphCoordinate( 184., 100. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000DD' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 280., 100. ),
new ezcGraphCoordinate( 280., 140. ),
new ezcGraphCoordinate( 184., 100. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000DD' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 2 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 40., 40. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 280., 140. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( 1 )
);
$this->driver
->expects( $this->at( 3 ) )
->method( 'drawCircle' )
->with(
$this->equalTo( new ezcGraphCoordinate( 280, 140 ) ),
$this->equalTo( 10 ),
$this->equalTo( 10 ),
$this->equalTo( ezcGraphColor::fromHex( '#00FF00' ) ),
$this->equalTo( true )
);
$this->renderer->options->symbolSize = 10;
$this->renderer->drawDataLine(
new ezcGraphBoundings( 0, 0, 400, 200 ),
new ezcGraphContext(),
ezcGraphColor::fromHex( '#FF0000' ),
new ezcGraphCoordinate( .1, .2 ),
new ezcGraphCoordinate( .7, .7 ),
0,
1,
ezcGraph::BULLET,
ezcGraphColor::fromHex( '#00FF00' ),
ezcGraphColor::fromHex( '#FF0000DD' ),
.5
);
$this->renderer->render( $this->tempDir . __METHOD__ . 'svg' );
}
public function testRenderBox()
{
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 1., 1. ),
new ezcGraphCoordinate( 399., 1. ),
new ezcGraphCoordinate( 399., 199. ),
new ezcGraphCoordinate( 1., 199. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( false )
);
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 2., 2. ),
new ezcGraphCoordinate( 398., 2. ),
new ezcGraphCoordinate( 398., 198. ),
new ezcGraphCoordinate( 2., 198. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#BB0000' ) ),
$this->equalTo( true )
);
$boundings = $this->renderer->drawBox(
new ezcGraphBoundings( 0, 0, 400, 200 ),
ezcGraphColor::fromHex( '#BB0000' ),
ezcGraphColor::fromHex( '#FF0000' ),
1,
1,
1
);
$this->assertEquals(
$boundings,
new ezcGraphBoundings( 3., 3., 397., 197. ),
'Returned boundings are not as expected.',
1.
);
}
public function testRenderBoxDifferentPadding()
{
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 3., 3. ),
new ezcGraphCoordinate( 397., 3. ),
new ezcGraphCoordinate( 397., 197. ),
new ezcGraphCoordinate( 3., 197. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( false )
);
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 3., 3. ),
new ezcGraphCoordinate( 397., 3. ),
new ezcGraphCoordinate( 397., 197. ),
new ezcGraphCoordinate( 3., 197. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#BB0000' ) ),
$this->equalTo( true )
);
$boundings = $this->renderer->drawBox(
new ezcGraphBoundings( 0, 0, 400, 200 ),
ezcGraphColor::fromHex( '#BB0000' ),
ezcGraphColor::fromHex( '#FF0000' ),
2,
3,
4
);
$this->assertEquals(
$boundings,
new ezcGraphBoundings( 9., 9., 391., 191. ),
'Returned boundings are not as expected.',
1.
);
}
public function testRenderBoxWithoutBorder()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 1., 1. ),
new ezcGraphCoordinate( 399., 1. ),
new ezcGraphCoordinate( 399., 199. ),
new ezcGraphCoordinate( 1., 199. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#BB0000' ) ),
$this->equalTo( true )
);
$boundings = $this->renderer->drawBox(
new ezcGraphBoundings( 0, 0, 400, 200 ),
ezcGraphColor::fromHex( '#BB0000' ),
null,
0,
1,
1
);
$this->assertEquals(
$boundings,
new ezcGraphBoundings( 2., 2., 398., 198. ),
'Returned boundings are not as expected.',
1.
);
}
public function testRenderBoxWithoutBackground()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 1., 1. ),
new ezcGraphCoordinate( 399., 1. ),
new ezcGraphCoordinate( 399., 199. ),
new ezcGraphCoordinate( 1., 199. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( false )
);
$boundings = $this->renderer->drawBox(
new ezcGraphBoundings( 0, 0, 400, 200 ),
null,
ezcGraphColor::fromHex( '#FF0000' ),
1,
1,
1
);
$this->assertEquals(
$boundings,
new ezcGraphBoundings( 3., 3., 397., 197. ),
'Returned boundings are not as expected.',
1.
);
}
public function testRenderBoxWithTitle()
{
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 1., 1. ),
new ezcGraphCoordinate( 399., 1. ),
new ezcGraphCoordinate( 399., 199. ),
new ezcGraphCoordinate( 1., 199. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( false )
);
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 2., 2. ),
new ezcGraphCoordinate( 398., 2. ),
new ezcGraphCoordinate( 398., 198. ),
new ezcGraphCoordinate( 2., 198. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#BB0000' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 2 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'Boxtitle' ),
$this->equalTo( new ezcGraphCoordinate( 3., 3. ), 1. ),
$this->equalTo( 394., 1. ),
$this->equalTo( 20., 1. ),
$this->equalTo( 48 )
);
$boundings = $this->renderer->drawBox(
new ezcGraphBoundings( 0, 0, 400, 200 ),
ezcGraphColor::fromHex( '#BB0000' ),
ezcGraphColor::fromHex( '#FF0000' ),
1,
1,
1,
'Boxtitle',
20
);
$this->assertEquals(
$boundings,
new ezcGraphBoundings( 3., 24., 397., 176. ),
'Returned boundings are not as expected.',
1.
);
}
public function testRenderBoxWithBottomTitleAndLeftAlignement()
{
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 1., 1. ),
new ezcGraphCoordinate( 399., 1. ),
new ezcGraphCoordinate( 399., 199. ),
new ezcGraphCoordinate( 1., 199. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( false )
);
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 2., 2. ),
new ezcGraphCoordinate( 398., 2. ),
new ezcGraphCoordinate( 398., 198. ),
new ezcGraphCoordinate( 2., 198. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#BB0000' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 2 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'Boxtitle' ),
$this->equalTo( new ezcGraphCoordinate( 3., 177. ), 1. ),
$this->equalTo( 394., 1. ),
$this->equalTo( 20., 1. ),
$this->equalTo( 4 )
);
$this->renderer->options->titleAlignement = ezcGraph::LEFT;
$this->renderer->options->titlePosition = ezcGraph::BOTTOM;
$boundings = $this->renderer->drawBox(
new ezcGraphBoundings( 0, 0, 400, 200 ),
ezcGraphColor::fromHex( '#BB0000' ),
ezcGraphColor::fromHex( '#FF0000' ),
1,
1,
1,
'Boxtitle',
20
);
$this->assertEquals(
$boundings,
new ezcGraphBoundings( 3., 3., 397., 176. ),
'Returned boundings are not as expected.',
1.
);
}
public function testRenderText()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'A common test string is "foobar"' ),
$this->equalTo( new ezcGraphCoordinate( 0., 0. ), 1. ),
$this->equalTo( 400., 1. ),
$this->equalTo( 200., 1. ),
$this->equalTo( 20 )
);
$this->renderer->drawText(
new ezcGraphBoundings( 0, 0, 400, 200 ),
'A common test string is "foobar"',
20
);
}
public function testRenderBackgroundImage()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawImage' )
->with(
$this->equalTo( dirname( __FILE__ ) . '/data/jpeg.jpg' ),
$this->equalTo( new ezcGraphCoordinate( 125., 43.5 ), 1. ),
$this->equalTo( 150., 1. ),
$this->equalTo( 113., 1. )
);
$this->renderer->drawBackgroundImage(
new ezcGraphBoundings( 0, 0, 400, 200 ),
dirname( __FILE__ ) . '/data/jpeg.jpg'
);
}
public function testRenderTopLeftBackgroundImage()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawImage' )
->with(
$this->equalTo( dirname( __FILE__ ) . '/data/jpeg.jpg' ),
$this->equalTo( new ezcGraphCoordinate( 0., 0. ), 1. ),
$this->equalTo( 150., 1. ),
$this->equalTo( 113., 1. )
);
$this->renderer->drawBackgroundImage(
new ezcGraphBoundings( 0, 0, 400, 200 ),
dirname( __FILE__ ) . '/data/jpeg.jpg',
ezcGraph::TOP | ezcGraph::LEFT
);
}
public function testRenderBottomRightBackgroundImage()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawImage' )
->with(
$this->equalTo( dirname( __FILE__ ) . '/data/jpeg.jpg' ),
$this->equalTo( new ezcGraphCoordinate( 250., 87. ), 1. ),
$this->equalTo( 150., 1. ),
$this->equalTo( 113., 1. )
);
$this->renderer->drawBackgroundImage(
new ezcGraphBoundings( 0, 0, 400, 200 ),
dirname( __FILE__ ) . '/data/jpeg.jpg',
ezcGraph::BOTTOM | ezcGraph::RIGHT
);
}
public function testRenderToBigBackgroundImage()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawImage' )
->with(
$this->equalTo( dirname( __FILE__ ) . '/data/jpeg.jpg' ),
$this->equalTo( new ezcGraphCoordinate( 0., 0. ), 1. ),
$this->equalTo( 100., 1. ),
$this->equalTo( 100., 1. )
);
$this->renderer->drawBackgroundImage(
new ezcGraphBoundings( 0, 0, 100, 100 ),
dirname( __FILE__ ) . '/data/jpeg.jpg',
ezcGraph::BOTTOM | ezcGraph::RIGHT
);
}
public function testRenderBackgroundImageRepeatX()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawImage' )
->with(
$this->equalTo( dirname( __FILE__ ) . '/data/jpeg.jpg' ),
$this->equalTo( new ezcGraphCoordinate( 0., 87. ), 1. ),
$this->equalTo( 150., 1. ),
$this->equalTo( 113., 1. )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawImage' )
->with(
$this->equalTo( dirname( __FILE__ ) . '/data/jpeg.jpg' ),
$this->equalTo( new ezcGraphCoordinate( 150., 87. ), 1. ),
$this->equalTo( 150., 1. ),
$this->equalTo( 113., 1. )
);
$this->driver
->expects( $this->at( 2 ) )
->method( 'drawImage' )
->with(
$this->equalTo( dirname( __FILE__ ) . '/data/jpeg.jpg' ),
$this->equalTo( new ezcGraphCoordinate( 300., 87. ), 1. ),
$this->equalTo( 150., 1. ),
$this->equalTo( 113., 1. )
);
$this->renderer->drawBackgroundImage(
new ezcGraphBoundings( 0, 0, 400, 200 ),
dirname( __FILE__ ) . '/data/jpeg.jpg',
ezcGraph::BOTTOM | ezcGraph::RIGHT,
ezcGraph::HORIZONTAL
);
}
public function testRenderBackgroundImageRepeatY()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawImage' )
->with(
$this->equalTo( dirname( __FILE__ ) . '/data/jpeg.jpg' ),
$this->equalTo( new ezcGraphCoordinate( 250., 0. ), 1. ),
$this->equalTo( 150., 1. ),
$this->equalTo( 113., 1. )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawImage' )
->with(
$this->equalTo( dirname( __FILE__ ) . '/data/jpeg.jpg' ),
$this->equalTo( new ezcGraphCoordinate( 250., 113. ), 1. ),
$this->equalTo( 150., 1. ),
$this->equalTo( 113., 1. )
);
$this->renderer->drawBackgroundImage(
new ezcGraphBoundings( 0, 0, 400, 200 ),
dirname( __FILE__ ) . '/data/jpeg.jpg',
ezcGraph::BOTTOM | ezcGraph::RIGHT,
ezcGraph::VERTICAL
);
}
public function testRenderBackgroundImageRepeatBoth()
{
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawImage' )
->with(
$this->equalTo( dirname( __FILE__ ) . '/data/jpeg.jpg' ),
$this->equalTo( new ezcGraphCoordinate( 0., 0. ), 1. ),
$this->equalTo( 150., 1. ),
$this->equalTo( 113., 1. )
);
$this->driver
->expects( $this->at( 3 ) )
->method( 'drawImage' )
->with(
$this->equalTo( dirname( __FILE__ ) . '/data/jpeg.jpg' ),
$this->equalTo( new ezcGraphCoordinate( 150., 113. ), 1. ),
$this->equalTo( 150., 1. ),
$this->equalTo( 113., 1. )
);
$this->driver
->expects( $this->at( 5 ) )
->method( 'drawImage' )
->with(
$this->equalTo( dirname( __FILE__ ) . '/data/jpeg.jpg' ),
$this->equalTo( new ezcGraphCoordinate( 300., 113. ), 1. ),
$this->equalTo( 150., 1. ),
$this->equalTo( 113., 1. )
);
$this->renderer->drawBackgroundImage(
new ezcGraphBoundings( 0, 0, 400, 200 ),
dirname( __FILE__ ) . '/data/jpeg.jpg',
ezcGraph::BOTTOM | ezcGraph::RIGHT,
ezcGraph::VERTICAL | ezcGraph::HORIZONTAL
);
}
public function testRenderVerticalLegendSymbols()
{
$chart = new ezcGraphLineChart();
$chart->data['sampleData'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['sampleData']->color = '#0000FF';
$chart->data['sampleData']->symbol = ezcGraph::DIAMOND;
$chart->data['moreData'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['moreData']->color = '#FF0000';
$chart->data['evenMoreData'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['evenMoreData']->color = '#00FF00';
$chart->data['evenMoreData']->label = 'Even more data';
$chart->legend->generateFromDataSets( $chart->data );
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 8., 1. ),
new ezcGraphCoordinate( 15., 8. ),
new ezcGraphCoordinate( 8., 15. ),
new ezcGraphCoordinate( 1., 8. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#0000FF' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 2 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 1., 19. ),
new ezcGraphCoordinate( 15., 19. ),
new ezcGraphCoordinate( 15., 33. ),
new ezcGraphCoordinate( 1., 33. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 4 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 1., 37. ),
new ezcGraphCoordinate( 15., 37. ),
new ezcGraphCoordinate( 15., 51. ),
new ezcGraphCoordinate( 1., 51. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#00FF00' ) ),
$this->equalTo( true )
);
$this->renderer->drawLegend(
new ezcGraphBoundings( 0, 0, 100, 200 ),
$chart->legend
);
}
public function testRenderVerticalLegendText()
{
$chart = new ezcGraphLineChart();
$chart->data['sampleData'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['sampleData']->color = '#0000FF';
$chart->data['sampleData']->symbol = ezcGraph::DIAMOND;
$chart->data['moreData'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['moreData']->color = '#FF0000';
$chart->data['evenMoreData'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['evenMoreData']->color = '#00FF00';
$chart->data['evenMoreData']->label = 'Even more data';
$chart->legend->generateFromDataSets( $chart->data );
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'sampleData' ),
$this->equalTo( new ezcGraphCoordinate( 16., 1. ), 1. ),
$this->equalTo( 83., 1. ),
$this->equalTo( 14., 1. ),
$this->equalTo( 36 )
);
$this->driver
->expects( $this->at( 3 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'moreData' ),
$this->equalTo( new ezcGraphCoordinate( 16., 19. ), 1. ),
$this->equalTo( 83., 1. ),
$this->equalTo( 14., 1. ),
$this->equalTo( 36 )
);
$this->driver
->expects( $this->at( 5 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'Even more data' ),
$this->equalTo( new ezcGraphCoordinate( 16., 37. ), 1. ),
$this->equalTo( 83., 1. ),
$this->equalTo( 14., 1. ),
$this->equalTo( 36 )
);
$this->renderer->drawLegend(
new ezcGraphBoundings( 0, 0, 100, 200 ),
$chart->legend
);
}
public function testRenderHorizontalLegendSymbols()
{
$chart = new ezcGraphLineChart();
$chart->data['sampleData'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['sampleData']->color = '#0000FF';
$chart->data['sampleData']->symbol = ezcGraph::DIAMOND;
$chart->data['moreData'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['moreData']->color = '#FF0000';
$chart->data['evenMoreData'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['evenMoreData']->color = '#00FF00';
$chart->data['evenMoreData']->label = 'Even more data';
$chart->legend->generateFromDataSets( $chart->data );
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 8., 1. ),
new ezcGraphCoordinate( 15., 8. ),
new ezcGraphCoordinate( 8., 15. ),
new ezcGraphCoordinate( 1., 8. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#0000FF' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 2 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 101., 1. ),
new ezcGraphCoordinate( 115., 1. ),
new ezcGraphCoordinate( 115., 15. ),
new ezcGraphCoordinate( 101., 15. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#FF0000' ) ),
$this->equalTo( true )
);
$this->driver
->expects( $this->at( 4 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 201., 1. ),
new ezcGraphCoordinate( 215., 1. ),
new ezcGraphCoordinate( 215., 15. ),
new ezcGraphCoordinate( 201., 15. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#00FF00' ) ),
$this->equalTo( true )
);
$this->renderer->drawLegend(
new ezcGraphBoundings( 0, 0, 300, 50 ),
$chart->legend,
ezcGraph::HORIZONTAL
);
}
public function testRenderHorizontalLegendText()
{
$chart = new ezcGraphLineChart();
$chart->data['sampleData'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['sampleData']->color = '#0000FF';
$chart->data['sampleData']->symbol = ezcGraph::DIAMOND;
$chart->data['moreData'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['moreData']->color = '#FF0000';
$chart->data['evenMoreData'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['evenMoreData']->color = '#00FF00';
$chart->data['evenMoreData']->label = 'Even more data';
$chart->legend->generateFromDataSets( $chart->data );
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'sampleData' ),
$this->equalTo( new ezcGraphCoordinate( 16., 1. ), 1. ),
$this->equalTo( 81., 1. ),
$this->equalTo( 14., 1. ),
$this->equalTo( 36 )
);
$this->driver
->expects( $this->at( 3 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'moreData' ),
$this->equalTo( new ezcGraphCoordinate( 116., 1. ), 1. ),
$this->equalTo( 81., 1. ),
$this->equalTo( 14., 1. ),
$this->equalTo( 36 )
);
$this->driver
->expects( $this->at( 5 ) )
->method( 'drawTextBox' )
->with(
$this->equalTo( 'Even more data' ),
$this->equalTo( new ezcGraphCoordinate( 216., 1. ), 1. ),
$this->equalTo( 81., 1. ),
$this->equalTo( 14., 1. ),
$this->equalTo( 36 )
);
$this->renderer->drawLegend(
new ezcGraphBoundings( 0, 0, 300, 50 ),
$chart->legend,
ezcGraph::HORIZONTAL
);
}
public function testRenderVerticalAxis()
{
$chart = new ezcGraphLineChart();
$chart->yAxis->addData( array( 1, 2, 3, 4, 5 ) );
$chart->yAxis->calculateAxisBoundings();
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 140., 220. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 140., 20. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#2E3436' ) ),
$this->equalTo( 1 )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 140., 20. ),
new ezcGraphCoordinate( 142.5, 25. ),
new ezcGraphCoordinate( 137.5, 25. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#2E3436' ) ),
$this->equalTo( true )
);
$this->renderer->drawAxis(
new ezcGraphBoundings( 100, 20, 500, 220 ),
new ezcGraphCoordinate( 40, 200 ),
new ezcGraphCoordinate( 40, 0 ),
$chart->yAxis,
new ezcGraphAxisCenteredLabelRenderer(),
new ezcGraphBoundings( 140, 40, 460, 200 )
);
}
public function testRenderVerticalShortAxis()
{
$chart = new ezcGraphLineChart();
$chart->yAxis->addData( array( 1, 2, 3, 4, 5 ) );
$chart->yAxis->calculateAxisBoundings();
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 140., 200. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 140., 40. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#2E3436' ) ),
$this->equalTo( 1 )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 140., 40. ),
new ezcGraphCoordinate( 142, 45. ),
new ezcGraphCoordinate( 138, 45. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#2E3436' ) ),
$this->equalTo( true )
);
$this->renderer->options->shortAxis = true;
$this->renderer->drawAxis(
new ezcGraphBoundings( 100, 20, 500, 220 ),
new ezcGraphCoordinate( 40, 200 ),
new ezcGraphCoordinate( 40, 0 ),
$chart->yAxis,
new ezcGraphAxisCenteredLabelRenderer(),
new ezcGraphBoundings( 140, 40, 460, 200 )
);
}
public function testRenderVerticalAxisReverse()
{
$chart = new ezcGraphLineChart();
$chart->yAxis->addData( array( 1, 2, 3, 4, 5 ) );
$chart->yAxis->calculateAxisBoundings();
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 140., 20. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 140., 220. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#2E3436' ) ),
$this->equalTo( 1 )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 140., 220. ),
new ezcGraphCoordinate( 137.5, 215. ),
new ezcGraphCoordinate( 142.5, 215. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#2E3436' ) ),
$this->equalTo( true )
);
$this->renderer->drawAxis(
new ezcGraphBoundings( 100, 20, 500, 220 ),
new ezcGraphCoordinate( 40, 0 ),
new ezcGraphCoordinate( 40, 200 ),
$chart->yAxis,
new ezcGraphAxisCenteredLabelRenderer(),
new ezcGraphBoundings( 140, 40, 460, 200 )
);
}
public function testRenderHorizontalAxis()
{
$chart = new ezcGraphLineChart();
$chart->yAxis->addData( array( 1, 2, 3, 4, 5 ) );
$chart->yAxis->calculateAxisBoundings();
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 150., 120. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 450., 120. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#2E3436' ) ),
$this->equalTo( 1 )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 450., 120. ),
new ezcGraphCoordinate( 442., 124. ),
new ezcGraphCoordinate( 442., 116. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#2E3436' ) ),
$this->equalTo( true )
);
$this->renderer->drawAxis(
new ezcGraphBoundings( 100, 20, 500, 220 ),
new ezcGraphCoordinate( 50, 100 ),
new ezcGraphCoordinate( 350, 100 ),
$chart->yAxis,
new ezcGraphAxisCenteredLabelRenderer(),
new ezcGraphBoundings( 140, 40, 460, 200 )
);
}
public function testRenderHorizontalShortAxis()
{
$chart = new ezcGraphLineChart();
$chart->xAxis->addData( array( 1, 2, 3, 4, 5 ) );
$chart->xAxis->calculateAxisBoundings();
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 140., 120. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 460., 120. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#2E3436' ) ),
$this->equalTo( 1 )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 460., 120. ),
new ezcGraphCoordinate( 452, 124. ),
new ezcGraphCoordinate( 452, 116. ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#2E3436' ) ),
$this->equalTo( true )
);
$this->renderer->options->shortAxis = true;
$this->renderer->drawAxis(
new ezcGraphBoundings( 100, 20, 500, 220 ),
new ezcGraphCoordinate( 0, 100 ),
new ezcGraphCoordinate( 400, 100 ),
$chart->xAxis,
new ezcGraphAxisCenteredLabelRenderer(),
new ezcGraphBoundings( 140, 40, 460, 200 )
);
}
public function testRenderHorizontalAxisReverse()
{
$chart = new ezcGraphLineChart();
$chart->yAxis->addData( array( 1, 2, 3, 4, 5 ) );
$chart->yAxis->calculateAxisBoundings();
$this->driver
->expects( $this->at( 0 ) )
->method( 'drawLine' )
->with(
$this->equalTo( new ezcGraphCoordinate( 450., 120. ), 1. ),
$this->equalTo( new ezcGraphCoordinate( 150., 120. ), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#2E3436' ) ),
$this->equalTo( 1 )
);
$this->driver
->expects( $this->at( 1 ) )
->method( 'drawPolygon' )
->with(
$this->equalTo( array(
new ezcGraphCoordinate( 150., 120. ),
new ezcGraphCoordinate( 157., 116.5 ),
new ezcGraphCoordinate( 157., 123.5 ),
), 1. ),
$this->equalTo( ezcGraphColor::fromHex( '#2E3436' ) ),
$this->equalTo( true )
);
$this->renderer->drawAxis(
new ezcGraphBoundings( 100, 20, 500, 220 ),
new ezcGraphCoordinate( 350, 100 ),
new ezcGraphCoordinate( 50, 100 ),
$chart->yAxis,
new ezcGraphAxisCenteredLabelRenderer(),
new ezcGraphBoundings( 140, 40, 460, 200 )
);
}
public function testRenderLineChartToOutput()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphLineChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->data['Line 1'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
ob_start();
// Suppress header already sent warning
@$chart->renderToOutput( 500, 200 );
file_put_contents( $filename, ob_get_clean() );
$this->compare(
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg',
$filename
);
}
public function testRenderLineChart()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphLineChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->data['Line 1'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['Line 2'] = new ezcGraphArrayDataSet( array( 'sample 1' => 543, 'sample 2' => 234, 'sample 3' => 298, 'sample 4' => 5, 'sample 5' => 613) );
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg',
$filename
);
}
public function testRenderLineChartZeroAxisSpace()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphLineChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->xAxis->axisSpace = .0;
$chart->xAxis->axisLabelRenderer = new ezcGraphAxisNoLabelRenderer();
$chart->yAxis->axisSpace = .0;
$chart->yAxis->axisLabelRenderer = new ezcGraphAxisNoLabelRenderer();
$chart->data['Line 1'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['Line 2'] = new ezcGraphArrayDataSet( array( 'sample 1' => 543, 'sample 2' => 234, 'sample 3' => 298, 'sample 4' => 5, 'sample 5' => 613) );
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderFilledLineChart()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphLineChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->options->fillLines = 200;
$chart->data['Line 1'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['Line 2'] = new ezcGraphArrayDataSet( array( 'sample 1' => 543, 'sample 2' => 234, 'sample 3' => 298, 'sample 4' => 5, 'sample 5' => 613) );
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderBarChartWithMoreBarsThenMajorSteps()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphBarChart();
$chart->legend = false;
$chart->xAxis = new ezcGraphChartElementNumericAxis();
$chart->xAxis->axisLabelRenderer = new ezcGraphAxisBoxedLabelRenderer();
$chart->data['dataset'] = new ezcGraphArrayDataSet( array( 12, 43, 324, 12, 43, 125, 120, 123 , 543, 12, 45, 76, 87 , 99, 834, 34, 453 ) );
$chart->data['dataset']->color = '#3465A47F';
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderFilledLineBarChart()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphLineChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->options->fillLines = 200;
$chart->data['Line 0'] = new ezcGraphArrayDataSet( array( 'sample 1' => 432, 'sample 2' => 43, 'sample 3' => 65, 'sample 4' => 97, 'sample 5' => 154) );
$chart->data['Line 1'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['Line 2'] = new ezcGraphArrayDataSet( array( 'sample 1' => 543, 'sample 2' => 234, 'sample 3' => 298, 'sample 4' => 5, 'sample 5' => 613) );
$chart->data['Line 0']->displayType = ezcGraph::BAR;
$chart->data['Line 1']->displayType = ezcGraph::BAR;
$chart->xAxis->axisLabelRenderer = new ezcGraphAxisBoxedLabelRenderer();
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderFilledLineChartWithAxisIntersection()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphLineChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->options->fillLines = 200;
$chart->data['Line 1'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => -151, 'sample 3' => 324, 'sample 4' => -120, 'sample 5' => 1) );
$chart->data['Line 2'] = new ezcGraphArrayDataSet( array( 'sample 1' => 543, 'sample 2' => 234, 'sample 3' => 298, 'sample 4' => -5, 'sample 5' => -124) );
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLineChartWithDifferentAxisSpace()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphLineChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->data['Line 1'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['Line 2'] = new ezcGraphArrayDataSet( array( 'sample 1' => 543, 'sample 2' => 234, 'sample 3' => 298, 'sample 4' => 5, 'sample 5' => 613) );
$chart->xAxis->axisSpace = .2;
$chart->yAxis->axisSpace = .05;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderPieChart()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphPieChart();
$chart->data['sample'] = new ezcGraphArrayDataSet( array(
'Mozilla' => 4375,
'IE' => 345,
'Opera' => 1204,
'wget' => 231,
'Safari' => 987,
) );
$chart->data['sample']->highlight['Safari'] = true;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderPieChartDifferentDataBorder()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphPieChart();
$chart->data['sample'] = new ezcGraphArrayDataSet( array(
'Mozilla' => 4375,
'IE' => 345,
'Opera' => 1204,
'wget' => 231,
'Safari' => 987,
) );
$chart->data['sample']->highlight['Safari'] = true;
$chart->renderer->options->dataBorder = .1;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderPieChartWithHighlightAndOffset()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphPieChart();
$chart->data['sample'] = new ezcGraphArrayDataSet( array(
'Mozilla' => 4375,
'IE' => 345,
'Opera' => 1204,
'wget' => 231,
'Safari' => 987,
) );
$chart->data['sample']->highlight['Safari'] = true;
$chart->renderer->options->pieChartOffset = 76;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderPieChartWithOffset()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphPieChart();
$chart->data['sample'] = new ezcGraphArrayDataSet( array(
'Mozilla' => 4375,
'IE' => 345,
'Opera' => 1204,
'wget' => 231,
'Safari' => 987,
) );
$chart->renderer->options->pieChartOffset = 156;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderPieChartWithLegendTitle()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphPieChart();
$chart->data['sample'] = new ezcGraphArrayDataSet( array(
'Mozilla' => 4375,
'IE' => 345,
'Opera' => 1204,
'wget' => 231,
'Safari' => 987,
) );
$chart->legend->title = 'Legenda';
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLabeledPieSegmentWithModifiedSymbolColor()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphPieChart();
$chart->data['sample'] = new ezcGraphArrayDataSet( array(
'Mozilla' => 4375,
'IE' => 345,
'Opera' => 1204,
'wget' => 231,
'Safari' => 987,
) );
$chart->data['sample']->highlight['Safari'] = true;
$chart->renderer->options->pieChartSymbolColor = '#000000BB';
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderPieChartWithShadow()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphPieChart();
$chart->data['sample'] = new ezcGraphArrayDataSet( array(
'Mozilla' => 4375,
'IE' => 345,
'Opera' => 1204,
'wget' => 231,
'Safari' => 987,
) );
$chart->data['sample']->highlight['Opera'] = true;
$chart->renderer->options->pieChartShadowSize = 5;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderPieChartWithGleamAndShadow()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphPieChart();
$chart->data['sample'] = new ezcGraphArrayDataSet( array(
'Mozilla' => 4375,
'IE' => 345,
'Opera' => 1204,
'wget' => 231,
'Safari' => 987,
) );
$chart->data['sample']->highlight['Opera'] = true;
$chart->renderer->options->legendSymbolGleam = .5;
$chart->renderer->options->pieChartShadowSize = 5;
$chart->renderer->options->pieChartGleamBorder = 3;
$chart->renderer->options->pieChartGleam = .5;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLineChartWithAxisLabels()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphLineChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->data['Line 1'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['Line 2'] = new ezcGraphArrayDataSet( array( 'sample 1' => 543, 'sample 2' => 234, 'sample 3' => 298, 'sample 4' => 5, 'sample 5' => 613) );
$chart->xAxis->label = 'Samples';
$chart->yAxis->label = 'Numbers';
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLineChartWithAxisLabelsReversedAxis()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphLineChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->data['Line 1'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['Line 2'] = new ezcGraphArrayDataSet( array( 'sample 1' => 543, 'sample 2' => 234, 'sample 3' => 298, 'sample 4' => 5, 'sample 5' => 613) );
$chart->xAxis->label = 'Samples';
$chart->xAxis->position = ezcGraph::RIGHT;
$chart->xAxis->axisLabelRenderer = new ezcGraphAxisCenteredLabelRenderer();
$chart->yAxis->label = 'Numbers';
$chart->yAxis->position = ezcGraph::TOP;
$chart->yAxis->axisLabelRenderer = new ezcGraphAxisCenteredLabelRenderer();
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLineChartWithHighlightedData()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphLineChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->data['Line 1'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => -21, 'sample 3' => 324, 'sample 4' => -120, 'sample 5' => 1) );
$chart->data['Line 2'] = new ezcGraphArrayDataSet( array( 'sample 1' => 543, 'sample 2' => 234, 'sample 3' => 298, 'sample 4' => 5, 'sample 5' => 613) );
$chart->data['Line 1']->highlight = true;
$chart->data['Line 2']->highlight['sample 5'] = true;
$chart->options->highlightSize = 12;
$chart->options->highlightFont->color = ezcGraphColor::fromHex( '#3465A4' );
$chart->options->highlightFont->background = ezcGraphColor::fromHex( '#D3D7CF' );
$chart->options->highlightFont->border = ezcGraphColor::fromHex( '#888A85' );
$chart->xAxis->axisLabelRenderer = new ezcGraphAxisBoxedLabelRenderer();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderBarChartWithHighlightedData3Bars()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphBarChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->data['Line 1'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => -21, 'sample 3' => 324, 'sample 4' => -120, 'sample 5' => 1) );
$chart->data['Line 2'] = new ezcGraphArrayDataSet( array( 'sample 1' => 543, 'sample 2' => 234, 'sample 3' => 298, 'sample 4' => 5, 'sample 5' => 613) );
$chart->data['Line 3'] = new ezcGraphArrayDataSet( array( 'sample 2' => 42, 'sample 3' => 398, 'sample 4' => -15, 'sample 5' => 244) );
$chart->data['Line 1']->highlight = true;
$chart->data['Line 2']->highlight['sample 5'] = true;
$chart->data['Line 3']->highlight = true;
$chart->options->highlightSize = 12;
$chart->options->highlightFont->color = ezcGraphColor::fromHex( '#3465A4' );
$chart->options->highlightFont->background = ezcGraphColor::fromHex( '#D3D7CF' );
$chart->options->highlightFont->border = ezcGraphColor::fromHex( '#888A85' );
$chart->xAxis->axisLabelRenderer = new ezcGraphAxisBoxedLabelRenderer();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderBarChartWithHighlightedData()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphBarChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->data['Line 1'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => -21, 'sample 3' => 324, 'sample 4' => -120, 'sample 5' => 1) );
$chart->data['Line 2'] = new ezcGraphArrayDataSet( array( 'sample 1' => 543, 'sample 2' => 234, 'sample 3' => 298, 'sample 4' => 5, 'sample 5' => 613) );
$chart->data['Line 1']->highlight = true;
$chart->data['Line 2']->highlight['sample 5'] = true;
$chart->data['Line 1']->displayType = ezcGraph::BAR;
$chart->options->highlightSize = 12;
$chart->options->highlightFont->color = ezcGraphColor::fromHex( '#3465A4' );
$chart->options->highlightFont->background = ezcGraphColor::fromHex( '#D3D7CF' );
$chart->options->highlightFont->border = ezcGraphColor::fromHex( '#888A85' );
$chart->xAxis->axisLabelRenderer = new ezcGraphAxisBoxedLabelRenderer();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testBug11107_MissingGridWithBottomLegend()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$graph = new ezcGraphLineChart();
$graph->palette = new ezcGraphPaletteBlack();
$graph->legend->position = ezcGraph::BOTTOM;
$graph->data['sample'] = new ezcGraphArrayDataSet(
array( 1, 4, 6, 8, 2 )
);
$graph->render( 560, 250, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testNoArrowHead()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$graph = new ezcGraphLineChart();
$graph->palette = new ezcGraphPaletteBlack();
$graph->legend->position = ezcGraph::BOTTOM;
$graph->data['sample'] = new ezcGraphArrayDataSet(
array( 1, 4, 6, 8, 2 )
);
$graph->renderer->options->axisEndStyle = ezcGraph::NO_SYMBOL;
$graph->render( 560, 250, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testCircleArrowHead()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$graph = new ezcGraphLineChart();
$graph->palette = new ezcGraphPaletteBlack();
$graph->legend->position = ezcGraph::BOTTOM;
$graph->data['sample'] = new ezcGraphArrayDataSet(
array( 1, 4, 6, 8, 2 )
);
$graph->renderer->options->axisEndStyle = ezcGraph::CIRCLE;
$graph->render( 560, 250, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testShortAxis()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$graph = new ezcGraphLineChart();
$graph->palette = new ezcGraphPaletteBlack();
$graph->legend->position = ezcGraph::BOTTOM;
$graph->data['sample'] = new ezcGraphArrayDataSet(
array( 1, 4, 6, 8, 2 )
);
$graph->renderer->options->axisEndStyle = ezcGraph::NO_SYMBOL;
$graph->renderer->options->shortAxis = true;
$graph->render( 560, 250, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testSquareAndBoxSymbolsInChart()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$graph = new ezcGraphLineChart();
$graph->palette = new ezcGraphPaletteBlack();
$graph->data['sample1'] = new ezcGraphArrayDataSet( array( 1, 4, 6, 8, 2 ) );
$graph->data['sample1']->symbol = ezcGraph::SQUARE;
$graph->data['sample2'] = new ezcGraphArrayDataSet( array( 4, 6, 8, 2, 1 ) );
$graph->data['sample2']->symbol = ezcGraph::BOX;
$graph->render( 560, 250, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRotatedAxisLabel()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$graph = new ezcGraphLineChart();
$graph->palette = new ezcGraphPaletteBlack();
$graph->data['sample1'] = new ezcGraphArrayDataSet( array( 1, 4, 6, 8, 2 ) );
$graph->data['sample1']->symbol = ezcGraph::SQUARE;
$graph->data['sample2'] = new ezcGraphArrayDataSet( array( 4, 6, 8, 2, 1 ) );
$graph->data['sample2']->symbol = ezcGraph::BOX;
$graph->xAxis->label = "Some axis label";
$graph->xAxis->labelRotation = 90;
$graph->render( 560, 250, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRendererOptionsPropertyMaxLabelHeight()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
.1,
$options->maxLabelHeight,
'Wrong default value for property maxLabelHeight in class ezcGraphRendererOptions'
);
$options->maxLabelHeight = .2;
$this->assertSame(
.2,
$options->maxLabelHeight,
'Setting property value did not work for property maxLabelHeight in class ezcGraphRendererOptions'
);
try
{
$options->maxLabelHeight = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertyShowSymbol()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
true,
$options->showSymbol,
'Wrong default value for property showSymbol in class ezcGraphRendererOptions'
);
$options->showSymbol = false;
$this->assertSame(
false,
$options->showSymbol,
'Setting property value did not work for property showSymbol in class ezcGraphRendererOptions'
);
try
{
$options->showSymbol = 42;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertySyncAxisFonts()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
true,
$options->syncAxisFonts,
'Wrong default value for property syncAxisFonts in class ezcGraphRendererOptions'
);
$options->syncAxisFonts = false;
$this->assertSame(
false,
$options->syncAxisFonts,
'Setting property value did not work for property syncAxisFonts in class ezcGraphRendererOptions'
);
try
{
$options->syncAxisFonts = 42;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertySymbolSize()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
6,
$options->symbolSize,
'Wrong default value for property symbolSize in class ezcGraphRendererOptions'
);
$options->symbolSize = 8;
$this->assertSame(
8,
$options->symbolSize,
'Setting property value did not work for property symbolSize in class ezcGraphRendererOptions'
);
try
{
$options->symbolSize = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertyMoveOut()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
.1,
$options->moveOut,
'Wrong default value for property moveOut in class ezcGraphRendererOptions'
);
$options->moveOut = .2;
$this->assertSame(
.2,
$options->moveOut,
'Setting property value did not work for property moveOut in class ezcGraphRendererOptions'
);
try
{
$options->moveOut = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertyTitlePosition()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
ezcGraph::TOP,
$options->titlePosition,
'Wrong default value for property titlePosition in class ezcGraphRendererOptions'
);
$options->titlePosition = ezcGraph::BOTTOM;
$this->assertSame(
ezcGraph::BOTTOM,
$options->titlePosition,
'Setting property value did not work for property titlePosition in class ezcGraphRendererOptions'
);
try
{
$options->titlePosition = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertyTitleAlignement()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
ezcGraph::MIDDLE | ezcGraph::CENTER,
$options->titleAlignement,
'Wrong default value for property titleAlignement in class ezcGraphRendererOptions'
);
$options->titleAlignement = ezcGraph::BOTTOM;
$this->assertSame(
ezcGraph::BOTTOM,
$options->titleAlignement,
'Setting property value did not work for property titleAlignement in class ezcGraphRendererOptions'
);
try
{
$options->titleAlignement = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertyDataBorder()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
.5,
$options->dataBorder,
'Wrong default value for property dataBorder in class ezcGraphRendererOptions'
);
$options->dataBorder = 1.;
$this->assertSame(
1.,
$options->dataBorder,
'Setting property value did not work for property dataBorder in class ezcGraphRendererOptions'
);
$options->dataBorder = false;
$this->assertSame(
false,
$options->dataBorder,
'Setting property value did not work for property dataBorder in class ezcGraphRendererOptions'
);
try
{
$options->dataBorder = true;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertyBarMargin()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
.1,
$options->barMargin,
'Wrong default value for property barMargin in class ezcGraphRendererOptions'
);
$options->barMargin = .2;
$this->assertSame(
.2,
$options->barMargin,
'Setting property value did not work for property barMargin in class ezcGraphRendererOptions'
);
try
{
$options->barMargin = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertyBarPadding()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
.05,
$options->barPadding,
'Wrong default value for property barPadding in class ezcGraphRendererOptions'
);
$options->barPadding = .1;
$this->assertSame(
.1,
$options->barPadding,
'Setting property value did not work for property barPadding in class ezcGraphRendererOptions'
);
try
{
$options->barPadding = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertyPieChartOffset()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
0,
$options->pieChartOffset,
'Wrong default value for property pieChartOffset in class ezcGraphRendererOptions'
);
$options->pieChartOffset = 1;
$this->assertSame(
1.,
$options->pieChartOffset,
'Setting property value did not work for property pieChartOffset in class ezcGraphRendererOptions'
);
try
{
$options->pieChartOffset = 450;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertyLegendSymbolGleam()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
false,
$options->legendSymbolGleam,
'Wrong default value for property legendSymbolGleam in class ezcGraphRendererOptions'
);
$options->legendSymbolGleam = .1;
$this->assertSame(
.1,
$options->legendSymbolGleam,
'Setting property value did not work for property legendSymbolGleam in class ezcGraphRendererOptions'
);
$options->legendSymbolGleam = false;
$this->assertSame(
false,
$options->legendSymbolGleam,
'Setting property value did not work for property legendSymbolGleam in class ezcGraphRendererOptions'
);
try
{
$options->legendSymbolGleam = true;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertyLegendSymbolGleamSize()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
.9,
$options->legendSymbolGleamSize,
'Wrong default value for property legendSymbolGleamSize in class ezcGraphRendererOptions'
);
$options->legendSymbolGleamSize = .8;
$this->assertSame(
.8,
$options->legendSymbolGleamSize,
'Setting property value did not work for property legendSymbolGleamSize in class ezcGraphRendererOptions'
);
try
{
$options->legendSymbolGleamSize = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertyLegendSymbolGleamColor()
{
$options = new ezcGraphRendererOptions();
$this->assertEquals(
ezcGraphColor::fromHex( '#FFFFFF' ),
$options->legendSymbolGleamColor,
'Wrong default value for property pieChartSymbolColor in class ezcGraphRendererOptions'
);
$options->legendSymbolGleamColor = $color = ezcGraphColor::fromHex( '#000000' );
$this->assertSame(
$color,
$options->legendSymbolGleamColor,
'Setting property value did not work for property pieChartSymbolColor in class ezcGraphRendererOptions'
);
try
{
$options->legendSymbolGleamColor = false;
}
catch ( ezcGraphUnknownColorDefinitionException $e )
{
return true;
}
$this->fail( 'Expected ezcGraphUnknownColorDefinitionException.' );
}
public function testRendererOptionsPropertyPieVerticalSize()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
.5,
$options->pieVerticalSize,
'Wrong default value for property pieVerticalSize in class ezcGraphRendererOptions'
);
$options->pieVerticalSize = .6;
$this->assertSame(
.6,
$options->pieVerticalSize,
'Setting property value did not work for property pieVerticalSize in class ezcGraphRendererOptions'
);
try
{
$options->pieVerticalSize = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertyPieHorizontalSize()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
.25,
$options->pieHorizontalSize,
'Wrong default value for property pieHorizontalSize in class ezcGraphRendererOptions'
);
$options->pieHorizontalSize = .5;
$this->assertSame(
.5,
$options->pieHorizontalSize,
'Setting property value did not work for property pieHorizontalSize in class ezcGraphRendererOptions'
);
try
{
$options->pieHorizontalSize = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertyPieChartSymbolColor()
{
$options = new ezcGraphRendererOptions();
$this->assertEquals(
ezcGraphColor::fromHex( '#000000' ),
$options->pieChartSymbolColor,
'Wrong default value for property pieChartSymbolColor in class ezcGraphRendererOptions'
);
$options->pieChartSymbolColor = $color = ezcGraphColor::fromHex( '#FFFFFF' );
$this->assertSame(
$color,
$options->pieChartSymbolColor,
'Setting property value did not work for property pieChartSymbolColor in class ezcGraphRendererOptions'
);
try
{
$options->pieChartSymbolColor = false;
}
catch ( ezcGraphUnknownColorDefinitionException $e )
{
return true;
}
$this->fail( 'Expected ezcGraphUnknownColorDefinitionException.' );
}
public function testRendererOptionsPropertyPieChartGleam()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
false,
$options->pieChartGleam,
'Wrong default value for property pieChartGleam in class ezcGraphRendererOptions'
);
$options->pieChartGleam = .2;
$this->assertSame(
.2,
$options->pieChartGleam,
'Setting property value did not work for property pieChartGleam in class ezcGraphRendererOptions'
);
$options->pieChartGleam = false;
$this->assertSame(
false,
$options->pieChartGleam,
'Setting property value did not work for property pieChartGleam in class ezcGraphRendererOptions'
);
try
{
$options->pieChartGleam = true;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRendererOptionsPropertyPieChartGleamColor()
{
$options = new ezcGraphRendererOptions();
$this->assertEquals(
ezcGraphColor::fromHex( '#FFFFFF' ),
$options->pieChartGleamColor,
'Wrong default value for property pieChartGleamColor in class ezcGraphRendererOptions'
);
$options->pieChartGleamColor = $color = ezcGraphColor::fromHex( '#000000' );
$this->assertSame(
$color,
$options->pieChartGleamColor,
'Setting property value did not work for property pieChartGleamColor in class ezcGraphRendererOptions'
);
try
{
$options->pieChartGleamColor = false;
}
catch ( ezcGraphUnknownColorDefinitionException $e )
{
return true;
}
$this->fail( 'Expected ezcGraphUnknownColorDefinitionException.' );
}
public function testRendererOptionsPropertyPieChartGleamBorder()
{
$options = new ezcGraphRendererOptions();
$this->assertSame(
0,
$options->pieChartGleamBorder,
'Wrong default value for property pieChartGleamBorder in class ezcGraphRendererOptions'
);
$options->pieChartGleamBorder = 1;
$this->assertSame(
1,
$options->pieChartGleamBorder,
'Setting property value did not work for property pieChartGleamBorder in class ezcGraphRendererOptions'
);
try
{
$options->pieChartGleamBorder = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRenderer2dOptionsPropertyPieChartShadowSize()
{
$options = new ezcGraphRenderer2dOptions();
$this->assertSame(
0,
$options->pieChartShadowSize,
'Wrong default value for property pieChartShadowSize in class ezcGraphRenderer2dOptions'
);
$options->pieChartShadowSize = 5;
$this->assertSame(
5,
$options->pieChartShadowSize,
'Setting property value did not work for property pieChartShadowSize in class ezcGraphRenderer2dOptions'
);
try
{
$options->pieChartShadowSize = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRenderer2dOptionsPropertyPieChartShadowTransparency()
{
$options = new ezcGraphRenderer2dOptions();
$this->assertSame(
.3,
$options->pieChartShadowTransparency,
'Wrong default value for property pieChartShadowTransparency in class ezcGraphRenderer2dOptions'
);
$options->pieChartShadowTransparency = .5;
$this->assertSame(
.5,
$options->pieChartShadowTransparency,
'Setting property value did not work for property pieChartShadowTransparency in class ezcGraphRenderer2dOptions'
);
try
{
$options->pieChartShadowTransparency = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRenderer2dOptionsPropertyPieChartShadowColor()
{
$options = new ezcGraphRenderer2dOptions();
$this->assertEquals(
ezcGraphColor::fromHex( '#000000' ),
$options->pieChartShadowColor,
'Wrong default value for property pieChartShadowColor in class ezcGraphRenderer2dOptions'
);
$options->pieChartShadowColor = $color = ezcGraphColor::fromHex( '#FFFFFF' );
$this->assertSame(
$color,
$options->pieChartShadowColor,
'Setting property value did not work for property pieChartShadowColor in class ezcGraphRenderer2dOptions'
);
try
{
$options->pieChartShadowColor = false;
}
catch ( ezcGraphUnknownColorDefinitionException $e )
{
return true;
}
$this->fail( 'Expected ezcGraphUnknownColorDefinitionException.' );
}
public function testRendererOptionsPropertyAxisEndStyle()
{
$options = new ezcGraphRenderer2dOptions();
$this->assertSame(
ezcGraph::ARROW,
$options->axisEndStyle,
'Wrong default value for property axisEndStyle in class ezcGraphRenderer2dOptions'
);
$options->axisEndStyle = ezcGraph::NO_SYMBOL;
$this->assertSame(
ezcGraph::NO_SYMBOL,
$options->axisEndStyle,
'Setting property value did not work for property axisEndStyle in class ezcGraphRenderer2dOptions'
);
try
{
$options->axisEndStyle = false;
$this->fail( 'Expected ezcBaseValueException.' );
}
catch ( ezcBaseValueException $e )
{ /* Expected */ }
}
public function testRendererOptionsPropertyShortAxis()
{
$options = new ezcGraphRenderer2dOptions();
$this->assertSame(
false,
$options->shortAxis,
'Wrong default value for property shortAxis in class ezcGraphRenderer2dOptions'
);
$options->shortAxis = true;
$this->assertSame(
true,
$options->shortAxis,
'Setting property value did not work for property shortAxis in class ezcGraphRenderer2dOptions'
);
try
{
$options->shortAxis = 'true';
$this->fail( 'Expected ezcBaseValueException.' );
}
catch ( ezcBaseValueException $e )
{ /* Expected */ }
}
public function testChartOptionsPropertyWidth()
{
$options = new ezcGraphRenderer2dOptions();
$this->assertSame(
null,
$options->width,
'Wrong default value for property width in class ezcGraphChartOptions'
);
$options->width = 100;
$this->assertSame(
100,
$options->width,
'Setting property value did not work for property width in class ezcGraphChartOptions'
);
try
{
$options->width = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testChartOptionsPropertyHeigh()
{
$options = new ezcGraphChartOptions();
$this->assertSame(
null,
$options->height,
'Wrong default value for property heigh in class ezcGraphChartOptions'
);
$options->height = 100;
$this->assertSame(
100,
$options->height,
'Setting property value did not work for property heigh in class ezcGraphChartOptions'
);
try
{
$options->height = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testChartOptionsPropertyFont()
{
$options = new ezcGraphChartOptions();
$this->assertSame(
'ezcGraphFontOptions',
get_class( $options->font ),
'Wrong default value for property font in class ezcGraphChartOptions'
);
$options->font = $file = dirname( __FILE__ ) . '/data/font2.ttf';
$this->assertSame(
$file,
$options->font->path,
'Setting property value did not work for property font in class ezcGraphChartOptions'
);
try
{
$options->font = false;
}
catch ( ezcBaseFileNotFoundException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseFileNotFoundException.' );
}
}
?>