(ax, add_state)
| 226 | |
| 227 | @pytest.mark.parametrize('add_state', [True, False]) |
| 228 | def test_rectangle_resize_center(ax, add_state): |
| 229 | tool = widgets.RectangleSelector(ax, interactive=True) |
| 230 | # Create rectangle |
| 231 | click_and_drag(tool, start=(70, 65), end=(125, 130)) |
| 232 | assert tool.extents == (70.0, 125.0, 65.0, 130.0) |
| 233 | |
| 234 | if add_state: |
| 235 | tool.add_state('center') |
| 236 | use_key = None |
| 237 | else: |
| 238 | use_key = 'control' |
| 239 | |
| 240 | # resize NE handle |
| 241 | extents = tool.extents |
| 242 | xdata, ydata = extents[1], extents[3] |
| 243 | xdiff, ydiff = 10, 5 |
| 244 | xdata_new, ydata_new = xdata + xdiff, ydata + ydiff |
| 245 | click_and_drag(tool, start=(xdata, ydata), end=(xdata_new, ydata_new), |
| 246 | key=use_key) |
| 247 | assert tool.extents == (extents[0] - xdiff, xdata_new, |
| 248 | extents[2] - ydiff, ydata_new) |
| 249 | |
| 250 | # resize E handle |
| 251 | extents = tool.extents |
| 252 | xdata, ydata = extents[1], extents[2] + (extents[3] - extents[2]) / 2 |
| 253 | xdiff = 10 |
| 254 | xdata_new, ydata_new = xdata + xdiff, ydata |
| 255 | click_and_drag(tool, start=(xdata, ydata), end=(xdata_new, ydata_new), |
| 256 | key=use_key) |
| 257 | assert tool.extents == (extents[0] - xdiff, xdata_new, |
| 258 | extents[2], extents[3]) |
| 259 | |
| 260 | # resize E handle negative diff |
| 261 | extents = tool.extents |
| 262 | xdata, ydata = extents[1], extents[2] + (extents[3] - extents[2]) / 2 |
| 263 | xdiff = -20 |
| 264 | xdata_new, ydata_new = xdata + xdiff, ydata |
| 265 | click_and_drag(tool, start=(xdata, ydata), end=(xdata_new, ydata_new), |
| 266 | key=use_key) |
| 267 | assert tool.extents == (extents[0] - xdiff, xdata_new, |
| 268 | extents[2], extents[3]) |
| 269 | |
| 270 | # resize W handle |
| 271 | extents = tool.extents |
| 272 | xdata, ydata = extents[0], extents[2] + (extents[3] - extents[2]) / 2 |
| 273 | xdiff = 15 |
| 274 | xdata_new, ydata_new = xdata + xdiff, ydata |
| 275 | click_and_drag(tool, start=(xdata, ydata), end=(xdata_new, ydata_new), |
| 276 | key=use_key) |
| 277 | assert tool.extents == (xdata_new, extents[1] - xdiff, |
| 278 | extents[2], extents[3]) |
| 279 | |
| 280 | # resize W handle negative diff |
| 281 | extents = tool.extents |
| 282 | xdata, ydata = extents[0], extents[2] + (extents[3] - extents[2]) / 2 |
| 283 | xdiff = -25 |
| 284 | xdata_new, ydata_new = xdata + xdiff, ydata |
| 285 | click_and_drag(tool, start=(xdata, ydata), end=(xdata_new, ydata_new), |
nothing calls this directly
no test coverage detected
searching dependent graphs…