
    9i5                         S SK rS SKrS SKJrJr  S SKJrJrJ	r	J
r
  S SKJr   " S S5      r " S S5      r " S	 S
5      rg)    N)expected_warningsrun_in_parallel)graycomatrixgraycopropslocal_binary_patternmultiblock_lbp)integral_imagec                       \ rS rSrS r\" 5       S 5       rS rS rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestGLCM   c                 l    [         R                  " / SQ/ SQ/ SQ/ SQ/[         R                  S9U l        g )N)r   r      r   )r      r   r   )r   r      r   dtypenparrayuint8imageselfs    b/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/feature/tests/test_texture.pysetup_methodTestGLCM.setup_method   s$    XX<|DBHH

    c           	         [        U R                  S/S[        R                  S-  [        R                  S-  S[        R                  -  S-  /S5      nUR                  S:X  d   e[        R
                  " / SQ/ SQ/ S	Q/ S
Q/[        R                  S9n[        R                  R                  US S 2S S 2SS4   U5        [        R
                  " / SQ/ SQ/ SQ/ SQ/[        R                  S9n[        R                  R                  US S 2S S 2SS4   U5        [        R
                  " / SQ/ SQ/ SQ/ SQ/[        R                  S9n[        R                  R                  US S 2S S 2SS4   U5        [        R
                  " / SQ/ SQ/ SQ/ SQ/[        R                  S9n[        R                  R                  US S 2S S 2SS4   U5        g )Nr   r      r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   	r   r   r   pishaper   uint32testingassert_array_equal)r   result	expected1	expected2	expected3	expected4s         r   test_output_anglesTestGLCM.test_output_angles   s`   JJaBEEAIq255y1}Eq
 |||+++HH<|DBII
	 	

%%fQ1aZ&8)DHH<|DBII
	 	

%%fQ1aZ&8)DHH<|DBII
	 	

%%fQ1aZ&8)DHH<|DBII
	 	

%%fQ1aZ&8)Dr   c                 0   [        U R                  S/[        R                  S-  /SSS9nUR                  S:X  d   e[        R
                  " / SQ/ SQ/ S	Q/ S
Q/[        R                  S9n[        R                  R                  US S 2S S 2SS4   U5        g Nr   r   r   T	symmetric)r   r   r   r   )   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   r"   )r   r(   expecteds      r   test_output_symmetric_1 TestGLCM.test_output_symmetric_1+   sy    djj1#	{AN|||+++88<|DBII
 	

%%fQ1aZ&8(Cr   c                 p   [         [        R                  [        R                  [        R                  [        R
                  4 H]  n[        R                  " [        5         [        U R                  R                  U5      S/[        R                  /S5        S S S 5        M_     g ! , (       d  f       Mq  = fNr   r   )floatr   doublefloat16float32float64pytestraises
ValueErrorr   r   astyper#   r   r   s     r   test_error_raise_floatTestGLCM.test_error_raise_float3   sh    RYY

BJJ

KEz*TZZ..u5sRUUGQG +* L**s   !8B&&
B5	c                    [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  4 H\  n[        R                  " [        5         [        U R                  R                  U5      S/[         R                  /5        S S S 5        M^     g ! , (       d  f       Mp  = f)Nr   )r   int16int32int64uint16r%   uint64r>   r?   r@   r   r   rA   r#   rB   s     r   test_error_raise_int_types#TestGLCM.test_error_raise_int_types8   sp    hh"((BIIryy"))TEz*TZZ..u5sRUUGD +* U**s   :7B>>
C	c                     [         R                  " [        5         [        U R                  R                  [        R                  5      S-
  S/[        R                  /S5        S S S 5        g ! , (       d  f       g = fr8   )	r>   r?   r@   r   r   rA   r   rF   r#   r   s    r   test_error_raise_negative"TestGLCM.test_error_raise_negative=   sH    ]]:&**2884q81#wJ '&&s   A	A--
A;c                     [         R                  " [        5         [        U R                  S-
  S/[
        R                  /S5        S S S 5        g ! , (       d  f       g = f)Nr   r   )r>   r?   r@   r   r   r   r#   r   s    r   #test_error_raise_levels_smaller_max,TestGLCM.test_error_raise_levels_smaller_maxA   s8    ]]:&a!ruugq9 '&&s   ,A
Ac           	         [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  4 H  nU R                  R                  U5      n[        US/[         R                  S-  /SSS9nUR                  S:X  d   e[         R                  " / SQ/ SQ/ S	Q/ S
Q/[         R                  S9n[         R                  R                  US S 2S S 2SS4   U5        M     g r0   )r   rI   r%   rJ   rF   rG   rH   r   rA   r   r#   r$   r   r&   r'   )r   r   imgr(   r4   s        r   test_image_data_typesTestGLCM.test_image_data_typesE   s    iiBIIrxx288TE**##E*C!#sRUUQYKdKF<<<///xx|\<HiiH JJ))&Aq!*<hG U 	r   c                 4   [         R                  " / SQ/ SQ/ SQ/ SQ/[         R                  S9n[        US/S/SS	S
9n[         R                  " / SQ/ SQ/ SQ/ SQ/[         R                  S9n[         R
                  R                  US S 2S S 2SS4   U5        g )Nr!   )r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   r   r   Fr1   )r   r   r   r   r   r   r   r   r   r   r   r   r    )r   r   r   r   r%   r&   r'   )r   imr(   r4   s       r   test_output_distanceTestGLCM.test_output_distanceR   s}    XX<|DBHH
 b1#sA?88<|DBII
 	

%%fQ1aZ&8(Cr   c                    [         R                  " S/S/S/S//[         R                  S9n[        USS/S[         R                  S-  /S5      nUR
                  S:X  d   e[         R                  " S[         R                  S9n[         R                  " / S	Q/ S
Q/ SQ/ SQ/[         R                  S9n[         R                  " / S
Q/ SQ/ SQ/ SQ/[         R                  S9n[         R                  R                  US S 2S S 2SS4   U5        [         R                  R                  US S 2S S 2SS4   U5        [         R                  R                  US S 2S S 2SS4   U5        [         R                  R                  US S 2S S 2SS4   U5        g )Nr   r   r   r   r   r   )r   r   r   r   r   r   rX   rY   r    r!   )
r   r   r   r   r#   r$   zerosr%   r&   r'   )r   rZ   r(   ze1e2s         r   test_output_comboTestGLCM.test_output_combo\   s5   XXsQC!qc*"((;b1a&1beeai.!<|||+++HHV299-XX<|DBII
 XX<|DBII
 	

%%fQ1aZ&8!<


%%fQ1aZ&8!<


%%fQ1aZ&8"=


%%fQ1aZ&8"=r   c                    [        U R                  S/S/S5      n[        R                  R	                  US S 2S S 2SS4   [        R
                  " S[        R                  S95        [        U R                  S/S/SSS9n[        R                  R	                  US S 2S S 2SS4   [        R
                  " S[        R                  S95        g )N
   r   r   r^   r   T)normed)r   r   r   r&   r'   r_   r%   r   r(   s     r   test_output_emptyTestGLCM.test_output_emptyn   s    djj2$Q7


%%1aA:ryy A	
 djj2$QtD


%%1aA:ryy A	
r   c           
         [        U R                  / SQS[        R                  S-  [        R                  /SSSS9n[	        UR
                  S   5       H  n[	        UR
                  S   5       H}  n[        R                  R                  US S 2S S 2X#4   R                  5       S5        [        R                  R                  US S 2S S 2X#4   US S 2S S 2X#4   R                  5       5        M     M     g )	N)r   r   r   r   r   r   Trg   r2   r         ?)r   r   r   r#   ranger$   r&   assert_almost_equalsumr'   	transpose)r   r(   das       r   test_normed_symmetricTestGLCM.test_normed_symmetricx   s    JJ	Aruuqy"%%#8!DTX
 v||A'A6<<?+

..vaAj/A/E/E/GM

--1a:&q!Qz(:(D(D(F , (r   c           	          [        U R                  SS/S/SSSS9n[        R                  " US5      n[	        US5      n[        R
                  R                  US	   S
SS9  g )Nr   r   r   r   Trl   r   contrastr   r   gQ?decimal)r   r   r   roundr   r&   ro   )r   r(   rw   s      r   test_contrastTestGLCM.test_contrast   sZ    djj1a&1#qQUV&!$vz2


&&x~ua&Hr   c           	          [        U R                  S/S[        R                  S-  /SSSS9n[        R                  " US5      n[        US5      n[        R                  R                  US	   S
SS9  g )Nr   r   r   r   Trl   r   dissimilarityrx   gn?ry   r   r   r   r#   r{   r   r&   ro   r   r(   r   s      r   test_dissimilarityTestGLCM.test_dissimilarity   sg    JJa^Qtt
 &!$#FO<


&&}T':E1&Mr   c           	          [        U R                  SS/[        R                  S-  /SSSS9n[        R                  " US5      n[        US5      S   n[        R                  R                  US	SS
9  g )Nr   r   r   r   Trl   r   rx   gHzG?ry   r   r   s      r   test_dissimilarity_2TestGLCM.test_dissimilarity_2   sg    JJAQtt
 &!$#FO<TB


&&}eQ&Gr   c                 "   [         R                  R                  S5      S-  R                  [         R                  5      n[	        U/ SQ/ SQSS9n[         R
                  R                  [         R                  " [        US5      5      S:  5        g )N)d   r      )r   r   r      )r   g      ?r   g      ?)levelscorrelationrm   )	r   randomrA   r   r   r&   assert_maxr   )r   rT   ps      r   test_non_normalized_glcm!TestGLCM.test_non_normalized_glcm   sb    yy
+a/77Al,=aH


266+a"?@3FGr   c                     [        U R                  S/S/S5      n[        R                  " [        5         [        US5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   ABC)r   r   r>   r?   r@   r   rh   s     r   test_invalid_propertyTestGLCM.test_invalid_property   s<    djj1#sA6]]:&& '&&s   A
Ac           	          [        U R                  S/SS/SSSS9n[        US5      S   n[        R                  R                  US	5        g )
Nr   r   r3   r   Trl   homogeneityrx   g?r   r   r   r   r&   ro   )r   r(   r   s      r   test_homogeneityTestGLCM.test_homogeneity   sF    djj1#1vqQUV!&-8>


&&{J?r   c           	          [        U R                  S/SS/SSSS9n[        US5      S   n[        R                  R                  US5        g )	Nr   r   r   Trl   energyrx   g3YNp?r   r   r(   r   s      r   test_energyTestGLCM.test_energy   sF    djj1#1vqQUVVX.t4


&&vz:r   c           	          [        U R                  SS/S/SSSS9n[        US5      n[        R                  R                  US   S	5        [        R                  R                  US
   S5        g )Nr   r   r   r   Trl   r   rx   g
U i?)r   r   gl	TZZ?r   r   s      r   test_correlationTestGLCM.test_correlation   s]    djj1a&1#qQUVV]3


&&vd|Z@


&&vd|Z@r   c           	          [        U R                  S/S[        R                  S-  /SSSS9n[	        US5      S   n[        R
                  R                  US	5        g )
Nr   r   r   r   Trl   meanrx   gI?r   r   r   r#   r   r&   ro   )r   r(   r   s      r   	test_meanTestGLCM.test_mean   sT    JJa^Qtt
 66*40 	

&&tZ8r   c           	          [        U R                  S/S[        R                  S-  /SSSS9n[	        US5      S   n[        R
                  R                  US	5        g )
Nr   r   r   r   Trl   variancerx   ge7?r   )r   r(   r   s      r   test_varianceTestGLCM.test_variance   sT    JJa^Qtt
 vz248 	

&&x<r   c           	          [        U R                  S/S[        R                  S-  /SSSS9n[	        US5      S   n[        R
                  R                  US	5        g )
Nr   r   r   r   Trl   stdrx   g3&0P?r   )r   r(   r   s      r   test_stdTestGLCM.test_std   sT    JJa^Qtt
 &%(. 	

&&sJ7r   c           	          [        U R                  S/S[        R                  S-  /SSSS9n[	        US5      S   n[        R
                  R                  US	5        g )
Nr   r   r   r   Trl   entropyrx   gv@L @r   )r   r(   r   s      r   test_entropyTestGLCM.test_entropy   sT    JJa^Qtt
 fi06 	

&&w
;r   c           	          [         R                  " S[         R                  S9n[        U/ SQS[         R                  S-  /SSSS9nS	 H  n[        X#5        M     g )
Nr^   r   )r   r   r   r   r   r   Trl   )
rw   r   r   r   r   ASMr   r   r   r   )r   onesr   r   r#   r   )r   rZ   r(   props       r   test_uniform_properties TestGLCM.test_uniform_properties   sO    WWV288,	Aruuqy>1TT

D %
r   r   N)__name__
__module____qualname____firstlineno__r   r   r-   r5   rC   rK   rN   rQ   rU   r[   rc   ri   rt   r|   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__ r   r   r   r      s    

 E E,DH
E
K:D>$
	INHH
'
@
;
A9=8<&r   r   c                       \ rS rSrS r\" 5       S 5       rS r\R                  R                  S\R                  \R                  \R                  /5      S 5       rS rS rS	 rS
rg)TestLBP   c           	      x    [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/[         R                  S9U l        g )N)   r3   r   r      r   )0               ?   )r   r      2   r      )   r   r   (      r   )r   r   r   "   r      )      r   r      ~   r   r   r   s    r   r   TestLBP.setup_method   s2    XX(,(,), ((


r   c           	          [        U R                  SSS5      n[        R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/5      n[        R                  R                  X5        g )
Nr   r   default)r      r   r   `   r   )   r         @   8   )   r         r      )   g      P@>   r      r   )r   r   r      r      )r   r   r   r   r   r   r   r   r   r   r&   r'   r   lbprefs      r   test_defaultTestLBP.test_default   sO    "4::q!Y?hh))+,*%	
 	

%%c/r   c           	          [        U R                  SSS5      n[        R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/5      n[        R                  R                  X5        g )
Nr   r   rorr      r   r   r   r      r   r   3   r      w   r   r   r   r   r   r   r   r   r   r   r   r   r   r   _   r   r   r   r   r   r   r   r   r   r   s      r   test_rorTestLBP.test_ror  sO    "4::q!U;hh($)%)$	
 	

%%c/r   r   c           	      6   U R                   R                  U5      nSn[        U/5         [        USSS5      nS S S 5        [        R
                  " / SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/5      n[        R                  R                  WU5        g ! , (       d  f       NW= f)N8Applying `local_binary_pattern` to floating-point imagesr   r   r   r   r   r   r   r   r   )r   rA   r   r   r   r   r&   r'   )r   r   r   msgr   r   s         r   test_float_warningTestLBP.test_float_warning  s~    

!!%(Hu%&uaE:C &hh($)%)$	
 	

%%c3/ &%s   B


Bc           	          [        U R                  SSS5      n[        R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/5      n[        R                  R                  X5        g )
Nr   r   uniform)r   r   r   r   r   r   )r   r   	   r
  r   r   )r
  r   r   r   r   r3   )r   r   r   r3   r   r   )r   r   r   r
  r   r   )r   r
  r   r   r   r   r   r   s      r   test_uniformTestLBP.test_uniform(  sO    "4::q!Y?hh""""""	
 	

%%c/r   c                    [         R                  R                  S5        [         R                  R                  SS5      nSnXR	                  5       -  U-  nSu  p4Sn[        U/5         [        XUS5      nS S S 5        WSS2SS24   nUS	-  US
-
  -  U-  n[         R                  R                  UR                  5       US5        g ! , (       d  f       NW= f)Ni i  g333333?)r   r   r  varr   r   r   r   )
r   r   seedrandr   r   r   r&   ro   r   )r   r   
target_stdPRr  r   r4   s           r   test_varTestLBP.test_var6  s     			x  		sC(
		#j0 Hu%&uE:C & !B$"*o q=AE*Q.


&&sxxz8Q? &%s   )C
Cc           	          [        U R                  SSS5      n[        R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/5      n[        R                  R                  X5        g )
Nr   r   nri_uniform)r   6   r   9   r   r  )r   r   :   r  r      )r  r     r   r   /   )rf   r   r   *   #   r   )r  r   r  r  r   r   )r
  r  r   r  r   r   )r   r   r   r   r&   assert_array_almost_equalr   s      r   test_nri_uniformTestLBP.test_nri_uniformO  sO    "4::q!]Chh&&'&&%	
 	

,,S6r   r   N)r   r   r   r   r   r   r   r  r>   markparametrizer   r;   r<   r=   r  r  r  r"  r   r   r   r   r   r      sl    
 0 00 [[Wrzz2::rzz&JK0 L0"0@27r   r   c                       \ rS rSrS rSrg)	TestMBLBPi^  c                     [         R                  " SSS9nSUSS2SS24'   SUS S2S S24'   SUSS 2SS 24'   Sn[        U5      n[        US	S	SS5      n[         R                  R                  XB5        g )
N)r
  r
  r   r   r   r   r3   r      r   )r   r_   r	   r   r&   assert_equal)r   test_imgcorrect_answerint_imglbp_codes        r   test_single_mblbpTestMBLBP.test_single_mblbp_  s     88F'21ac!RaRQR $ *!'1aA6


9r   r   N)r   r   r   r   r/  r   r   r   r   r'  r'  ^  s    :r   r'  )numpyr   r>   skimage._shared.testingr   r   skimage.featurer   r   r   r   skimage.transformr	   r   r   r'  r   r   r   <module>r5     sA      F  -Z& Z&zp7 p7f: :r   