Changeset 73 for trunk/tests/bar.py

Show
Ignore:
Timestamp:
12/20/07 06:00:51 (4 years ago)
Author:
lgs
Message:

Refactor out the _updateChart method to the superclass and fix a rendering bug that caused the bars to be displayed non centered

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/tests/bar.py

    r65 r73  
    4646        surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 500, 500) 
    4747        dataset = ( 
    48             ('dataset1', ([0, 1], [1, 1], [2, 3])), 
    49             ('dataset2', ([0, 2], [1, 0], [3, 4])), 
     48            ('dataset1', ([0, 3], [1, 4], [2, 2], [3,5], [4,3.5])), 
     49            ('dataset2', ([0, 2], [1, 3], [2, 1], [3,5], [4,2.5])), 
    5050            ) 
    5151        ch = pycha.bar.VerticalBarChart(surface) 
     
    5353        ch._updateXY() 
    5454        ch._updateChart() 
    55         self.assertEqual(ch.xrange, 3) 
    56         self.assertAlmostEqual(ch.xscale, 2 / 9.0, 4) 
     55        self.assertEqual(ch.xrange, 4) 
     56        self.assertAlmostEqual(ch.xscale, 0.2, 4) 
     57        self.assertAlmostEqual(ch.yscale, 0.2, 4) 
    5758        self.assertEqual(ch.minxdelta, 1) 
     59        self.assertAlmostEqual(ch.barWidthForSet, 0.075, 4) 
     60        self.assertAlmostEqual(ch.barMargin, 0.025, 4) 
    5861 
    5962        bars = ( 
    60             pycha.bar.Rect(0.25/9, 3.0/4, 0.0833, 1.0/4, 0, 1, 'dataset1'), 
    61             pycha.bar.Rect(0.25,   3.0/4, 0.0833, 1.0/4, 1, 1, 'dataset1'), 
    62             pycha.bar.Rect(4.25/9, 1.0/4, 0.0833, 3.0/4, 2, 3, 'dataset1'), 
     63            pycha.bar.Rect(0.025, 0.4, 0.075, 0.6, 0, 3, 'dataset1'), 
     64            pycha.bar.Rect(0.225, 0.2, 0.075, 0.8, 1, 4, 'dataset1'), 
     65            pycha.bar.Rect(0.425, 0.6, 0.075, 0.4, 2, 2, 'dataset1'), 
     66            pycha.bar.Rect(0.625, 0.0, 0.075, 1.0, 3, 5, 'dataset1'), 
     67            pycha.bar.Rect(0.825, 0.3, 0.075, 0.7, 4, 3.5, 'dataset1'), 
    6368 
    64             pycha.bar.Rect(1.0/9,  2.0/4, 0.0833, 2.0/4, 0, 2, 'dataset2'), 
    65             pycha.bar.Rect(3.0/9,  1,     0.0833, 0, 1, 0, 'dataset2'), 
    66             pycha.bar.Rect(7.0/9,  0,     0.0833, 1, 3, 4, 'dataset2'), 
     69            pycha.bar.Rect(0.100, 0.6, 0.075, 0.4, 0, 2, 'dataset2'), 
     70            pycha.bar.Rect(0.300, 0.4, 0.075, 0.6, 1, 3, 'dataset2'), 
     71            pycha.bar.Rect(0.500, 0.8, 0.075, 0.2, 2, 1, 'dataset2'), 
     72            pycha.bar.Rect(0.700, 0.0, 0.075, 1.0, 3, 5, 'dataset2'), 
     73            pycha.bar.Rect(0.900, 0.5, 0.075, 0.5, 4, 2.5, 'dataset2'), 
    6774            ) 
    6875 
     
    8895        ch._updateChart() 
    8996        ch._updateTicks() 
    90         xticks = [(1/9.0, 1), (3/9.0, 2), (5/9.0, 3)] 
     97        xticks = [(0.125, 1), (0.375, 2), (0.625, 3)] 
    9198        for i in range(len(xticks)): 
    9299            self.assertAlmostEqual(ch.xticks[i][0], xticks[i][0], 4) 
     
    111118        ch._updateChart() 
    112119        self.assertEqual(ch.xrange, 3) 
    113         self.assertAlmostEqual(ch.xscale, 2 / 9.0, 4) 
     120        self.assertAlmostEqual(ch.xscale, 0.25, 4) 
     121        self.assertAlmostEqual(ch.yscale, 0.25, 4) 
    114122        self.assertEqual(ch.minxdelta, 1) 
     123        self.assertAlmostEqual(ch.barWidthForSet, 0.09375, 4) 
     124        self.assertAlmostEqual(ch.barMargin, 0.03125, 4) 
    115125 
    116126        bars = ( 
    117             pycha.bar.Rect(0, 0.25/9, 1.0/4, 0.0833, 0, 1, 'dataset1'), 
    118             pycha.bar.Rect(0, 0.25,   1.0/4, 0.0833, 1, 1, 'dataset1'), 
    119             pycha.bar.Rect(0, 4.25/9, 3.0/4, 0.0833, 2, 3, 'dataset1'), 
     127            pycha.bar.Rect(0, 0.03125, 0.25, 0.09375, 0, 1, 'dataset1'), 
     128            pycha.bar.Rect(0, 0.28125, 0.25, 0.09375, 1, 1, 'dataset1'), 
     129            pycha.bar.Rect(0, 0.53125, 0.75, 0.09375, 2, 3, 'dataset1'), 
    120130 
    121             pycha.bar.Rect(0, 1.0/9,  2.0/4, 0.0833, 0, 2, 'dataset2'), 
    122             pycha.bar.Rect(0, 3.0/9,  0,     0.0833, 1, 0, 'dataset2'), 
    123             pycha.bar.Rect(0, 7.0/9,  1,     0.0833, 3, 4, 'dataset2'), 
     131            pycha.bar.Rect(0, 0.125, 0.5, 0.09375, 0, 2, 'dataset2'), 
     132            pycha.bar.Rect(0, 0.375, 0.0, 0.09375, 1, 0, 'dataset2'), 
     133            pycha.bar.Rect(0, 0.875, 1.0, 0.09375, 3, 4, 'dataset2'), 
    124134            ) 
    125135 
     
    145155        ch._updateChart() 
    146156        ch._updateTicks() 
    147         yticks = [(1/9.0, 1), (3/9.0, 2), (5/9.0, 3)] 
     157        yticks = [(0.125, 1), (0.375, 2), (0.625, 3)] 
    148158        for i in range(len(yticks)): 
    149159            self.assertAlmostEqual(ch.yticks[i][0], yticks[i][0], 4)