WL i hddlmZddlmZmZddlZerddlmZ d ddZ d d dZ y) ) annotations) TYPE_CHECKINGAnyN)CoordinateArrayc h|\}}tj|tj}tj|tj}tj||\}}|dz }|dz }tjgd}tjddgddgdd gd dgd d gg} tjgd } tj |} t t|D]I} | || tj||z | | d fz dz||z | | dfz dzz | | dzz zz } K|rstj||z dz dzdz ||z dz dzdz zdk||z dz dzdz ||z dz dzdz zdk} tjj| | } ||| fS)aiReturn simple test data consisting of the sum of two gaussians. Args: shape (tuple(int, int)): 2D shape of data to return. want_mask (bool, optional): Whether test data should be masked or not, default ``False``. Return: Tuple of 3 arrays: ``x``, ``y``, ``z`` test data, ``z`` will be masked if ``want_mask=True``. dtype?)r g皙?gffffff?皙?皙?g333333?r g?g?r g?)r rrr皙?rrg{Gz?g?g{Gz?mask) nparangefloat64meshgridasarray zeros_likerangelenexp logical_ormaarray)shape want_masknynxxyxscaleyscaleampmidwidthzirs Y/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/contourpy/util/data.pysimpler/ sFB "BJJ'A "BJJ'A ;;q! DAq #XF #XF **0 1C **sCj3*sDkC:c{S TC JJ0 1E aA 3s8_c SVBFFahQT2Q6!F(SAY:NQR9RRSV[\]V^`aVaab bbc}}hnq 3 &!F(S.1)*E E L  EEKKK % a7Nc|\}}tj|tj}tj|tj}tj||\}}tjj |}|j |}|dkDrBt|d}|j ||k} tjj|| }|||fS)aReturn random test data in the range 0 to 1. Args: shape (tuple(int, int)): 2D shape of data to return. seed (int, optional): Seed for random number generator, default 2187. mask_fraction (float, optional): Fraction of elements to mask, default 0. Return: Tuple of 3 arrays: ``x``, ``y``, ``z`` test data, ``z`` will be masked if ``mask_fraction`` is greater than zero. r)sizergGz?r) rrrrrandom default_rnguniformminrr ) r!seed mask_fractionr#r$r%r&rngr,rs r.r3r33sFB "BJJ'A "BJJ'A ;;q! DAq ))   %C  AsM40 {{{&6 EEKKK % a7Nr0)F)r!tuple[int, int]r"boolreturnVtuple[CoordinateArray, CoordinateArray, CoordinateArray | np.ma.MaskedArray[Any, Any]])ir)r!r:r7intr8floatr<r=) __future__rtypingrrnumpyrcontourpy._contourpyrr/r3r0r.rEsc"%4/4% %'+%[%RFI "%=B[r0