Author: kn
Date: Tue Feb  5 11:25:23 2008
New Revision: 7286

Log:
- Fixed issue #12483: Average dataset does not work with a single value.

Added:
    
trunk/Graph/tests/data/compare/ezcGraphDataSetAverageTest_testCreateDatasetFromSingleElementDatasetRender.svg
   (with props)
Modified:
    trunk/Graph/ChangeLog
    trunk/Graph/src/datasets/average.php
    trunk/Graph/tests/dataset_average_test.php

Modified: trunk/Graph/ChangeLog
==============================================================================
--- trunk/Graph/ChangeLog [iso-8859-1] (original)
+++ trunk/Graph/ChangeLog [iso-8859-1] Tue Feb  5 11:25:23 2008
@@ -3,6 +3,7 @@
 
 - Implemented feature #11979: Line width configurable per data set.
 - Implemented feature #12382: Enhance line chart to allow invisible lines.
+- Fixed issue #12483: Average dataset does not work with a single value.
 
 
 1.2.1 - Monday 21 January 2008

Modified: trunk/Graph/src/datasets/average.php
==============================================================================
--- trunk/Graph/src/datasets/average.php [iso-8859-1] (original)
+++ trunk/Graph/src/datasets/average.php [iso-8859-1] Tue Feb  5 11:25:23 2008
@@ -152,6 +152,11 @@
 
         foreach ( $this->source as $key => $value )
         {
+            if ( !is_numeric( $key ) )
+            {
+                throw new ezcGraphDatasetAverageInvalidKeysException();
+            }
+
             if ( ( $this->min === false ) || ( $this->min > $key ) )
             {
                 $this->min = (float) $key;
@@ -283,11 +288,6 @@
      */
     final public function next()
     {
-        if ( $this->min === $this->max )
-        {
-            throw new ezcGraphDatasetAverageInvalidKeysException();
-        }
-
         if ( ++$this->position >= $this->resolution )
         {
             return false;
@@ -324,6 +324,12 @@
     final public function valid()
     {
         $polynom = $this->getPolynom();
+
+        if ( $this->min >= $this->max )
+        {
+            return false;
+        }
+
         return ( ( $this->getKey() >= $this->min ) && ( $this->getKey() <= 
$this->max ) );
     }
 

Added: 
trunk/Graph/tests/data/compare/ezcGraphDataSetAverageTest_testCreateDatasetFromSingleElementDatasetRender.svg
==============================================================================
Binary file - no diff available.

Propchange: 
trunk/Graph/tests/data/compare/ezcGraphDataSetAverageTest_testCreateDatasetFromSingleElementDatasetRender.svg
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
trunk/Graph/tests/data/compare/ezcGraphDataSetAverageTest_testCreateDatasetFromSingleElementDatasetRender.svg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: trunk/Graph/tests/dataset_average_test.php
==============================================================================
--- trunk/Graph/tests/dataset_average_test.php [iso-8859-1] (original)
+++ trunk/Graph/tests/dataset_average_test.php [iso-8859-1] Tue Feb  5 11:25:23 
2008
@@ -55,6 +55,37 @@
         $this->assertEquals(
             'x^2',
             $polynom->__toString()
+        );
+    }
+
+    public function testCreateDatasetFromSingleElementDataset()
+    {
+        $arrayDataSet = new ezcGraphArrayDataSet( array( 1 => 1 ) );
+
+        $averageDataSet = new ezcGraphDataSetAveragePolynom( $arrayDataSet );
+
+        $polynom = $averageDataSet->getPolynom();
+
+        $this->assertEquals(
+            '1',
+            $polynom->__toString()
+        );
+    }
+
+    public function testCreateDatasetFromSingleElementDatasetRender()
+    {
+        $filename = $this->tempDir . __FUNCTION__ . '.svg';
+
+        $chart = new ezcGraphLineChart();
+
+        $chart->data['src'] = new ezcGraphArrayDataSet( array( 1 => 1 ) );
+        $chart->data['avg'] = new ezcGraphDataSetAveragePolynom( 
$chart->data['src'] );
+
+        $chart->render( 500, 200, $filename );
+
+        $this->compare(
+            $filename,
+            $this->basePath . 'compare/' . __CLASS__ . '_' . __FUNCTION__ . 
'.svg'
         );
     }
 


-- 
svn-components mailing list
svn-components@lists.ez.no
http://lists.ez.no/mailman/listinfo/svn-components

Reply via email to