12345678910111213141516171819202122232425262728 |
- import pytest
- import numpy as np
- from matplotlib import pyplot as plt
- @pytest.mark.backend('TkAgg', skip_on_importerror=True)
- def test_blit():
- from matplotlib.backends import _tkagg
- def evil_blit(photoimage, aggimage, offsets, bboxptr):
- data = np.asarray(aggimage)
- height, width = data.shape[:2]
- dataptr = (height, width, data.ctypes.data)
- _tkagg.blit(
- photoimage.tk.interpaddr(), str(photoimage), dataptr, offsets,
- bboxptr)
- fig, ax = plt.subplots()
- for bad_boxes in ((-1, 2, 0, 2),
- (2, 0, 0, 2),
- (1, 6, 0, 2),
- (0, 2, -1, 2),
- (0, 2, 2, 0),
- (0, 2, 1, 6)):
- with pytest.raises(ValueError):
- evil_blit(fig.canvas._tkphoto,
- np.ones((4, 4, 4)),
- (0, 1, 2, 3),
- bad_boxes)
|