
    (phf3                     @   S SK r S SKrS SKrS SKJr  S SKJr  S SKr	S SK
JrJrJrJr  S SKJr  S SKJr  S SKJrJr  \" \R.                  R1                  \5      S5      r\" \S	5      r\" \S
5      r\" \S5      r\" \S5      r\" \S5      r\" \S5      r \" \S5      r!\" \S5      r"\" \S5      r#\" \S5      r$\" \S5      r%\" \S5      r&\" \S5      r'/ SQr(/ SQr)\" \S5      r*\	RV                  " SS/SS/\	RX                  \	RX                  //5      r-\	R\                  " SS\/4S\/4/5      r0\-SS2S 4   \0S'   \-SS2S4   \0S'    " S  S!5      r1 " S" S#5      r2 " S$ S%5      r3 " S& S'5      r4 " S( S)5      r5 " S* S+5      r6 " S, S-5      r7 " S. S/5      r8 " S0 S15      r9g)2    N)join)StringIO)assert_array_almost_equalassert_array_equalassert_equalassert_)raises)loadarff)read_headerParseArffErrordataz
test1.arffz
test2.arffz
test3.arffz
test4.arffz
test5.arffz
test6.arffz
test7.arffz
test8.arffz
test9.arffztest10.arffztest11.arffzquoted_nominal.arffzquoted_nominal_spaces.arff))g?g?g333333?g?class1)ggɿg333333ӿgٿclass2)            class3)numericr   r   r   nominalzmissing.arffr      r   r   r   yopyapc                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestData/   c                 .    U R                  [        5        g N)_testtest4selfs    T/var/www/html/venv/lib/python3.13/site-packages/scipy/io/arff/tests/test_arffread.pytest1TestData.test10       

5    c                 .    U R                  [        5        g r   )r   test5r!   s    r#   test2TestData.test24   r&   r'   c                 .    U R                  [        5        g r   )r   test6r!   s    r#   test3TestData.test38   r&   r'   c                 .    U R                  [        5        g r   )r   test11r!   s    r#   r    TestData.test4<   s    

6r'   c                     [        U5      u  p#[        [        U5      5       H0  n[        S5       H  n[        [        U   U   X$   U   5        M      M2     [        UR                  5       [        5        g )Nr   )r
   rangelenr   expect4_datar   typesexpected_types)r"   	test_filer   metaijs         r#   r   TestData._test@   sZ    i(
s4y!A1X),q/!*<dgajI  " 	TZZ\>2r'   c                 f   [        [        5       n[        U5      u  p#S S S 5        [        [        5       n[        [        UR	                  5       5      5      u  pVS S S 5        [        WW:H  5        [        [        W5      [        W5      :H  5        g ! , (       d  f       Ny= f! , (       d  f       NN= fr   )openr$   r
   r   readr   repr)r"   f1data1meta1f2data2meta2s          r#   test_filelikeTestData.test_filelikeG   so    %[B#B<LE %[B#HRWWY$78LE UtE{*+ [[s   B%B"
B"
B0c                    SSK Jn  [        [        5       n[	        U5      u  p4S S S 5        [	        U" [        5      5      u  pV[        WU:H  5        [        [        W5      [        U5      :H  5        g ! , (       d  f       NT= f)Nr   )Path)pathlibrK   r?   r$   r
   r   rA   )r"   rK   rB   rC   rD   rF   rG   s          r#   	test_pathTestData.test_pathP   sY     %[B#B<LE   U,UtE{*+ [s   A22
B  N)__name__
__module____qualname____firstlineno__r$   r*   r.   r    r   rH   rM   __static_attributes__rO   r'   r#   r   r   /   s%    3,
,r'   r   c                       \ rS rSrS rSrg)TestMissingData]   c                 b    [        [        5      u  pS H  n[        X   [        U   5        M     g )N)r   r   )r
   missingr   expect_missing)r"   r   r:   r;   s       r#   test_missingTestMissingData.test_missing^   s)    g&
A%dg~a/@A  r'   rO   N)rP   rQ   rR   rS   r[   rT   rO   r'   r#   rV   rV   ]   s    Br'   rV   c                       \ rS rSrS rSrg)
TestNoDatad   c                 N   [         R                  R                  [        S5      n[	        U5      u  p#[
        R                  S:X  a  SnOSn[        R                  " SU S34SU S34SU S34S	U S34S
/5      n[        UR                  U5        [        UR                  S5        g )Nznodata.arffbig><sepallengthf8
sepalwidthpetallength
petalwidth)classS15r   )ospathr   	data_pathr
   sys	byteordernpdtyper   size)r"   nodata_filenamer   r:   endexpected_dtypes         r#   test_nodataTestNoData.test_nodatae   s     '',,y-@o.
==E!CCMcU":#>$0SE*#=$1cU":#>$0SE*#=#3	#5 6
 	TZZ0TYY"r'   rO   N)rP   rQ   rR   rS   rv   rT   rO   r'   r#   r^   r^   d   s    #r'   r^   c                   2    \ rS rSrS rS rS rS rS rSr	g)	
TestHeaderw   c                     [        [        5       n[        U5      u  p#S S S 5        / SQn[        [	        W5      5       H  n[        X5   R                  XE   :H  5        M!     g ! , (       d  f       NJ= f)N)
r   r   r   r   r   r   stringr|   r   r   )r?   r*   r   r4   r5   r   	type_name)r"   ofilerelattrsexpectedr;   s         r#   test_type_parsingTestHeader.test_type_parsingx   sX    %[E$U+JC I s5z"AEH&&(+56 # [s   A""
A0c                 *    S n[        [        U5        g )Nc                  r    [        [        5       n [        U 5      u    nS S S 5        g ! , (       d  f       g = fr   )r?   r.   r   r~   _s     r#   badtype_read5TestHeader.test_badtype_parsing.<locals>.badtype_read   #    e"5)1    (
6)assert_raisesr   )r"   r   s     r#   test_badtype_parsingTestHeader.test_badtype_parsing   s    	* 	nl3r'   c                    [        [        5       n[        U5      u  p#S S S 5        [        WS:H  5        [        [	        W5      S:H  5        [        S5       H:  n[        X4   R                  SU-  :H  5        [        X4   R                  S:H  5        M<     [        US   R                  S:H  5        [        US   R                  S:H  5        g ! , (       d  f       N= f)Nr$   r   r   zattr%dr   ri   )class0r   r   r   )	r?   r$   r   r   r5   r4   namer}   values)r"   r~   r   r   r;   s        r#   test_fullheader1TestHeader.test_fullheader1   s    %[E$U+JC  	w 	E
a qAEHMMX\12EH&&)34 
 	a()a#KKL [s   C
Cc                    [        [        5       n[        U5      u  p#S S S 5        [        WS:H  5        [        [	        W5      S:H  5        [        US   R
                  S:H  5        [        US   R                  S:H  5        [        US   R
                  S:H  5        [        US   R                  S:H  5        [        US	   R
                  S
:H  5        [        US	   R                  S:H  5        [        US   R
                  S:H  5        [        US   R                  S:H  5        [        US   R
                  S:H  5        [        US   R                  S:H  5        g ! , (       d  f       GNC= f)Ntest7r   r   	attr_yearz%Yr   
attr_monthz%Y-%mr   	attr_datez%Y-%m-%dr   attr_datetime_localz%Y-%m-%d %H:%Mr   attr_datetime_missing)r?   r   r   r   r5   r   date_format)r"   r~   r   r   s       r#   test_dateheaderTestHeader.test_dateheader   s"   %[E$U+JC  	wE
a a,-a$$,-a-.a$$/0a,-a$$
23a!667a$$(889a!889a$$(889) [s   E
E)c                 *    S n[        [        U5        g )Nc                  r    [        [        5       n [        U 5      u    nS S S 5        g ! , (       d  f       g = fr   )r?   test8r   r   s     r#   read_dateheader_unsupportedKTestHeader.test_dateheader_unsupported.<locals>.read_dateheader_unsupported   r   r   )r   
ValueError)r"   r   s     r#   test_dateheader_unsupported&TestHeader.test_dateheader_unsupported   s    	* 	j"=>r'   rO   N)
rP   rQ   rR   rS   r   r   r   r   r   rT   rO   r'   r#   ry   ry   w   s    	74M$:.?r'   ry   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestDateAttribute   c                 <    [        [        5      u  U l        U l        g r   )r
   r   r   r:   r!   s    r#   setup_methodTestDateAttribute.setup_method       '	49r'   c                 d    [         R                  " / SQSS9n[        U R                  S   U5        g )N)199920041817210020131631zdatetime64[Y]rq   r   rp   arrayr   r   r"   r   s     r#   test_year_attribute%TestDateAttribute.test_year_attribute   /    88 
 !" 	499[18<r'   c                 d    [         R                  " / SQSS9n[        U R                  S   U5        g )N)z1999-01z2004-12z1817-04z2100-09z2013-11z1631-10zdatetime64[M]r   r   r   r   s     r#   test_month_attribute&TestDateAttribute.test_month_attribute   s/    88 
 !" 	499\2H=r'   c                 d    [         R                  " / SQSS9n[        U R                  S   U5        g )N)
1999-01-31
2004-12-01
1817-04-28
2100-09-10
2013-11-30
1631-10-15datetime64[D]r   r   r   r   s     r#   test_date_attribute%TestDateAttribute.test_date_attribute   r   r'   c                 t   [         R                  " [        R                  " SSSSSS9[        R                  " SSSSS	S9[        R                  " S
SSSSS9[        R                  " SSSSSS9[        R                  " SSSSSS9[        R                  " SSSSSS9/SS9n[        U R                  S   U5        g )Ni  r      r   )yearmonthdayhourminutei        ;   i  r         i4  	   
   i        7   i_        datetime64[m]r   r   )rp   r   datetimer   r   r   s     r#   test_datetime_local_attribute/TestDateAttribute.test_datetime_local_attribute   s    884qbqK4rqr"M4qbr!L4qbr!L4rr"M4rr1M
 !" 	499%:;XFr'   c                 d    [         R                  " / SQSS9n[        U R                  S   U5        g )N)natz2004-12-01T23:59r   r   z2013-11-30T04:55z1631-10-15T20:04r   r   r   r   r   s     r#   test_datetime_missing'TestDateAttribute.test_datetime_missing   s0    88 
 !" 	499%<=xHr'   c                 6    [        [        [        [        5        g r   )r   r   r
   r   r!   s    r#   test_datetime_timezone(TestDateAttribute.test_datetime_timezone   s    nh6r'   r   r:   N)rP   rQ   rR   rS   r   r   r   r   r   r   r   rT   rO   r'   r#   r   r      s'    /
=
>
=
G
I7r'   r   c                   &    \ rS rSrS rS rS rSrg)TestRelationalAttribute   c                 <    [        [        5      u  U l        U l        g r   )r
   test9r   r:   r!   s    r#   r   $TestRelationalAttribute.setup_method  r   r'   c                 d   [        [        U R                  R                  5      S5        [	        U R                  R                  R                  5       5      S   n[        UR                  S5        [        UR                  S5        [        [        UR                  5      S5        [        UR                  S   R                  S5        [        UR                  S   R                  S5        [        UR                  S   R                  S5        [        UR                  S   R                  S	5        g )
Nr   r   attr_date_number
relationalr   r   dateattr_numberr   	r   r5   r:   _attributeslistr   r   r}   
attributesr"   r   s     r#   test_attributes'TestRelationalAttribute.test_attributes  s    S../3$))//6689!<
Z__&89Z))<8S../3Z**1-22 	"Z**1-77	Z**1-22"	$Z**1-77	 r'   c           
         SS[         R                  4/n[         R                  " SS/US9[         R                  " SS/US9[         R                  " S/US9[         R                  " / S	QUS9[         R                  " S
/US9[         R                  " S/US9/n[        [	        U R
                  S   5      5       H!  n[        U R
                  S   U   X#   5        M#     g )N)r   r   r   )r   r   )z
1935-11-27r   r   )r   r   )z
1942-08-13r   )r   r   ))r   r   )z
1957-04-17(   )z
1721-01-14i  )r   r   )r      r   )rp   float64r   r4   r5   r   r   )r"   dtype_instancer   r;   s       r#   	test_data!TestRelationalAttribute.test_data  s    8("**57 HH');<)+HH');<)+HH'()+HH +)+ HH'()+HH'()+
  s499%789:Atyy);<Q?'{, ;r'   r   NrP   rQ   rR   rS   r   r   r   rT   rO   r'   r#   r   r      s    / ",r'   r   c                   &    \ rS rSrS rS rS rSrg)TestRelationalAttributeLongi.  c                 <    [        [        5      u  U l        U l        g r   )r
   test10r   r:   r!   s    r#   r   (TestRelationalAttributeLong.setup_method/  s    '/	49r'   c                    [        [        U R                  R                  5      S5        [	        U R                  R                  R                  5       5      S   n[        UR                  S5        [        UR                  S5        [        [        UR                  5      S5        [        UR                  S   R                  S5        [        UR                  S   R                  S5        g )Nr   r   attr_relationalr   r   r   r   r   s     r#   r   +TestRelationalAttributeLong.test_attributes2  s    S../3$))//6689!<
Z__&78Z))<8S../3Z**1-22"	$Z**1-77Cr'   c                     S[         R                  4/n[         R                  " [        S5       Vs/ s H  o"4PM     snUS9n[	        U R
                  S   S   U5        g s  snf )Nr   i0u  r   r  r   )rp   r   r   r4   r   r   )r"   r   nr   s       r#   r   %TestRelationalAttributeLong.test_data>  s\    ("**56885<8<aT<8"02 	499%67:#	% 9s   A r   Nr  rO   r'   r#   r  r  .  s    0
D%r'   r  c                   *    \ rS rSrSrS rS rS rSrg)TestQuotedNominaliH  Z
Regression test for issue #10232:

Exception in loadarff with quoted nominal attributes.
c                 <    [        [        5      u  U l        U l        g r   )r
   test_quoted_nominalr   r:   r!   s    r#   r   TestQuotedNominal.setup_methodO  s    '(;<	49r'   c                    [        [        U R                  R                  5      S5        U R                  R                  R	                  5       u  p[        UR
                  S5        [        UR                  S5        [        UR
                  S5        [        UR                  S5        [        UR                  SS/5        g )Nr   ager   smokerr   yesnor   r5   r:   r   r   r   r}   r"   r  r  s      r#   r   !TestQuotedNominal.test_attributesR  s    S../3ii++224SXXu%S]]I.V[[(+V%%y1V]]UDM2r'   c                     [         R                  nSn[         R                  " / SQUS9n[         R                  " / SQUS9n[        U R                  S   U5        [        U R                  S   U5        g )Nz<S3      ,   8   Y   r   r   )r  r  r  r  r  r  r  r  rp   r   r   r   r   r"   age_dtype_instancesmoker_dtype_instanceage_expectedsmoker_expecteds        r#   r   TestQuotedNominal.test_data]  l    ZZ %xx !
 $% (( $
 '( 	499U+\:499X.@r'   r   N	rP   rQ   rR   rS   __doc__r   r   r   rT   rO   r'   r#   r  r  H  s    =	3Ar'   r  c                   *    \ rS rSrSrS rS rS rSrg)TestQuotedNominalSpacesix  r  c                 <    [        [        5      u  U l        U l        g r   )r
   test_quoted_nominal_spacesr   r:   r!   s    r#   r   $TestQuotedNominalSpaces.setup_method  s    '(BC	49r'   c                    [        [        U R                  R                  5      S5        U R                  R                  R	                  5       u  p[        UR
                  S5        [        UR                  S5        [        UR
                  S5        [        UR                  S5        [        UR                  SS/5        g )Nr   r  r   r  r     yesno  r  r  s      r#   r   'TestQuotedNominalSpaces.test_attributes  s    S../3ii++224SXXu%S]]I.V[[(+V%%y1V]]Wf$56r'   c                     [         R                  nSn[         R                  " / SQUS9n[         R                  " / SQUS9n[        U R                  S   U5        [        U R                  S   U5        g )Nz<S5r  r   )r3  r2  r3  r3  r2  r3  r  r  r"  r#  s        r#   r   !TestQuotedNominalSpaces.test_data  r)  r'   r   Nr*  rO   r'   r#   r-  r-  x  s    D	7Ar'   r-  ):r   rk   rn   os.pathr   pjoinior   numpyrp   numpy.testingr   r   r   r   pytestr	   r   scipy.io.arffr
   scipy.io.arff._arffreadr   r   rl   dirname__file__rm   r$   r*   r.   r    r)   r-   r   r   r   r  r1   r  r/  r6   r8   rY   r   nanexpect_missing_rawemptyfloatrZ   r   rV   r^   ry   r   r   r  r  r-  rO   r'   r#   <module>rE     s    	 
 !  F F * " ? "''//(+V4	i&i&i&i&i&i&i&i&i&	y-	(	y-	(I'<= "9.JK ( I
	>
*XX1v1v/?@A !uenuen=>*1a40u *1a40u +, +,\B B# #&B? B?JA7 A7H+, +,\% %4-A -A`-A -Ar'   