
    {Kg                     $   d dl mZ d dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZmZ d dlmZ d dlmZ  e       Zej&                  j)                  ej*                        Zej.                  j)                  ej*                        Z ej2                  ej4                  ej*                        Zej&                  j)                  ej8                        Zej.                  j)                  ej8                        Z ej2                  ej4                  ej8                        Zej8                  ej*                  gZ d	 Z!d
 Z"d Z#d Z$d Z%d Z&ejN                  jQ                  de      ejN                  jQ                  d e$        e%       z         d               Z)ejN                  jQ                  d ee e      D  cg c]  \  } } e"|        e#||       f c}}       d        Z*ejN                  jQ                  d e&             d        Z+d Z,yc c}} w )    )productN)assert_array_equal)	load_iris)ArrayDataset32ArrayDataset64CSRDataset32CSRDataset64)assert_allclose)CSR_CONTAINERS)dtypec                    | j                          |j                          |j                  | j                        }| j                  d   |j                  d   k(  sJ | j                  d   |j                  d   k(  sJ t	        | j
                  |j
                         t	        | j                  |j                         t	        | j                  |j                         y )Nr      )eliminate_zerosastyper   shaper   dataindicesindptr)currentexpecteds     h/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/sklearn/utils/tests/test_seq_dataset.pyassert_csr_equal_valuesr   "   s    w}}-H==x~~a0000==x~~a0000w||X]]3w(8(89w~~x7    c                     | t         j                  k(  rt        t        t        t
        d      S t        t        t        t        d      S N*   seed)
npfloat32r   X32y32sample_weight32r   X64y64sample_weight64float_dtypes    r   _make_dense_datasetr)   -   s0    bjj c3bAA#sO"==r   c                     |t         j                  k(  rt        t        t        t
        f\  }}}}nt        t        t        t        f\  }}}} | |      } ||j                  |j                  |j                  ||d      S r   )r   r    r!   r"   r#   r   r$   r%   r&   r	   r   r   r   )csr_containerr(   Xysample_weightcsr_datasets         r   _make_sparse_datasetr0   3   sg    bjj +._l+R(1m[+._l+R(1m[aAqvvqxxA}2NNr   c                  F    t         D  cg c]  } t        |        c} S c c} w N)floatingr)   r'   s    r   _make_dense_datasetsr4   <   s     @HI,IIIs   c                  p    t        t        t              D  cg c]  \  } }t        | |       c}} S c c}} w r2   )r   r   r3   r0   )r+   r(   s     r   _make_sparse_datasetsr6   @   s<     +2.(*K*K&M; 	]K8*K  s   2c                  l     t               t               z     fdt        dt               d      D        S )Nc              3   .   K   | ]  }||d z      yw)   N ).0idxall_datasetss     r   	<genexpr>z-_make_fused_types_datasets.<locals>.<genexpr>J   s     R3QCLsQw'3Qs   r   r9   )r4   r6   rangelen)r=   s   @r   _make_fused_types_datasetsrA   G   s-    '),A,CCLR5C<Mq3QRRr   r+   datasetc                    d} |t               }t        |      D ]  }| j                         \  }}}} ||dt         j                  d   f      }	t	        |	||g          |t
        |   k(  sJ |t        |   k(  sJ | j                         \  }}}} ||dt         j                  d   f      }	t	        |	||g          |t
        |   k(  sJ |t        |   k(  rJ  y )N   r   )r   )r$   r?   _next_pyr   r   r%   r&   
_random_py)
rB   r+   NUMBER_OF_RUNSX_csr64_xi_yiswir<   xis
             r    test_seq_dataset_basic_iterationrN   M   s     NC G>"#,,.Rc3q#))A,&78GSEN3SX~~oc**** $..0Rc3q#))A,&78GSEN3SX~~oc**** #r   zdense_dataset,sparse_datasetc                 r   t        d      D ]:  }| j                         \  }}}}|j                         \  }}}}||k(  sJ ||k(  r:J  dD ]:  }| j                         \  }}}}|j                         \  }}}}||k(  sJ ||k(  r:J  d}| j                  |       |j                  |       g d}g d}t	        ||      D ]u  \  }}	| j                         \  }}}}|j                         \  }}}}||k(  sJ ||k(  sJ | j                         \  }}}}|j                         \  }}}}||	k(  sJ ||	k(  ruJ  y )NrD   )   2   	      :   M   )?   [      W      )   }   8   y      )r?   rE   rF   _shuffle_pyzip)
dense_datasetsparse_datasetirI   idx1idx2r   idx_nextidx_shufflejs
             r   test_seq_dataset_shufflerj   d   sp    1X%..01a&//11aqyyqyy	  "%0021a&1131aqyyqyy	 " Dd#t$$H*KHk*1%..01a&//11aqyyqyy%0021a&1131aqyyqyy +r   zdataset_32,dataset_64c                 @   d}t        |      D ]  }| j                         \  \  }}}}}}|j                         \  \  }}}}}}|j                  t        j                  k(  sJ |j                  t        j
                  k(  sJ t        ||d       t        ||d        y )NrD   gh㈵>)rtol)r?   rE   r   r   r    float64r
   )
dataset_32
dataset_64rG   rI   	xi_data32yi32	xi_data64yi64s           r   test_fused_types_consistencyrt      s    N>"(2(;(;(=%Aq4A(2(;(;(=%Aq4A"**,,,"**,,,	948d. #r   c            
         t        j                  t        d      5  t        t        t
        t        d      f d d d        t        j                  t        d      5  t        t        t        t        d      f d d d        t        D ]  }  | t              } | t              }t        j                  t        d      5  t        |j                  |j                  |j                  t
        t        d      f d d d        t        j                  t        d      5  t!        |j                  |j                  |j                  t        t        d      f d d d         y # 1 sw Y   &xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)NzBuffer dtype mismatch)matchr   r   )pytestraises
ValueErrorr   r!   r"   r#   r   r$   r%   r&   r   r	   r   r   r   r   )r+   X_csr32rH   s      r    test_buffer_dtype_mismatch_errorr{      s   	z)@	AsCr:; 
B 
z)@	AsCr:; 
B ($$]]:-DE  F ]]:-DE  FE ( 
B	A 
B	A FE FEs/   EE*=9E69FE'*E36E?	F	)-	itertoolsr   numpyr   rw   numpy.testingr   sklearn.datasetsr   sklearn.utils._seq_datasetr   r   r   r	   sklearn.utils._testingr
   sklearn.utils.fixesr   irisr   r   rm   r$   targetr%   arangesizer&   r    r!   r"   r#   r3   r   r)   r0   r4   r6   rA   markparametrizerN   rj   rt   r{   )r(   r+   s   00r   <module>r      s      , &  3 .{
iirzz"
kk$"))CHHBJJ7
iirzz"
kk$"))CHHBJJ7JJ

#8>OJS .9$8$:=R=T$TU+ V :+* " +2(N*K
 +L&K  , <	
 +L		@ 02L2NO/ P/os   8H