| 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 | |
| | 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 | |