Ë
     |ha  ã                   ó‚   — d dl Zd dlmZ d dlmc mZ d dlm	Z	 d dl
mZ d Z G d„ d«      Z G d„ d«      Z G d	„ d
«      Zy)é    N)Úlabel)Útesting)Úassert_array_equalc                   óB   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚTestConnectedComponentsc                 ó   — t        j                  g d¢g d¢g d¢g d¢g«      | _        t        j                  g d¢g d¢g d¢g d¢g«      | _        | j                  d	z   | _        d
| j                  d<   | j                  j                  «       | _        d| j                  | j                  dk(  <   | j                  | j                  dkD  xx   d	z  cc<   y )N)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   )ÚnpÚarrayÚxÚlabelsÚlabels_nobgÚcopyÚlabels_bg_9©Úselfs    ú_/var/www/html/test/engine/venv/lib/python3.12/site-packages/skimage/measure/tests/test_ccomp.pyÚsetup_methodz$TestConnectedComponents.setup_method   s¼   € Ü—‘â"Ú"Ú"Ú"ð	ó
ˆŒô —h‘hâ"Ú"Ú"Ú"ð	ó
ˆŒð  Ÿ;™;¨™?ˆÔà#%ˆ×Ñ˜Ñ ð  ×+Ñ+×0Ñ0Ó2ˆÔØ()ˆ×Ñ˜Ÿ™ 1™Ñ%ð 	×Ñ˜×)Ñ)¨AÑ-Ó.°!Ñ3Ô.ó    c                 ó*  — t        t        | j                  «      | j                  «       | j                  d   dk(  sJ ‚t        t        | j                  d¬«      | j                  «       t        t        | j                  d¬«      | j
                  «       y )N)r   r
   r	   éc   ©Ú
backgroundr   )r   r   r   r   r   r   r   s    r   Ú
test_basicz"TestConnectedComponents.test_basic-   sh   € Üœ5 §¡›=¨$¯+©+Ô6ð v‰vd‰|˜qÒ Ð Ð ô 	œ5 §¡°BÔ7¸×9IÑ9IÔJäœ5 §¡°AÔ6¸×8HÑ8HÕIr   c                 ó  — t         j                  j                  dd«      dz  j                  t        «      }t        |«      }|j                  «       }t        |«      D ]'  }|||k(     }t        j                  ||d   k(  «      rŒ'J ‚ y ©Né   é   r   r   ©	r   ÚrandomÚrandÚastypeÚintr   ÚmaxÚrangeÚall©r   r   r   ÚnÚiÚvaluess         r   Útest_randomz#TestConnectedComponents.test_random8   óu   € ÜY‰Y^‰^˜B Ó# aÑ'×/Ñ/´Ó4ˆÜq“ˆàJ‰J‹LˆÜq“ò 	/ˆAØv ‘{‘^ˆFÜ—6‘6˜& F¨1¡IÑ-Õ.Ð.Ð.ñ	/r   c                 ój   — t        j                  g d¢g d¢g d¢g«      }t        t        |«      |«       y )N©r   r   r   ©r   r   r   ©r   r   r   ©r   r   r   r   ©r   r   s     r   Ú	test_diagz!TestConnectedComponents.test_diagA   s%   € ÜH‰H’i¢ªIÐ6Ó7ˆÜœ5 ›8 QÕ'r   c                 óº   — t        j                  ddgddggt        ¬«      }t        t	        |d¬«      ddgddgg«       t        t	        |d¬«      ddgddgg«       y )Nr   r   )Údtype©Úconnectivityr
   )r   r   r-   r   r   r<   s     r   Útest_4_vs_8z#TestConnectedComponents.test_4_vs_8E   s[   € ÜH‰Hq˜!f˜q !˜fÐ%¬SÔ1ˆäœ5 °Ô3°q¸!°f¸qÀ!¸fÐ5EÔFÜœ5 °Ô3°q¸!°f¸qÀ!¸fÐ5EÕFr   c                 ó¼   — t        j                  g d¢g d¢g d¢g«      }t        t        |«      g d¢g d¢g d¢g«       t        t        |d¬«      g d¢g d¢g d¢g«       y )Nr:   )r   r   r   ©r   r   r   )r   r   r
   r   r"   r;   r<   s     r   Útest_backgroundz'TestConnectedComponents.test_backgroundK   sD   € ÜH‰H’i¢ªIÐ6Ó7ˆäœ5 ›8¢i²ºIÐ%FÔGäœ5 ¨qÔ1²IºyÊ)Ð3TÕUr   c                 ó„   — t        j                  g d¢g d¢g d¢g«      }t        |d¬«      }t        |g d¢g d¢g d¢g«       y )N©r   r   r   ©r   r   r   r   r"   r8   ©r
   r
   r
   )r   r   r   r   )r   r   Úress      r   Útest_background_two_regionsz3TestConnectedComponents.test_background_two_regionsR   s4   € ÜH‰H’i¢ªIÐ6Ó7ˆäA !Ô$ˆÜ˜3¢ªI²yÐ AÕBr   c                 ó‚   — t        j                  g d¢g d¢g d¢g«      }t        t        |dd¬«      g d¢g d¢g d¢g«       y )NrD   r9   r   r   ©rA   r#   r;   r<   s     r   Ú!test_background_one_region_centerz9TestConnectedComponents.test_background_one_region_centerX   s4   € ÜH‰H’i¢ªIÐ6Ó7ˆäÜ! !°Ô2²YÂ	Ê9Ð4Uõ	
r   c                 óª   — t        j                  g d¢g d¢g d¢g«      }t        t        |d¬«      d   d«       t        t        |dd¬	«      d   d
«       y ©N)r   r   r   rG   rH   T)Ú
return_numr   r	   r   )r#   rQ   r   r;   r<   s     r   Útest_return_numz'TestConnectedComponents.test_return_num_   sE   € ÜH‰H’i¢ªIÐ6Ó7ˆäœ5 ¨tÔ4°QÑ7¸Ô;äœ5 ¨r¸dÔCÀAÑFÈÕJr   N)Ú__name__Ú
__module__Ú__qualname__r   r$   r5   r=   rB   rE   rK   rN   rR   © r   r   r   r      s5   „ ò4ò@	Jò/ò(òGòVòCò
óKr   r   c                   óT   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zy)ÚTestConnectedComponents3dc                 ó¨  — t        j                  dt        «      | _        t        j                  g d¢g d¢g d¢g d¢g«      | j                  d<   t        j                  g d¢g d¢g d	¢g d
¢g«      | j                  d<   t        j                  g d¢g d¢g d¢g d¢g«      | j                  d<   t        j                  dt        «      | _        t        j                  g d¢g d¢g d¢g d¢g«      | j
                  d<   t        j                  g d¢g d¢g d¢g d¢g«      | j
                  d<   t        j                  g d¢g d¢g d¢g d¢g«      | j
                  d<   y )N)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   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   Úzerosr-   r   r   r   r   s    r   r   z&TestConnectedComponents3d.setup_methodh   sü   € Ü—‘˜)¤SÓ)ˆŒÜ—H‘HÚšoªÂÐPó
ˆ‰ˆq‰	ô —H‘HÚšoªÂÐPó
ˆ‰ˆq‰	ô —H‘HÚšoªÂÐPó
ˆ‰ˆq‰	ô —h‘h˜y¬#Ó.ˆŒäŸ™ÚšoªÂÐPó
ˆ‰A‰ô Ÿ™ÚšoªÂÐPó
ˆ‰A‰ô Ÿ™ÚšoªÂÐPó
ˆ‰AŠr   c                 óŒ   — t        | j                  «      }t        || j                  «       | j                  d   dk(  sJ d«       ‚y )N)r   r   r
   r
   zData was modified!)r   r   r   r   )r   r   s     r   r$   z$TestConnectedComponents3d.test_basic„   s9   € Üt—v‘v“ˆÜ˜6 4§;¡;Ô/àv‰vg‰ !Ò#Ð9Ð%9Ó9Ñ#r   c                 ó  — t         j                  j                  dd«      dz  j                  t        «      }t        |«      }|j                  «       }t        |«      D ]'  }|||k(     }t        j                  ||d   k(  «      rŒ'J ‚ y r&   r)   r1   s         r   r5   z%TestConnectedComponents3d.test_randomŠ   r6   r   c                 ó€   — t        j                  dt        «      }d|d<   d|d<   d|d<   t        t	        |«      |«       y )N©r	   r	   r	   r   )r   r
   r
   ©r   r   r   )r
   r   r   )r   rZ   r-   r   r   r<   s     r   r=   z#TestConnectedComponents3d.test_diag“   s;   € ÜH‰HY¤Ó$ˆØˆˆ'‰
Øˆˆ'‰
Øˆˆ'‰
Üœ5 ›8 QÕ'r   c                 óÒ   — t        j                  dt        «      }d|d<   d|d<   |j                  «       }d|d<   t	        t        |d¬«      |«       t	        t        |d¬«      |«       y ©NrI   r   )r   r   r   r:   r
   r@   r	   ©r   rZ   r-   r   r   r   )r   r   Úlabel4s      r   rB   z%TestConnectedComponents3d.test_4_vs_8š   óZ   € ÜH‰HY¤Ó$ˆØˆˆ'‰
Øˆˆ'‰
Ø—‘“ˆØˆˆw‰Üœ5 °Ô3°VÔ<Üœ5 °Ô3°QÕ7r   c                 óÒ   — t        j                  dt        «      }d|d<   d|d<   |j                  «       }d|d<   t	        t        |d¬«      |«       t	        t        |d¬«      |«       y ra   rb   )r   r   Úlabel1s      r   Útest_connectivity_1_vs_2z2TestConnectedComponents3d.test_connectivity_1_vs_2£   rd   r   c                 óØ  — t        j                  dt        «      }t        j                  g d¢g d¢g d¢g«      |d<   t        j                  g d¢g d¢g d¢g«      |d<   |j	                  «       }t        j                  g d¢g d¢g d¢g«      |d<   t        j                  g d¢g d	¢g d¢g«      |d<   |j	                  «       }t        j                  dt
        t
        gdt
        t
        gt
        t
        t
        gg«      |d<   t        j                  t
        t
        t
        gt
        dd
gt
        t
        t
        gg«      |d<   t        t        |«      |«       t        t        |d¬«      |«       y )N©r
   r	   r	   r:   rD   r   )r   r   r   r   )r   r
   r
   rI   )r
   r   r	   r
   r   r"   )r   rZ   r-   r   r   ÚBGr   r   )r   r   ÚlnbÚlbs       r   rE   z)TestConnectedComponents3d.test_background¬   s  € ÜH‰HY¤Ó$ˆÜx‰xš¢IªyÐ9Ó:ˆˆ!‰Üx‰xš¢IªyÐ9Ó:ˆˆ!‰àf‰f‹hˆÜ—‘š9¢i²Ð;Ó<ˆˆA‰Ü—‘š9¢i²Ð;Ó<ˆˆA‰ØV‰V‹XˆÜ—‘˜1œb¤"˜+¨¬2¬r {´R¼¼R°LÐAÓBˆˆ1‰Ü—‘œ2œr¤2˜,¬¨Q°¨
´R¼¼R°LÐAÓBˆˆ1‰äœ5 ›8 RÔ(Üœ5 ¨rÔ2°CÕ8r   c                 óì  — t        j                  dt        «      }t        j                  g d¢g d¢g d¢g«      |d<   t        j                  g d¢g d¢g d¢g«      |d<   |j	                  «       }t        j                  t
        t
        dgt
        t
        dgg d	¢g«      |d<   t        j                  ddt
        gd
t
        t
        gt
        t
        t
        gg«      |d<   t        |d¬«      }t        ||«       y )Nri   rG   rH   r   )r   r   r   )r   r   r   rD   r   rI   r
   r"   )r   rZ   r-   r   r   rj   r   r   )r   r   rl   rJ   s       r   rK   z5TestConnectedComponents3d.test_background_two_regions»   sµ   € ÜH‰HY¤Ó$ˆÜx‰xš¢IªyÐ9Ó:ˆˆ!‰Üx‰xš¢IªyÐ9Ó:ˆˆ!‰ØV‰V‹XˆÜ—‘œ2œr 1˜+¬¬B° {²IÐ>Ó?ˆˆ1‰Ü—‘˜1˜a¤˜* q¬"¬b k´B¼¼B°<Ð@ÓAˆˆ1‰äA !Ô$ˆÜ˜3 Õ#r   c                 ó´   — t        j                  dt        «      }d|d<   t        j                  |«      t        z  }d|d<   t        t        |dd¬«      |«       y )Nr^   r   r_   r   rM   )r   rZ   r-   Ú	ones_likerj   r   r   )r   r   rl   s      r   rN   z;TestConnectedComponents3d.test_background_one_region_centerÆ   sI   € ÜH‰HY¤Ó$ˆØˆˆ'‰
ä\‰\˜!‹_œrÑ!ˆØˆˆ7‰äœ5 °¸qÔAÀ2ÕFr   c                 óª   — t        j                  g d¢g d¢g d¢g«      }t        t        |d¬«      d   d«       t        t        |dd¬	«      d   d
«       y rP   r;   r<   s     r   rR   z)TestConnectedComponents3d.test_return_numÏ   sE   € ÜH‰H’i¢ªIÐ6Ó7ˆäœ5 ¨tÔ4°QÑ7¸Ô;Üœ5 ¨r¸dÔCÀAÑFÈÕJr   c                 ó  — t        j                  d«      }t        |«      }t        j                  d«      }|fd|f|dfd|df|ddfdd|ff}|D ]8  }|j                  |«      }t	        |«      }t        ||j                  «       «       Œ: y )N)r   r   r
   r
   r   r   r   r   )r   r   r
   r
   r	   r	   r   r   r   )r   r   ÚlenÚreshaper   r   Úflatten)r   r   ÚxlenÚyÚreshapesrs   Úx2Úlabelleds           r   Útest_1Dz!TestConnectedComponents3d.test_1DÕ   s™   € ÜH‰HÐ-Ó.ˆÜ1‹vˆÜH‰HÐ-Ó.ˆàˆGØˆIØ1ˆIØaˆLØ1aˆLØ4ˆLð
ˆð  ò 	6ˆGØ—‘˜7Ó#ˆBÜ˜R“yˆHÜ˜q (×"2Ñ"2Ó"4Õ5ñ	6r   c                 ó    — t        j                  d«      }t        j                  t        «      5  t        |«       d d d «       y # 1 sw Y   y xY w)N)r   r
   r	   r   )r   Úonesr   ÚraisesÚNotImplementedErrorr   r<   s     r   Útest_ndz!TestConnectedComponents3d.test_ndæ   s9   € ÜG‰GLÓ!ˆÜ^‰^Ô/Ó0ñ 	Ü!ŒH÷	÷ 	ñ 	ús   ¯AÁAN)rS   rT   rU   r   r$   r5   r=   rB   rg   rE   rK   rN   rR   rz   r   rV   r   r   rX   rX   g   s@   „ ò
ò8:ò/ò(ò8ò8ò9ò	$òGòKò6ó"r   rX   c                   ó   — e Zd Zd„ Zy)ÚTestSupportc                 óZ  — d}|D ]¤  }t        j                  |«      }t        |dk(  «      }t         j                  j                  |«      }t	        j
                  |«      \  }}|j                  }t        |«      D ]  }||   dk(  rŒJ ‚ t	        j                  ||«      }	t        ||	«       Œ¦ y )N))r	   r   r
   )r   r   r   )r	   r   r   )r
   r   )r   r   )
r   r   Úsumr*   ÚccompÚreshape_arrayÚshaper/   Úundo_reshape_arrayr   )
r   Ú	shapes_inr†   ÚnumonesÚinpÚfixedÚswapsÚshape2r3   Úbacks
             r   Útest_reshapezTestSupport.test_reshapeí   s¢   € ØCˆ	Øò 	*ˆEÜ—H‘H˜U“OˆEÜ˜% 1™*“oˆGÜ—)‘)×"Ñ" 5Ó)ˆCä ×.Ñ.¨sÓ3‰LˆE5Ø—[‘[ˆFä˜7“^ò &Ø˜a‘y A“~Ð%~ð&ô ×+Ñ+¨E°5Ó9ˆDä˜s DÕ)ñ	*r   N)rS   rT   rU   r   rV   r   r   r   r   ì   s   „ ó*r   r   )Únumpyr   Úskimage.measurer   Úskimage.measure._ccompÚmeasureÚ_ccompr„   Úskimage._sharedr   Úskimage._shared.testingr   rj   r   rX   r   rV   r   r   ú<module>r—      sB   ðÛ å !ß &Ð &å #Ý 6à€÷XKñ XK÷vBñ B÷J*ò *r   