rL i DdZddlmZddlmZdZdZd dZd dZ d dZ y) z| ======================== Widget testing utilities ======================== See also :mod:`matplotlib.tests.test_widgets`. )mockNctjdd\}}|jddgddg|jd|jj |S)z"Create a plot and return its Axes.rg?)pltsubplotsplot set_aspectcanvasdraw)figaxs `/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/matplotlib/testing/widgets.pyget_axrsKll1a GCGGQHq#hMM#JJOO IcyN)argskwargss rnooprsrcDtj}||_|jj ||f||fgd\|_|_||c|_|_||_ |jdj|_ ||_ ||_ d|_d|_|S)a Create a mock event that can stand in for `.Event` and its subclasses. This event is intended to be used in tests where it can be passed into event handling functions. Parameters ---------- ax : `~matplotlib.axes.Axes` The Axes the event will be in. xdata : float x coord of mouse in data coords. ydata : float y coord of mouse in data coords. button : None or `MouseButton` or {'up', 'down'} The mouse button pressed in this event (see also `.MouseEvent`). key : None or str The key pressed when the mouse event triggered (see also `.KeyEvent`). step : int Number of scroll steps (positive for 'up', negative for 'down'). Returns ------- event A `.Event`\-like Mock instance. rT)rootNCustom)rMockbutton transData transformxyxdataydatainaxes get_figurer keystepguiEventname)rrr!r"r%r&events r mock_eventr*s6 IIKEEL||--u~05u~/?@@ACEGUW$eEKEL==d=+22ELEIEJENEJ Lrc`t|j|||||}t||}||y)aT Trigger an event on the given tool. Parameters ---------- tool : matplotlib.widgets.AxesWidget etype : str The event to trigger. xdata : float x coord of mouse in data coords. ydata : float y coord of mouse in data coords. button : None or `MouseButton` or {'up', 'down'} The mouse button pressed in this event (see also `.MouseEvent`). key : None or str The key pressed when the mouse event triggered (see also `.KeyEvent`). step : int Number of scroll steps (positive for 'up', negative for 'down'). N)r*rgetattr) tooletyperr!r"r%r&r)funcs rdo_eventr0Ds/( twwuc4 @E 4 DKrc|t|d|d|dd|t|d|d|ddt|d|d|ddt|d |d|dd|t|d |d|dd|yy) a} Helper to simulate a mouse drag operation. Parameters ---------- tool : `~matplotlib.widgets.Widget` start : [float, float] Starting point in data coordinates. end : [float, float] End point in data coordinates. key : None or str An optional key that is pressed during the whole operation (see also `.KeyEvent`). N on_key_pressrr)r!r"rr%press)r!r"ronmovereleaseon_key_release)r0)r-startendr%s rclick_and_dragr9]s ~U1XU1Xs $ T7%(%(1E T83q6QB T9CF#a&C 's1vSVs $r)rrrNrr) __doc__unittestrmatplotlib.pyplotpyplotrrrr*r0r9rrrr>s, &R2$r