(ax, add_state)
| 300 | |
| 301 | @pytest.mark.parametrize('add_state', [True, False]) |
| 302 | def test_rectangle_resize_square(ax, add_state): |
| 303 | tool = widgets.RectangleSelector(ax, interactive=True) |
| 304 | # Create rectangle |
| 305 | click_and_drag(tool, start=(70, 65), end=(120, 115)) |
| 306 | assert tool.extents == (70.0, 120.0, 65.0, 115.0) |
| 307 | |
| 308 | if add_state: |
| 309 | tool.add_state('square') |
| 310 | use_key = None |
| 311 | else: |
| 312 | use_key = 'shift' |
| 313 | |
| 314 | # resize NE handle |
| 315 | extents = tool.extents |
| 316 | xdata, ydata = extents[1], extents[3] |
| 317 | xdiff, ydiff = 10, 5 |
| 318 | xdata_new, ydata_new = xdata + xdiff, ydata + ydiff |
| 319 | click_and_drag(tool, start=(xdata, ydata), end=(xdata_new, ydata_new), |
| 320 | key=use_key) |
| 321 | assert tool.extents == (extents[0], xdata_new, |
| 322 | extents[2], extents[3] + xdiff) |
| 323 | |
| 324 | # resize E handle |
| 325 | extents = tool.extents |
| 326 | xdata, ydata = extents[1], extents[2] + (extents[3] - extents[2]) / 2 |
| 327 | xdiff = 10 |
| 328 | xdata_new, ydata_new = xdata + xdiff, ydata |
| 329 | click_and_drag(tool, start=(xdata, ydata), end=(xdata_new, ydata_new), |
| 330 | key=use_key) |
| 331 | assert tool.extents == (extents[0], xdata_new, |
| 332 | extents[2], extents[3] + xdiff) |
| 333 | |
| 334 | # resize E handle negative diff |
| 335 | extents = tool.extents |
| 336 | xdata, ydata = extents[1], extents[2] + (extents[3] - extents[2]) / 2 |
| 337 | xdiff = -20 |
| 338 | xdata_new, ydata_new = xdata + xdiff, ydata |
| 339 | click_and_drag(tool, start=(xdata, ydata), end=(xdata_new, ydata_new), |
| 340 | key=use_key) |
| 341 | assert tool.extents == (extents[0], xdata_new, |
| 342 | extents[2], extents[3] + xdiff) |
| 343 | |
| 344 | # resize W handle |
| 345 | extents = tool.extents |
| 346 | xdata, ydata = extents[0], extents[2] + (extents[3] - extents[2]) / 2 |
| 347 | xdiff = 15 |
| 348 | xdata_new, ydata_new = xdata + xdiff, ydata |
| 349 | click_and_drag(tool, start=(xdata, ydata), end=(xdata_new, ydata_new), |
| 350 | key=use_key) |
| 351 | assert tool.extents == (xdata_new, extents[1], |
| 352 | extents[2], extents[3] - xdiff) |
| 353 | |
| 354 | # resize W handle negative diff |
| 355 | extents = tool.extents |
| 356 | xdata, ydata = extents[0], extents[2] + (extents[3] - extents[2]) / 2 |
| 357 | xdiff = -25 |
| 358 | xdata_new, ydata_new = xdata + xdiff, ydata |
| 359 | click_and_drag(tool, start=(xdata, ydata), end=(xdata_new, ydata_new), |
nothing calls this directly
no test coverage detected
searching dependent graphs…