Changeset 109 for trunk/tests/line.py

Show
Ignore:
Timestamp:
10/27/08 16:49:58 (4 years ago)
Author:
lgs
Message:

Some refactoring and support for negative values in line and bar charts. Inspired by Nicolas patch

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/tests/line.py

    r85 r109  
    4848        ch._updateXY() 
    4949        ch._updateChart() 
    50                  
     50 
     51        self.assertEqual(ch.minxval, 0) 
     52        self.assertEqual(ch.maxxval, 3) 
     53        self.assertEqual(ch.xrange, 3) 
     54        self.assertAlmostEqual(ch.xscale, 1/3.0, 4) 
     55        self.assertEqual(ch.minyval, 0) 
     56        self.assertEqual(ch.maxyval, 4) 
     57        self.assertEqual(ch.yrange, 4) 
     58        self.assertAlmostEqual(ch.yscale, 0.25, 4) 
     59 
    5160        points = ( 
    5261            pycha.line.Point(0, 0.75, 0, 1, 'dataset1'), 
     
    6574            self.assertEqual(p1.name, p2.name) 
    6675 
     76    def test_updateChartWithNegatives(self): 
     77        surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 500, 500) 
     78        dataset = ( 
     79            ('dataset1', ([0, 1], [1, -2], [2, 3])), 
     80            ('dataset2', ([0, 2], [1, 0], [3, -4])), 
     81            ) 
     82        ch = pycha.line.LineChart(surface) 
     83        ch.addDataset(dataset) 
     84        ch._updateXY() 
     85        ch._updateChart() 
     86        self.assertEqual(ch.minxval, 0) 
     87        self.assertEqual(ch.maxxval, 3) 
     88        self.assertEqual(ch.xrange, 3) 
     89        self.assertAlmostEqual(ch.xscale, 1/3.0, 4) 
     90        self.assertEqual(ch.minyval, -4) 
     91        self.assertEqual(ch.maxyval, 3) 
     92        self.assertEqual(ch.yrange, 7) 
     93        self.assertAlmostEqual(ch.yscale, 1/7.0, 4) 
     94 
     95        points = ( 
     96            pycha.line.Point(0, 0.2857, 0, 1, 'dataset1'), 
     97            pycha.line.Point(1/3.0, 0.7143, 1, -2, 'dataset1'), 
     98            pycha.line.Point(2/3.0, 0.0, 2, 3, 'dataset1'), 
     99            pycha.line.Point(0, 0.1429, 0, 2, 'dataset2'), 
     100            pycha.line.Point(1/3.0, 0.4286, 1, 0, 'dataset2'), 
     101            pycha.line.Point(1, 1.0, 3, -4, 'dataset2'), 
     102        ) 
     103        for i, point in enumerate(points): 
     104            p1, p2 = ch.points[i], point 
     105            self.assertAlmostEqual(p1.x, p2.x, 4) 
     106            self.assertAlmostEqual(p1.y, p2.y, 4) 
     107            self.assertAlmostEqual(p1.xval, p2.xval, 4) 
     108            self.assertAlmostEqual(p1.yval, p2.yval, 4) 
     109            self.assertEqual(p1.name, p2.name) 
     110 
    67111def test_suite(): 
    68112    return unittest.TestSuite((