
    |hMV                     X   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mZmZmZ d dlmZmZmZmZ d dlmZ d dlm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$d Z%d Z&d Z'd Z(d Z) eexr e	 d      d        Z*d Z+d Z,d Z-d  Z.d! Z/d" Z0d# Z1d$ Z2d% Z3d& Z4d' Z5y)(    N)testing)expected_warnings)arch32is_wasmassert_almost_equalassert_array_lessassert_equalxfailassert_stacklevel)CircleModelEllipseModelLineModelNDransac)_dynamic_max_trials)AffineTransformc                      t               } d| _        t        j                  dd      }| j	                  |      }t        || j                  |             y )N))r   r   )   r   
   )r   paramsnparange	predict_yr   	predict_xmodelxys      ]/var/www/html/test/engine/venv/lib/python3.12/site-packages/skimage/measure/tests/test_fit.pytest_line_model_predictr       sA    ME#EL
		#rAA5??1-.    c                  L   t        j                  t              5  t               j	                  t        j                  d             d d d        t        j                  t              5  t               j                  t        j                  d             d d d        t        j                  t              5  t               j	                  t        j                  d      t        j                  d             d d d        t        j                  t              5  t               j                  t        j                  d             d d d        t        j                  t              5  t               j                  t        j                  d      t        j                  d             d d d        t               j                  t        j                  d            rJ t               j                  t        j                  d            rJ t        j                  t              5  t               j                  t        j                  d             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# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   )r      )r      )r   raises
ValueErrorr   r   r   zerosr   estimateempty	residuals r!   r    test_line_model_nd_invalid_inputr,      s   	
	# -,- 

	# -,- 

	# :RXXa[9: 

	# -,- 

	# :RXXa[9: }%%bhhv&6777}%%bhhv&6777	
	# 2 012 2%- -- -: :- -: :2 2sI   -I(-I'6AI4-J&AJ$-JI$'I14I>JJJ#c                     t               } t        j                  ddg      t        j                  ddg      f| _        t        j                  dd      }| j                  |      }t        || j                  |             y )Nr   g?g?r   r   )r   r   arrayr   r   r   r   r   r   s      r   test_line_model_nd_predictr/   3   s`    MEHHaV$bhhSz&:;EL
		#rAA5??1-.r!   c            	         t               } t        j                  g dd      t        j                  g dd      t        j                  d      z  f| _        | j                  d   dt        j
                  dd	      d
t        j                  f   z  | j                  d   z  z   }t        j                  j                  d      }||j                  |j                        z   }t               }|j                  |       t        t        j                  j                  t        j                  | j                  d   |j                  d               dd       |j                  d   | j                  d   z
  }t        j                  j                  |      dkD  r"|t        j                  j                  |      z  }t        t        j                  j                  t        j                  | j                  d   |            dd       y )Nr   r   r   floatdtype)r   r   r   r#   r   r   d   .r     size)r   r   r.   sqrtr   r   newaxisrandomdefault_rngnormalshaper(   r   linalgnormcross)model0data0rngdata	model_estas         r   test_line_model_nd_estimaterI   ;   s{   ]F
'*
'*RWWQZ7FM 	a2		$ 4S"**_ EEVWHXXX 

 ))


%C3::5;;://D It 
		rxxa 0)2B2B12EFGA 	fmmA..A	yy~~a1	RYY^^A		rxxa0@!'DEq!Lr!   c            
         t               } t        j                  g d      t        j                  g d      f| _        t	        t        | j                  t        j                  g dg                  d       t	        t        | j                  t        j                  g dg                  d       t	        t        | j                  t        j                  g dg                  d       t        j                  g dg      }t        j                  g d      t        j                  g d      f}t	        t        | j                  ||            d       y )	Nr1   r   r   r   r   )r   r   r   r   )r$   r   r   r      )r   r   r.   r   r	   absr*   )r   rF   r   s      r   test_line_model_nd_residualsrO   _   s    MEHHY'))<=ELU__RXXyk%:;<a@U__RXXyk%:;<a@U__RXXzl%;<=rB88ZL!Dhhy!288I#67FU__T&_9:B?r!   c                      t        j                  t              5  t               j	                  t        j                  d             d d d        y # 1 sw Y   y xY wN)   r#   )r   r%   r&   r   r(   r   r)   r+   r!   r   test_circle_model_invalid_inputrS   k   s<    	
	# 1rxx/01 1 1   -AAc                     t               } d}dd|f| _        t        j                  ddt        j                  z  t        j                  dz        }t        j
                  d      }t        || j                  |             y )NrR   r   r$   )rR   r   )r   rR   r   )r   rX   )r   r   r   r   pir.   r   
predict_xy)r   rtxys       r   test_circle_model_predictr^   p   sa    ME	Aq!9EL
		!QY	*A	4	5BE,,Q/0r!   c                     t               } d| _        t        j                  ddt        j                  z  d      }| j                  |      }t        j                  j                  d      }||j                  |j                        z   }t               }|j                  |       t        | j                  |j                  d       y )Nr      r#   r   r$     r7   r8   )r   r   r   linspacerY   rZ   r<   r=   r>   r?   r(   r   )rC   r\   rD   rE   rF   rG   s         r   test_circle_model_estimaterd   z   s    ]FFM
Aq255y$'Aa E ))


%C3::5;;://D It y'7'7;r!   c                      t        j                  ddgddgddgddggt         j                        } | dz  } t               }|j	                  |        t        |j                  g d       y )Nr   r   r3     )rg   rg   r   )r   r.   int32r   r(   r   r   )r]   r   s     r   test_circle_model_int_overflowri      sY    	Aq6Aq6B7QG4BHH	EB#IBME	NN2m4r!   c            
         t               } d| _        t        t        | j	                  t        j                  ddgg                  d       t        t        | j	                  t        j                  ddgg                  t        j                  d      dz
         t        t        | j	                  t        j                  ddgg                  d       y )N)r   r   rR   rR   r      H   r   )r   r   r   rN   r*   r   r.   r:   r   s    r   test_circle_model_residualsrn      s    MEELEOOBHHq!fX,>?@!DEOOBHHq!fX,>?@"''(BSVWBWXEOOBHHr1gY,?@A1Er!   c            	      4   t               } dg}t        |      5  | j                  t        j                  ddgddgg             d d d        t        |      5  | j                  t        j                  ddgddgddgg             d d d        d}t        j                  t        |      5 }| j                  t        j                  d	            rJ 	 d d d        t               t        |      dk(  sJ y # 1 sw Y   xY w# 1 sw Y   ~xY w# 1 sw Y   =xY w)
Nz6Input does not contain enough significant data points.r   r$   r#      r   zUStandard deviation of data is too small to estimate circle with meaningful precision.matchrk   r$   )r   r   r(   r   r.   pytestwarnsRuntimeWarningonesr   lenr   warning_message	_warningss      r   #test_circle_model_insufficient_datar|      s    MEOPO	?	+ 3rxx!Q!Q 0123 
?	+ ;rxx!Q!Q!Q 89:;	,  
nO	< 3	>>"''&/22223i y>Q3 3; ;3 3s#   +C6.D*'D6C?DDc                  v   t        j                  g dt         j                        } t        j                  g dt         j                        }t               j	                  ||       }t               }|j                  |j                  t         j                              sJ t        | |j                         y )N)gu`D-g?jS-gJ%H+r3   g1Zd?g?5^I?g|?5^?gm?g|?5^@g/$@gX9v	@gn@g\(\@g?5^I@g^I+@guV@rL   )	r   r.   float64r   rZ   r(   astyper   r   r   anglesrF   r   s       r   0test_circle_model_estimate_from_small_scale_datar      s    XX5RZZHFXX	
 jjF" =##F6#:DME>>$++bjj1222-r!   c                      t        j                  t              5  t               j	                  t        j                  d             d d d        y # 1 sw Y   y xY wrQ   )r   r%   r&   r   r(   r   r)   r+   r!   r    test_ellipse_model_invalid_inputr      s<    	
	# 2 012 2 2rT   c                      t               } d| _        t        j                  ddt        j                  z  t        j                  dz        }t        j
                  d      }t        || j                  |             y )N)r   r   rR   r   r   r   r$   )rV   )r   r   rW   )r   r   )r   r   r   r   rY   r.   r   rZ   )r   r\   r]   s      r   test_ellipse_model_predictr      sV    NE#EL
		!QY	*A	6	7BE,,Q/0r!   c                  h   t        ddd      D ]!  } t        j                  |       }t               }dddd|f|_        t        j
                  ddt        j                  z  d      }|j                  |      }t        j                  j                  d	      }||j                  |j                  
      z   }t               }|j                  |       t        |j                  d d |j                  d d d       |j                  |      }t        |t        j                   |j                               $ y )Nr         r         r$   r6   r7   r8   )ranger   deg2radr   r   rc   rY   rZ   r<   r=   r>   r?   r(   r   r*   r   rw   )	angleradrC   r\   rD   rE   rF   rG   ress	            r   test_ellipse_model_estimater      s    q#r" 3jjRR-KK1ruu9c*!!!$ ii##D)szzu{{z33 !N	4  	FMM"1-y/?/?/CQG!!%(#rwwsyy12'3r!   c                     t        j                  ddd      D ]-  } t        j                  |       }t        j                  |      }t        j                  |      }t        j
                  || g||gg      }t        j                  ddt         j                  z  d      }d}d}t        j
                  |t        j                  |      z  |t        j                  |      z  g      }||z  }t               }	|	j                  |j                         |	j                  \  }
}
}}}t        ||       t        ||       t        ||       0 y)	z(The fit should be modified so that a > br      r   r$   r   r6   2   N)r   r   r   cossinr.   rc   rY   r   r(   Tr   r   )r   thetacsRr\   rH   bpointsellipse_model_a_primeb_primetheta_primes                 r    test_ellipse_parameter_stabilityr      s    1gq) (

5!FF5MFF5MHHq1"g1v&' KK1ruu9b)1rvvay=!bffQi-89V %vxx(.;.B.B+1gwK/GQ'GQ'+(r!   c                     t        j                  g ddgddgddgddgd	d
gddgddgddgddgddgddgddgddgddgddgddgddgddgd d!gd"dgd#d$gd%d&gd'd!gd'd&gd(d&gd)d*gd+dgd,dgd-dgd.d/gd0dgd0dgd1d2gd1d3gd4d5gd4d6gd7d8gd9dgd:d;gd<d=gd>d?gd@d
gdAdBgdCdDgdEdFgdGdHgdIdJgdIdKgdLdMgdLdNgdOdPgdQdRgdSdTgdUdVgdUdMgdWdXgdWdYgdZdMgd[d\gdZdHgdZd]gd[dgd^d_gd`dagdbdcgdddegdddfgdbdggdbdgdddgd`dhgdid]gdjdkgdldmgdldgdndogdpdqgdrdsgdtdugdndJgdrdgdvd
gdwdqgdxdHgdydzgdwd{gd|d}gdxd~gddgddgddKgdd5gddsgdd$gddgddgddgddgddgddegddgddgddgddgddgddgddgddgddgddgddcgddgddgddgddgddgddsgddggddgddgddegddgddgddgddgddXgddNgddgddgddgddgddgddgddgddgddgt         j                        } t               }|j	                  |        t        |j                  d d t        j                  dd             t        t        j                  d      t        j                  |j                  d d              y )Ni  iV  i	  ik  i  i_  i  iY  i  i  i  i  i1  i  iD  i  iO  i  iP  iY  i  ib  i  ic  i  il  i  im  i  iw  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  iW  i  iL  iu  i  iM  ii  i  is  i!  ij  i  i`  i)  ia  i*  i9  iC  i3  i5  i:  i  i=  i
  i<  i/  i>  i$  i?  i  i  i  i  iF  iC  i  iG  i%  iJ  i  iH  i8  iI  i  iE  i  iK  iR  iQ  iN  i{  i  iT  i  i  i[  i  i\  i  i]  i^  i  ie  i"  i  ig  i  ii  io  i  ip  i  iq  i  iy  i  i  i  i  iz  i  i{  i  i  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i)  i  i  i  i  i  i  i+  i  i  i  i  i  io  r3   rp   rb   )
r   r.   rh   r   r(   r   r   fullr'   rN   )rF   r   s     r   %test_ellipse_model_estimate_from_datar     sH	   88I	
#JI	
#JI	
 #JI	
 #J	I	

 #JI	
 #JI	
 #JI	
 #JI	
 #JI	
 #JI	
 #JI	
 #JI	
 #JI	
 #JI	
 #JI	
  #J!I	
" #J#I	
$ #J%I	
& #J'I	
( #J)I	
* #J+I	
, #J-I	
. #J/I	
0 #J1I	
2 #J3I	
4 #J5I	
6 #J7I	
8 #J9I	
: #J;I	
< #J=I	
> #J?I	
@ #JAI	
B #JCI	
D #JEI	
F #JGI	
H #JII	
J #JKI	
L #JMI	
N #JOI	
P #JQI	
R #JSI	
T #JUI	
V #JWI	
X #JYI	
Z #J[I	
\ #J]I	
^ #J_I	
` #JaI	
b #JcI	
d #JeI	
f #JgI	
h #JiI	
j #JkI	
l #JmI	
n #JoI	
p #JqI	
r #JsI	
t #JuI	
v #JwI	
x #JyI	
z #J{I	
| #J}I	
~ #JI	
@ #JAI	
B #JCI	
D #JEI	
F #JGI	
H #JII	
J #JKI	
L #JMI	
N #JOI	
P #JQI	
R #JSI	
T #JUI	
V #JWI	
X #JYI	
Z #J[I	
\ #J]I	
^ #J_I	
` #JaI	
b #JcI	
d #JeI	
f #JgI	
h #JiI	
j #JkI	
l #JmI	
n #JoI	
p #JqI	
r #JsI	
t #JuI	
v #JwI	
x #JyI	
z #J{I	
| #J}I	
~ #JI	
@ #JAI	
B #JCI	
D #JEI	
F #JGI	
H #JII	
J #JKI	
L #JMI	
N #JOI	
P #JQI	
R #JSI	
T #JUI	
V #JWI	
X #JYI	
Z $K[I	
\ #J]I	
^ #J_I	
` #JaI	
b #JcI	
d #JeI	
f #JgI	
h #JiI	
j #JkI	
l #JmI	
n #JoI	
p #JqI	
r #JsI	
t #JuI	
v #JwI	
x #JyI	
z #J{I	
| #J}I	
~ #JI	
@ #JAI	
B #JCI	
D #JEI	
F #JGI	
H #JII	
J #JKI	
L #JMI	
N #JOI	
P #JQI	
T hhWLD^ NE	NN4 ell2A&4(89 bhhqk266%,,r*:#;<r!   c                  v   t        j                  g dt         j                        } t        j                  g dt         j                        }t               j	                  ||       }t               }|j                  |j                  t         j                              sJ t        | |j                         y )N)g    .Ag    >A      ?g?r   r3   r~   rL   )	r   r.   r   r   rZ   r(   r   r   r   r   s       r   1test_ellipse_model_estimate_from_far_shifted_datar     s    XX/rzzBFXX	
 jjF" >$$VF$;DNE>>$++bjj1222-r!   zKnown test failure on 32-bit platforms. See links for details: https://github.com/scikit-image/scikit-image/issues/3091 https://github.com/scikit-image/scikit-image/issues/2670)	conditionreasonc            	         t               } d}t        j                  t        |      5 }| j	                  t        j                  d            rJ 	 d d d        t               t        |      dk(  sJ d}t        j                  t        |      5 }| j	                  t        j                  ddgdd	gd
dgg            rJ 	 d d d        t        |       t        |      dk(  sJ y # 1 sw Y   xY w# 1 sw Y   1xY w)NzVStandard deviation of data is too small to estimate ellipse with meaningful precision.rq   rs   r   z3Need at least 5 data points to estimate an ellipse.r   P   3   Q   4   )
r   rt   ru   rv   r(   r   rw   r   rx   r.   ry   s      r   #test_ellipse_model_estimate_failersr     s     NE	-  
nO	< 3	>>"''&/22223i y>QKO	nO	< L	>>"((RHr2hR+I"JKKKKLi y>Q3 3L Ls   'C%0C1%C.1C:c            
         t               } d| _        t        t        | j	                  t        j                  ddgg                  d       t        t        | j	                  t        j                  ddgg                  d       t        t        | j	                  t        j                  ddgg                  d       y )N)r   r   r   rR   r   r   r   rR   )r   r   r   rN   r*   r   r.   rm   s    r   test_ellipse_model_residualsr     s    NE#ELEOOBHHr1gY,?@A1EEOOBHHq!fX,>?@!DEOOBHHq"gY,?@A1Er!   c                     t               } d| _        t        j                  ddt        j                  z  d      }| j                  |      }d}d||d   d d f<   d||d   d d f<   d	||d   d d f<   t        |t         d
dd      \  }}t        |t         d
dd       t        | j                  |j                         |D ]  }||vrJ  y )Nr`   r   r$   rb   )r   rM      )rb   rb   )ir   r   )r5   r   r#   rR   rE   )r   r   r   rc   rY   rZ   r   r   )rC   r\   rD   outliersrG   inliersoutliers          r   test_ransac_shaper     s    ]FFM
Aq255y$'Aa E H(E(1+q.%E(1+q.'E(1+q.  {Aqa@Iw
5+q!+ y'7'78 &g%%%&r!   c                     t         j                  j                  d      } d| j                  d      z  }t        ddd      } ||      }d}d	||d
   <   d||d   <   d||d   <   t	        ||ft        dd|       \  }}t        |j                  |j                         t        j                  t        j                  |dk(        d
   |k(        sJ y )Ni̼ r6   )r   r$   )r   333333?r   )r   r   )scalerotationtranslation)r   rR   r   )'  r   r   )r5   r6   )r   r   r$   r   r   F)	r   r<   r=   r   r   r   r   allnonzero)rE   srcrC   dstr   rG   r   s          r   test_ransac_geometricr     s    
))


)C 

7#
#C:xPF
+C H%C"CC  c
OQLIw y'7'7866"**W-.q1X=>>>r!   c            	          d } t        dg      5  t        t        j                  d      t        dt        j
                  | d      \  }}d d d        t        d        t        d        y # 1 sw Y   "xY w)Nc                 &    | j                   d   dkD  S )Nr   r$   )r?   )rF   s    r   is_data_validz0test_ransac_is_data_valid.<locals>.is_data_valid  s    zz!}q  r!   No inliers foundr   r$   r$   r   )r   rE   r   r   r   r)   r   infr	   )r   r   r   s      r   test_ransac_is_data_validr     sm    ! 
./	0 
HHWFF'
w
 $
 
   :A++A4c            	          d } t        dg      5  t        t        j                  d      t        dt        j
                  | d      \  }}d d d        t        d        t        d        y # 1 sw Y   "xY w)Nc                      y)NFr+   )r   rF   s     r   is_model_validz2test_ransac_is_model_valid.<locals>.is_model_valid)  s    r!   r   r   r$   r   )r   rE   r   )r   r   r   s      r   test_ransac_is_model_validr   (  sm     
./	0 
HHWFF)
w
 $
 
r   c                     t        t        dddd      d       t        t        dddd      d       t        t        dddd      d       t        t        dddd      d       t        t        dddd      d       t        t        dddd      d	       t        t        d
ddd      d       t        t        d
ddd      d       t        t        dddd      d       t        t        dddd      d       t        t        dddd      d       t        t        dddd      d       t        t        dddd      d       t        t        dddd      d       t        t        d
ddd      d       t        t        d
ddd      d       t        t        dddd      d       t        t        dddd      d       t        t        dddd      d       t        t        dddd      d       y )Nr6   r$   gGz?r   _      Z   r#      F      6   r      ~      rR   "   	   A   N   i`  i  i#  r   l   aWO)r	   r   r+   r!   r   test_ransac_dynamic_max_trialsr   9  s    $S#q$7;$S#q!4a8 $Ra6:$Ra3R8$Ra6:$Ra3R8$Ra6:$Ra3R8$Ra6;$Ra3S9 $Ra6:$Ra3R8$Ra6:$Ra3R8$Ra6;$Ra3S9$Ra6=$Ra3T: $QQ2A6$QQ2LAr!   c                     t        t        dddd      d       t        j                  t        j                        j
                  } t        j                  t        j                  |       t        j                  d| z
        z        }|dkD  sJ t        t        dddd      |       t        t        dddd      d       t        t        dddd      d       y)zLTest that the function behaves well when `nom` or `denom` become almost 1.0.r   r6   r   r   rb   gWw'&l7N)r	   r   r   finfor   epsceillog)EPSILONdesireds     r   'test_ransac_dynamic_max_trials_clippingr   b  s     $QR3Q7hhrzz"&&GggbffWoq7{(;;<GQ;;$QT15w? $QR7;$QT591=r!   c                  p   t        j                  t              5  t        t	        j
                  d      d dd       d d d        t        j                  t              5  t        t	        j
                  d      d ddd       d d d        t        j                  t              5  t        t	        j
                  d      d ddd       d d d        t        j                  t              5  t        t	        j
                  d      d ddd	       d d d        t        j                  t              5  t        t	        j
                  d      d dd       d d d        t        j                  t              5  t        t	        j
                  d      d d
d       d d d        t        j                  t              5  t        t	        j
                  d      d dd       d d d        y # 1 sw Y   xY w# 1 sw Y   nxY w# 1 sw Y   6xY w# 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   y xY w)Nr   r$   g      )min_samplesresidual_thresholdr   rf   r   r   
max_trials)r   r   stop_probabilityg)\(?   )r   r%   r&   r   r   r'   r+   r!   r   test_ransac_invalid_inputr   r  s   	
	# Prxx $A$OP 

	# 
HHWtqUW	


 

	# 
HHW 	

 

	# 
HHW !	

 

	# Mrxx $A!LM 

	# Nrxx $B1MN 

	# Nrxx $B1MN NAP P
 


 

 
M MN NN NsS   #G!$G.#$G;($H-#H1#H 5#H,!G+.G8;HHH H),H5c                       G d d      } t        j                  d      }t        dg      5  t        || ddd       d d d        y # 1 sw Y   y xY w)	Nc                       e Zd ZdZd Zd Zy)1test_ransac_sample_duplicates.<locals>.DummyModelz$Dummy model to check for duplicates.c                 j    t        t        j                  |      j                  |j                         y)NT)r	   r   uniquer9   selfrF   s     r   r(   z:test_ransac_sample_duplicates.<locals>.DummyModel.estimate  s!    4--tyy9r!   c                 ^    t        j                  t        |      t         j                        S )Nr3   )r   rw   rx   r   r   s     r   r*   z;test_ransac_sample_duplicates.<locals>.DummyModel.residuals  s    773t9BJJ77r!   N)__name__
__module____qualname____doc__r(   r*   r+   r!   r   
DummyModelr     s    2	
	8r!   r   rp   r   r#   g        r   r   )r   r   r   r   )r   rF   s     r   test_ransac_sample_duplicatesr    sQ    	8 	8 99Q<D	./	0 WtZQ3SUVW W Ws   AAc                      t         j                  j                  dd      } t        dg      5  t	        | t
        ddd      \  }}d d d        J J y # 1 sw Y   xY w)NrR   r$   z"No inliers found. Model not fittedr#   r   i> )model_classr   r   rE   )r   r<   randr   r   r   )rF   r   r   s      r   !test_ransac_with_no_final_inliersr    sj    99>>!QD	@A	B 
# 
w
 ??==
 
s   AAc            
      &   dt         fd} t        j                  j                  d      }t        j                  g dg dd      |j                  dd      z   dz
  }t        d	g      5  t        |t        d
ddd|        ddd       y# 1 sw Y   yxY w)zExample from GH issue #5572returnc           	          t        t        j                  t        j                  | j                  d   g d                  }|dt        j
                  z  k  S )z?Allow models with a maximum of 10 degree tilt from the verticalr   rK   gqq?)rN   r   arccosdotr   rY   )r   random_datatilts      r   r   z8test_ransac_non_valid_best_model.<locals>.is_model_valid  s<    299RVVELLOY?@A255())r!   r   r1   )r   r   r   rb   r#   r   zEstimated model is not validr$   r   r   r   )r   r   r   rE   r   N)	boolr   r<   RandomStaterc   r  r   r   r   )r   rE   rF   s      r    test_ransac_non_valid_best_modelr    s    *t *
 ))


"C;;y+t4sxxa7HH3ND	:;	< 	
")	
	
 	
 	
s   'BB)6numpyr   rt   skimage._sharedr   skimage._shared._warningsr   skimage._shared.testingr   r   r   r   r	   r
   r   skimage.measurer   r   r   r   skimage.measure.fitr   skimage.transformr   r    r,   r/   rI   rO   rS   r^   rd   ri   rn   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r+   r!   r   <module>r     s      # 7   K J 3 -/2./!MH	@1
1<&5F&.62
13.(6X=v.8 $W	C(F&.?, " "&BR> #NLW&
r!   