§
    ¢éUgx  ã                   óp   — d Z ddlZddlmZmZ ddlmZ ddlm	Z	 ddl
mZmZ ddlmZ  G d„ d	¦  «        ZdS )
zTests for _sketches.py.é    N)Úassert_Úassert_equal)Úclarkson_woodruff_transform)Ú
cwt_matrix)ÚissparseÚrand)Únormc                   ód  — e Zd ZdZej                             d¬¦  «        ZdZdZ	dZ
dZg d¢Ze                     ee	¦  «        Z eee	e
d	e¬
¦  «        Z eee	e
de¬
¦  «        Z eee	e
de¬
¦  «        ZeeeegZe                     ed¦  «         ej        e¦  «        z  Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestClarksonWoodruffTransformz1
    Testing the Clarkson Woodruff Transform
    iý°GF©ÚseediÐ  éd   çš™™™™™¹?éÈ   )
iÚ¦¢hi¾v±7ižSòRir6xhi'@½wiÚ·¡Mi…ã©ZiÀTzYi¹ñ CiUÔf[Úcsc)ÚdensityÚformatÚrandom_stateÚcsrÚcooé   c                 ó¤   — | j         D ]G}| j        D ]=}t          || j        |¬¦  «        }t	          |j        | j        | j        fk    ¦  «         Œ>ŒHd S ©Nr   )Útest_matricesÚseedsr   Ún_sketch_rowsr   ÚshapeÚn_cols)ÚselfÚAr   Úsketchs       ú_/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/linalg/tests/test_sketches.pyÚtest_sketch_dimensionsz4TestClarksonWoodruffTransform.test_sketch_dimensions1   s}   € ØÔ#ð 	Kð 	KˆAØœ
ð Kð K�Ý4Ø�tÔ)°ðñ ô �õ ˜œ¨Ô);¸T¼[Ð(IÒIÑJÔJÐJÐJð	Kð	Kð 	Kó    c                 ó  — | j         D ]x}| j        D ]n}t          | j        | j        |¬¦  «                             ¦   «         }t          | j        | j        |¬¦  «                             ¦   «         }t          ||¦  «         ŒoŒyd S r   )r   r   r   r   Ún_rowsÚtoarrayr   )r   r    r   ÚS1ÚS2s        r"   Ú,test_seed_returns_identical_transform_matrixzJTestClarksonWoodruffTransform.test_seed_returns_identical_transform_matrix9   s£   € ØÔ#ð 	%ð 	%ˆAØœ
ð %ð %�ÝØÔ&¨¬¸$ðñ ô ç’'‘)”)ð õ  ØÔ&¨¬¸$ðñ ô ç’'‘)”)ð õ ˜R Ñ$Ô$Ð$Ð$ð%ð	%ð 	%r$   c                 ó6  — | j         D ]�}| j        D ]†}t          || j        |¬¦  «        }t          || j        |¬¦  «        }t	          |¦  «        r|                     ¦   «         }t	          |¦  «        r|                     ¦   «         }t          ||¦  «         Œ‡Œ‘d S r   )r   r   r   r   r   r'   r   )r   r    r   Úsketch1Úsketch2s        r"   Útest_seed_returns_identicallyz;TestClarksonWoodruffTransform.test_seed_returns_identicallyD   sÅ   € ØÔ#ð 	/ð 	/ˆAØœ
ð /ð /�Ý5Ø�tÔ)°ðñ ô �õ 6Ø�tÔ)°ðñ ô �õ ˜GÑ$Ô$ð 0Ø%ŸošoÑ/Ô/�GÝ˜GÑ$Ô$ð 0Ø%ŸošoÑ/Ô/�GÝ˜W gÑ.Ô.Ð.Ð.ð/ð	/ð 	/r$   c                 óÄ  — d}| j         D ]Â}t          |¦  «        rt          |¦  «        }nt          j                             |¦  «        }| j        D ]z}t          || j        |¬¦  «        }t          |¦  «        rt          |¦  «        }nt          j                             |¦  «        }t          j        ||z
  ¦  «        d|z  k    r|dz  }Œ{ŒÃt          |dk    ¦  «         d S )Nr   r   r   r   )
r   r   r	   ÚnpÚlinalgr   r   r   Úabsr   )r   Ún_errorsr    Ú	true_normr   r!   Úsketch_norms          r"   Ú$test_sketch_preserves_frobenius_normzBTestClarksonWoodruffTransform.test_sketch_preserves_frobenius_normS   sñ   € ð ˆØÔ#ð 	"ð 	"ˆAÝ˜‰{Œ{ð .Ý  ™GœG�	�	åœIŸNšN¨1Ñ-Ô-�	Øœ
ð 
"ð 
"�Ý4Ø�tÔ)°ðñ ô �õ ˜FÑ#Ô#ð 9Ý"& v¡,¤,�K�Kå"$¤)§.¢.°Ñ"8Ô"8�Kå”6˜) kÑ1Ñ2Ô2°S¸9±_ÒDÐDØ ‘M�Høð
"õ 	�˜A’ÑÔÐÐÐr$   c                 ó€  — d}t          t          j        d¦  «        ¦  «        }t          j                             | j        ¦  «        }| j        D ][}t          | j        ||¬¦  «        }t          j                             |¦  «        }t          j        ||z
  ¦  «        d|z  k    r|dz  }Œ\t          |dk    ¦  «         d S )Nr   g      ‰@r   g      à?r   )
Úintr0   Úceilr1   r	   Úxr   r   r2   r   )r   r3   r   r4   r   r!   r5   s          r"   Ú!test_sketch_preserves_vector_normz?TestClarksonWoodruffTransform.test_sketch_preserves_vector_normj   s·   € ØˆÝ�BœGÐ$8Ñ9Ô9Ñ:Ô:ˆÝ”I—N’N 4¤6Ñ*Ô*ˆ	Ø”Jð 	ð 	ˆDÝ0Ø”˜¨Dðñ ô ˆFõ œ)Ÿ.š.¨Ñ0Ô0ˆKåŒv�i +Ñ-Ñ.Ô.°°y±Ò@Ð@Ø˜A‘�øÝ�˜A’ÑÔÐÐÐr$   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r0   ÚrandomÚRandomStateÚrngr&   r   r   r   r   ÚrandnÚA_denser   ÚA_cscÚA_csrÚA_coor   Úsqrtr:   r#   r*   r.   r6   r;   © r$   r"   r   r      sd  € € € € € ðð ð Œ)×
Ò
 ZÐ
Ñ
0Ô
0€Cð €FØ€FØ€Gð €MðIð Ið I€Eð �iŠi˜ Ñ'Ô'€GØˆDØ� °ÀCðñ ô €Eð ˆDØ� °ÀCðñ ô €Eð ˆDØ� °ÀCðñ ô €Eð 	�˜˜uð€Mð
 	�	Š	�&˜!ÑÔ˜w˜rœw v™œÑ.€AðKð Kð Kð	%ð 	%ð 	%ð/ð /ð /ðð ð ð.ð ð ð ð r$   r   )r?   Únumpyr0   Únumpy.testingr   r   Úscipy.linalgr   Úscipy.linalg._sketchesr   Úscipy.sparser   r   Úscipy.sparse.linalgr	   r   rI   r$   r"   ú<module>rP      s¹   ðØ Ð à Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø -Ð -Ð -Ð -Ð -Ð -Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø $Ð $Ð $Ð $Ð $Ð $ðkð kð kð kð kñ kô kð kð kð kr$   