blob: afa8812107c53539141de06dd4d63104db451f75 [file] [log] [blame]
<?php
/**
* ezcGraphRenderer3dTest
*
* 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 ezcGraphRenderer3dTest extends ezcGraphTestCase
{
protected $basePath;
protected $tempDir;
public static function suite()
{
return new PHPUnit_Framework_TestSuite( "ezcGraphRenderer3dTest" );
}
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/';
}
protected function tearDown()
{
if ( !$this->hasFailed() )
{
$this->removeTempDir();
}
}
public function testRenderBackgroundImage()
{
$driver = $this->getMock( 'ezcGraphSvgDriver', array(
'drawImage',
) );
$driver->options->width = 400;
$driver->options->height = 200;
$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. )
);
$renderer = new ezcGraphRenderer3d();
$renderer->setDriver( $driver );
$renderer->drawBackgroundImage(
new ezcGraphBoundings( 0, 0, 400, 200 ),
dirname( __FILE__ ) . '/data/jpeg.jpg'
);
}
public function testRenderTopLeftBackgroundImage()
{
$driver = $this->getMock( 'ezcGraphSvgDriver', array(
'drawImage',
) );
$driver->options->width = 400;
$driver->options->height = 200;
$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. )
);
$renderer = new ezcGraphRenderer3d();
$renderer->setDriver( $driver );
$renderer->drawBackgroundImage(
new ezcGraphBoundings( 0, 0, 400, 200 ),
dirname( __FILE__ ) . '/data/jpeg.jpg',
ezcGraph::TOP | ezcGraph::LEFT
);
}
public function testRenderBottomRightBackgroundImage()
{
$driver = $this->getMock( 'ezcGraphSvgDriver', array(
'drawImage',
) );
$driver->options->width = 400;
$driver->options->height = 200;
$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. )
);
$renderer = new ezcGraphRenderer3d();
$renderer->setDriver( $driver );
$renderer->drawBackgroundImage(
new ezcGraphBoundings( 0, 0, 400, 200 ),
dirname( __FILE__ ) . '/data/jpeg.jpg',
ezcGraph::BOTTOM | ezcGraph::RIGHT
);
}
public function testRenderToBigBackgroundImage()
{
$driver = $this->getMock( 'ezcGraphSvgDriver', array(
'drawImage',
) );
$driver->options->width = 400;
$driver->options->height = 200;
$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. )
);
$renderer = new ezcGraphRenderer3d();
$renderer->setDriver( $driver );
$renderer->drawBackgroundImage(
new ezcGraphBoundings( 0, 0, 100, 100 ),
dirname( __FILE__ ) . '/data/jpeg.jpg',
ezcGraph::BOTTOM | ezcGraph::RIGHT
);
}
public function testRenderBackgroundImageRepeatX()
{
$driver = $this->getMock( 'ezcGraphSvgDriver', array(
'drawImage',
) );
$driver->options->width = 400;
$driver->options->height = 200;
$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. )
);
$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. )
);
$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. )
);
$renderer = new ezcGraphRenderer3d();
$renderer->setDriver( $driver );
$renderer->drawBackgroundImage(
new ezcGraphBoundings( 0, 0, 400, 200 ),
dirname( __FILE__ ) . '/data/jpeg.jpg',
ezcGraph::BOTTOM | ezcGraph::RIGHT,
ezcGraph::HORIZONTAL
);
}
public function testRenderBackgroundImageRepeatY()
{
$driver = $this->getMock( 'ezcGraphSvgDriver', array(
'drawImage',
) );
$driver->options->width = 400;
$driver->options->height = 200;
$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. )
);
$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. )
);
$renderer = new ezcGraphRenderer3d();
$renderer->setDriver( $driver );
$renderer->drawBackgroundImage(
new ezcGraphBoundings( 0, 0, 400, 200 ),
dirname( __FILE__ ) . '/data/jpeg.jpg',
ezcGraph::BOTTOM | ezcGraph::RIGHT,
ezcGraph::VERTICAL
);
}
public function testRenderBackgroundImageRepeatBoth()
{
$driver = $this->getMock( 'ezcGraphSvgDriver', array(
'drawImage',
) );
$driver->options->width = 400;
$driver->options->height = 200;
$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. )
);
$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. )
);
$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. )
);
$renderer = new ezcGraphRenderer3d();
$renderer->setDriver( $driver );
$renderer->drawBackgroundImage(
new ezcGraphBoundings( 0, 0, 400, 200 ),
dirname( __FILE__ ) . '/data/jpeg.jpg',
ezcGraph::BOTTOM | ezcGraph::RIGHT,
ezcGraph::VERTICAL | ezcGraph::HORIZONTAL
);
}
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) );
$chart->renderer = new ezcGraphRenderer3d();
ob_start();
// Suppress header already sent warning
@$chart->renderToOutput( 500, 200 );
file_put_contents( $filename, ob_get_clean() );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLabeledPieSegment()
{
$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 = new ezcGraphRenderer3d();
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLabeledPieSegmentWithGleamAndShadow()
{
$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->data['sample']->color['Safari'] = '#000000';
$chart->data['sample']->highlight['IE'] = true;
$chart->data['sample']->symbol['IE'] = ezcGraph::CIRCLE;
$chart->data['sample']->symbol['Opera'] = ezcGraph::BULLET;
$chart->data['sample']->symbol['wget'] = ezcGraph::DIAMOND;
$chart->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->pieChartShadowSize = 10;
$chart->renderer->options->pieChartGleam = .5;
$chart->renderer->options->dataBorder = false;
$chart->renderer->options->pieChartHeight = 16;
$chart->renderer->options->legendSymbolGleam = .5;
$chart->renderer->options->pieChartOffset = 180;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLabeledPieChartBlue()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphPieChart();
$chart->palette = new ezcGraphPaletteEzBlue();
$chart->data['sample'] = new ezcGraphArrayDataSet( array(
'Mozilla' => 4375,
'IE' => 345,
'Opera' => 1204,
'wget' => 231,
'Safari' => 987,
) );
$chart->data['sample']->highlight['Safari'] = true;
$chart->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->pieChartShadowSize = 10;
$chart->renderer->options->pieChartGleam = .5;
$chart->renderer->options->pieChartGleamBorder = 3;
$chart->renderer->options->dataBorder = false;
$chart->renderer->options->pieChartHeight = 16;
$chart->renderer->options->legendSymbolGleam = .5;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderFullShadow()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$graph = new ezcGraphPieChart();
// Configure Graph
$graph->legend->position = ezcGraph::BOTTOM;
// Add data
$graph->data['Access statistics'] = new ezcGraphArrayDataSet( array(
'Available' => 72,
'Used' => 28,
) );
$graph->options->label = '%1$s (%3$.1f%%)';
// Configure renderer options
$graph->renderer = new ezcGraphRenderer3d();
$graph->renderer->options->pieChartShadowSize = 10;
$graph->renderer->options->pieChartGleam = .5;
$graph->renderer->options->dataBorder = false;
$graph->renderer->options->pieChartHeight = 16;
$graph->renderer->options->legendSymbolGleam = .5;
// Render image
$graph->render( 400, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLabeledPieChartEz()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphPieChart();
$chart->palette = new ezcGraphPaletteEz();
$chart->data['sample'] = new ezcGraphArrayDataSet( array(
'Mozilla' => 4375,
'IE' => 345,
'Opera' => 1204,
'wget' => 231,
'Safari' => 987,
) );
$chart->data['sample']->highlight['Safari'] = true;
$chart->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->pieChartShadowSize = 10;
$chart->renderer->options->pieChartGleam = .5;
$chart->renderer->options->dataBorder = false;
$chart->renderer->options->pieChartHeight = 16;
$chart->renderer->options->legendSymbolGleam = .5;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLabeledPieSegmentWithGleamAndShadowGD()
{
if ( !ezcBaseFeatures::hasExtensionSupport( 'gd' ) &&
( ezcBaseFeatures::hasFunction( 'imagefttext' ) || ezcBaseFeatures::hasFunction( 'imagettftext' ) ) )
{
$this->markTestSkipped( 'This test needs ext/gd with native ttf support or FreeType 2 support.' );
}
$filename = $this->tempDir . __FUNCTION__ . '.png';
$chart = new ezcGraphPieChart();
$chart->data['sample'] = new ezcGraphArrayDataSet( array(
'Mozilla' => 4375,
'IE' => 345,
'Opera' => 1204,
'wget' => 231,
'Safari' => 987,
) );
$chart->options->font->path = dirname( __FILE__ ) . '/data/font.ttf';
$chart->data['sample']->highlight['Safari'] = true;
$chart->data['sample']->color['Safari'] = '#000000';
$chart->data['sample']->highlight['IE'] = true;
$chart->data['sample']->symbol['IE'] = ezcGraph::CIRCLE;
$chart->data['sample']->symbol['Opera'] = ezcGraph::BULLET;
$chart->data['sample']->symbol['wget'] = ezcGraph::DIAMOND;
$chart->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->pieChartShadowSize = 10;
$chart->renderer->options->pieChartGleam = .5;
$chart->renderer->options->dataBorder = false;
$chart->renderer->options->pieChartHeight = 16;
$chart->renderer->options->legendSymbolGleam = .5;
$chart->renderer->options->pieChartOffset = 180;
$chart->driver = new ezcGraphGdDriver();
$chart->render( 500, 200, $filename );
$this->assertImageSimilar(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.png',
'Image does not look as expected.',
2000
);
}
public function testRenderLabeledPieSegmentWithTitle()
{
$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->title = 'Pie chart title';
$chart->renderer = new ezcGraphRenderer3d();
$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 = new ezcGraphRenderer3d();
$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 testRenderLabeledPieSegmentPolygonOrder()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphPieChart();
$chart->data['sample'] = new ezcGraphArrayDataSet( array(
'label 1' => 20,
'label 2' => 20,
'label 3' => 20,
'label 4' => 20,
'label 5' => 20,
'label 6' => 20,
'label 7' => 20,
'label 8' => 20,
'label 9' => 20,
'label 10' => 20,
) );
$chart->data['sample']->highlight = true;
$chart->options->label = '%1$s';
$chart->legend = false;
$chart->renderer = new ezcGraphRenderer3d();
$chart->renderer->moveOut = .3;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLabeledPieSegmentWithoutSymbols()
{
$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 = new ezcGraphRenderer3d();
$chart->renderer->options->showSymbol = false;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLabeledPieSegmentWithIncreasedMoveOut()
{
$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 = new ezcGraphRenderer3d();
$chart->renderer->options->moveOut = .2;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLabeledPieSegmentWithoutDataBorder()
{
$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 = new ezcGraphRenderer3d();
$chart->renderer->options->dataBorder = 0;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLabeledPieSegmentWithCustomHeight()
{
$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 = new ezcGraphRenderer3d();
$chart->renderer->options->pieChartHeight = 5;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLabeledPieSegmentWithCustomRotation()
{
$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 = new ezcGraphRenderer3d();
$chart->renderer->options->pieChartRotation = .3;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderPieChartWithLotsOfLabels()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphPieChart();
$chart->data['Skien'] = new ezcGraphArrayDataSet( array( 'Norwegian' => 10, 'Dutch' => 3, 'German' => 2, 'French' => 2, 'Hindi' => 1, 'Taiwanese' => 1, 'Brazilian' => 1, 'Venezuelan' => 1, 'Japanese' => 1, 'Czech' => 1, 'Hungarian' => 1, 'Romanian' => 1 ) );
$chart->data['Skien']->highlight['Norwegian'] = true;
$chart->driver = new ezcGraphSvgDriver();
$chart->renderer = new ezcGraphRenderer3d();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderBarChart()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphBarChart();
$chart->palette = new ezcGraphPaletteBlack();
$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 0']->symbol = ezcGraph::NO_SYMBOL;
$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 1']->symbol = ezcGraph::NO_SYMBOL;
$chart->driver = new ezcGraphSvgDriver();
$chart->renderer = new ezcGraphRenderer3d();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderPimpedBarChart()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphBarChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->data['Rectangle'] = new ezcGraphArrayDataSet( array( 'sample 1' => 432, 'sample 2' => -43, 'sample 3' => 65 ) );
$chart->data['Rectangle']->symbol = ezcGraph::NO_SYMBOL;
$chart->data['Circle'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => -21, 'sample 3' => 324 ) );
$chart->data['Circle']->symbol = ezcGraph::CIRCLE;
$chart->data['Bullet'] = new ezcGraphArrayDataSet( array( 'sample 1' => 124, 'sample 2' => -245, 'sample 3' => 361 ) );
$chart->data['Bullet']->symbol = ezcGraph::BULLET;
$chart->data['Diamond'] = new ezcGraphArrayDataSet( array( 'sample 1' => 387, 'sample 2' => -213, 'sample 3' => 24 ) );
$chart->data['Diamond']->symbol = ezcGraph::DIAMOND;
$chart->driver = new ezcGraphSvgDriver();
$chart->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->barChartGleam = .5;
$chart->renderer->options->legendSymbolGleam = .5;
$chart->render( 700, 300, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderBarChartSymbols()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphBarChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->data['Rectangle'] = new ezcGraphArrayDataSet( array( 'sample 1' => 432, 'sample 2' => 43, 'sample 3' => 65, 'sample 4' => 97, 'sample 5' => 154) );
$chart->data['Rectangle']->symbol = ezcGraph::NO_SYMBOL;
$chart->data['Circle'] = new ezcGraphArrayDataSet( array( 'sample 1' => 234, 'sample 2' => 21, 'sample 3' => 324, 'sample 4' => 120, 'sample 5' => 1) );
$chart->data['Circle']->symbol = ezcGraph::CIRCLE;
$chart->data['Bullet'] = new ezcGraphArrayDataSet( array( 'sample 1' => 124, 'sample 2' => 245, 'sample 3' => 361, 'sample 4' => 412, 'sample 5' => 480) );
$chart->data['Bullet']->symbol = ezcGraph::BULLET;
$chart->data['Diamond'] = new ezcGraphArrayDataSet( array( 'sample 1' => 387, 'sample 2' => 261, 'sample 3' => 24, 'sample 4' => 59, 'sample 5' => 112) );
$chart->data['Diamond']->symbol = ezcGraph::DIAMOND;
$chart->driver = new ezcGraphSvgDriver();
$chart->renderer = new ezcGraphRenderer3d();
$chart->render( 700, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderNegativeBarChartSymbols()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphBarChart();
$chart->palette = new ezcGraphPaletteBlack();
$chart->data['Rectangle'] = new ezcGraphArrayDataSet( array( 'sample -1' => -432, 'sample -2' => -43, 'sample -3' => -65, 'sample -4' => -97, 'sample -5' => -154) );
$chart->data['Rectangle']->symbol = ezcGraph::NO_SYMBOL;
$chart->data['Circle'] = new ezcGraphArrayDataSet( array( 'sample -1' => -234, 'sample -2' => -21, 'sample -3' => -324, 'sample -4' => -120, 'sample -5' => -1) );
$chart->data['Circle']->symbol = ezcGraph::CIRCLE;
$chart->data['Bullet'] = new ezcGraphArrayDataSet( array( 'sample -1' => -124, 'sample -2' => -245, 'sample -3' => -361, 'sample -4' => -412, 'sample -5' => -480) );
$chart->data['Bullet']->symbol = ezcGraph::BULLET;
$chart->data['Diamond'] = new ezcGraphArrayDataSet( array( 'sample -1' => -387, 'sample -2' => -261, 'sample -3' => -24, 'sample -4' => -59, 'sample -5' => -112) );
$chart->data['Diamond']->symbol = ezcGraph::DIAMOND;
$chart->driver = new ezcGraphSvgDriver();
$chart->renderer = new ezcGraphRenderer3d();
$chart->render( 700, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRender3dLineChart()
{
$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->title = 'Line chart title';
$chart->driver = new ezcGraphSvgDriver();
$chart->renderer = new ezcGraphRenderer3d();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLineChartWithSmallDepth()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphLineChart();
$chart->palette = new ezcGraphPaletteBlack();
$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 0']->symbol = ezcGraph::NO_SYMBOL;
$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 1']->symbol = ezcGraph::NO_SYMBOL;
$chart->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->depth = .01;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderBarChartWithSmallDepth()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphBarChart();
$chart->palette = new ezcGraphPaletteBlack();
$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 0']->symbol = ezcGraph::NO_SYMBOL;
$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 1']->symbol = ezcGraph::NO_SYMBOL;
$chart->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->depth = .01;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderLineChartWithDepth()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphLineChart();
$chart->palette = new ezcGraphPaletteBlack();
$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 0']->symbol = ezcGraph::NO_SYMBOL;
$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 1']->symbol = ezcGraph::NO_SYMBOL;
$chart->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->depth = .5;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderBarChartWithDepth()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphBarChart();
$chart->palette = new ezcGraphPaletteBlack();
$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 0']->symbol = ezcGraph::NO_SYMBOL;
$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 1']->symbol = ezcGraph::NO_SYMBOL;
$chart->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->depth = .5;
$chart->driver = new ezcGraphSvgDriver();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRender3dLineChartSmallMaxFontSize()
{
$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->title = 'Line chart title';
$chart->driver = new ezcGraphSvgDriver();
$chart->renderer = new ezcGraphRenderer3d();
$chart->title->font->maxFontSize = 8;
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRender3dLineChartBigMaxFontSize()
{
$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->title = 'Line chart title';
$chart->title->maxHeight = .2;
$chart->driver = new ezcGraphSvgDriver();
$chart->renderer = new ezcGraphRenderer3d();
$chart->title->font->maxFontSize = 32;
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRender3dFilledLineChart()
{
$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->renderer = new ezcGraphRenderer3d();
$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->renderer = new ezcGraphRenderer3d();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRenderBarChartWithUnregularStepSizes()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphBarChart();
$chart->legend = false;
$chart->data['dataset'] = new ezcGraphArrayDataSet( array( 12, 43, 324, 12, 43, 125, 120, 123 , 543, 12, 45, 76, 87 , 99 ) );
$chart->data['dataset']->color = '#3465A47F';
$chart->renderer = new ezcGraphRenderer3d();
try
{
$chart->render( 500, 200, $filename );
}
catch ( ezcGraphUnregularStepsException $e )
{
return true;
}
$this->fail( 'Expected ezcGraphUnregularStepsException.' );
}
public function testRender3dFilledLineChartWithAxisIntersection()
{
$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->renderer = new ezcGraphRenderer3d();
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRender3dFilledLineChartWithoutDataBorder()
{
$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->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->dataBorder = 0;
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRender3dFilledLineChartNonFilledGrid()
{
$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->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->fillGrid = 1;
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
public function testRender3dFilledLineChartNonFilledAxis()
{
$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->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->fillAxis = 1;
$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->renderer = new ezcGraphRenderer3d();
$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->renderer = new ezcGraphRenderer3d();
$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->yAxis->label = 'Numbers';
$chart->yAxis->position = ezcGraph::TOP;
$chart->driver = new ezcGraphSvgDriver();
$chart->renderer = new ezcGraphRenderer3d();
$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->driver = new ezcGraphSvgDriver();
$chart->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->pieChartOffset = 156;
$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->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->barChartGleam = .5;
$chart->renderer->options->legendSymbolGleam = .5;
$chart->render( 500, 200, $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 = new ezcGraphRenderer3d();
$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 = new ezcGraphRenderer3d();
$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 = new ezcGraphRenderer3d();
$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 testRenderer3dOptionsPropertySeperateLines()
{
$options = new ezcGraphRenderer3dOptions();
$this->assertSame(
true,
$options->seperateLines,
'Wrong default value for property seperateLines in class ezcGraphRenderer3dOptions'
);
$options->seperateLines = false;
$this->assertSame(
false,
$options->seperateLines,
'Setting property value did not work for property seperateLines in class ezcGraphRenderer3dOptions'
);
try
{
$options->seperateLines = 42;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRenderer3dOptionsPropertyFillAxis()
{
$options = new ezcGraphRenderer3dOptions();
$this->assertSame(
.8,
$options->fillAxis,
'Wrong default value for property fillAxis in class ezcGraphRenderer3dOptions'
);
$options->fillAxis = .2;
$this->assertSame(
.2,
$options->fillAxis,
'Setting property value did not work for property fillAxis in class ezcGraphRenderer3dOptions'
);
try
{
$options->fillAxis = 42;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRenderer3dOptionsPropertyFillGrid()
{
$options = new ezcGraphRenderer3dOptions();
$this->assertSame(
0,
$options->fillGrid,
'Wrong default value for property fillGrid in class ezcGraphRenderer3dOptions'
);
$options->fillGrid = .5;
$this->assertSame(
.5,
$options->fillGrid,
'Setting property value did not work for property fillGrid in class ezcGraphRenderer3dOptions'
);
try
{
$options->fillGrid = 42;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRenderer3dOptionsPropertyDepth()
{
$options = new ezcGraphRenderer3dOptions();
$this->assertSame(
.1,
$options->depth,
'Wrong default value for property depth in class ezcGraphRenderer3dOptions'
);
$options->depth = .05;
$this->assertSame(
.05,
$options->depth,
'Setting property value did not work for property depth in class ezcGraphRenderer3dOptions'
);
try
{
$options->depth = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRenderer3dOptionsPropertyPieChartHeight()
{
$options = new ezcGraphRenderer3dOptions();
$this->assertSame(
10.,
$options->pieChartHeight,
'Wrong default value for property pieChartHeight in class ezcGraphRenderer3dOptions'
);
$options->pieChartHeight = 20;
$this->assertSame(
20.,
$options->pieChartHeight,
'Setting property value did not work for property pieChartHeight in class ezcGraphRenderer3dOptions'
);
try
{
$options->pieChartHeight = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRenderer3dOptionsPropertyPieChartRotation()
{
$options = new ezcGraphRenderer3dOptions();
$this->assertSame(
0.6,
$options->pieChartRotation,
'Wrong default value for property pieChartRotation in class ezcGraphRenderer3dOptions'
);
$options->pieChartRotation = .4;
$this->assertSame(
.4,
$options->pieChartRotation,
'Setting property value did not work for property pieChartRotation in class ezcGraphRenderer3dOptions'
);
try
{
$options->pieChartRotation = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRenderer3dOptionsPropertyPieChartShadowSize()
{
$options = new ezcGraphRenderer3dOptions();
$this->assertSame(
0,
$options->pieChartShadowSize,
'Wrong default value for property pieChartShadowSize in class ezcGraphRenderer3dOptions'
);
$options->pieChartShadowSize = 5;
$this->assertSame(
5.,
$options->pieChartShadowSize,
'Setting property value did not work for property pieChartShadowSize in class ezcGraphRenderer3dOptions'
);
try
{
$options->pieChartShadowSize = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRenderer3dOptionsPropertyPieChartShadowTransparency()
{
$options = new ezcGraphRenderer3dOptions();
$this->assertSame(
.3,
$options->pieChartShadowTransparency,
'Wrong default value for property pieChartShadowTransparency in class ezcGraphRenderer3dOptions'
);
$options->pieChartShadowTransparency = .5;
$this->assertSame(
.5,
$options->pieChartShadowTransparency,
'Setting property value did not work for property pieChartShadowTransparency in class ezcGraphRenderer3dOptions'
);
try
{
$options->pieChartShadowTransparency = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRenderer3dOptionsPropertyPieChartShadowColor()
{
$options = new ezcGraphRenderer3dOptions();
$this->assertEquals(
ezcGraphColor::fromHex( '#000000' ),
$options->pieChartShadowColor,
'Wrong default value for property pieChartShadowColor in class ezcGraphRenderer3dOptions'
);
$options->pieChartShadowColor = $color = ezcGraphColor::fromHex( '#FFFFFF' );
$this->assertSame(
$color,
$options->pieChartShadowColor,
'Setting property value did not work for property pieChartShadowColor in class ezcGraphRenderer3dOptions'
);
try
{
$options->pieChartShadowColor = false;
}
catch ( ezcGraphUnknownColorDefinitionException $e )
{
return true;
}
$this->fail( 'Expected ezcGraphUnknownColorDefinitionException.' );
}
public function testRenderer3dOptionsPropertyBarDarkenSide()
{
$options = new ezcGraphRenderer3dOptions();
$this->assertSame(
.2,
$options->barDarkenSide,
'Wrong default value for property barDarkenSide in class ezcGraphRenderer3dOptions'
);
$options->barDarkenSide = .4;
$this->assertSame(
.4,
$options->barDarkenSide,
'Setting property value did not work for property barDarkenSide in class ezcGraphRenderer3dOptions'
);
try
{
$options->barDarkenSide = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRenderer3dOptionsPropertyBarDarkenTop()
{
$options = new ezcGraphRenderer3dOptions();
$this->assertSame(
.4,
$options->barDarkenTop,
'Wrong default value for property barDarkenTop in class ezcGraphRenderer3dOptions'
);
$options->barDarkenTop = .8;
$this->assertSame(
.8,
$options->barDarkenTop,
'Setting property value did not work for property barDarkenTop in class ezcGraphRenderer3dOptions'
);
try
{
$options->barDarkenTop = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRenderer3dOptionsPropertyBarChartGleam()
{
$options = new ezcGraphRenderer3dOptions();
$this->assertSame(
false,
$options->barChartGleam,
'Wrong default value for property barChartGleam in class ezcGraphRenderer3dOptions'
);
$options->barChartGleam = .3;
$this->assertSame(
.3,
$options->barChartGleam,
'Setting property value did not work for property barChartGleam in class ezcGraphRenderer3dOptions'
);
try
{
$options->barChartGleam = false;
}
catch ( ezcBaseValueException $e )
{
return true;
}
$this->fail( 'Expected ezcBaseValueException.' );
}
public function testRenderer3dPieChartMissingLabels()
{
$filename = $this->tempDir . __FUNCTION__ . '.svg';
$chart = new ezcGraphPieChart();
$chart->data['TestCase'] = new ezcGraphArrayDataSet( array( 'Big' => 2.9, 'Small 1' => 0.03, 'Small 2' => 0.04, 'Small 3' => 0.03, 'Last' => 1 ) );
$chart->renderer = new ezcGraphRenderer3d();
$chart->renderer->options->dataBorder = false;
$chart->render( 500, 200, $filename );
$this->compare(
$filename,
$this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . '.svg'
);
}
}
?>