
    NgC                         d dl mZ d dlZd dlZd dlZd dlmZ d Zd Z	ej
                            dej        g dfej        g dfg          d	             Zd
 Zd Zd Zd Zd ZdS )    )patchN)xycutc                  b   t          j        g dg dg          } t          j        | d          }t          j        g d          }t          j        |d d         |          sJ t          j        | d          }t          j        g d          }t          j        |d d         |          sJ d S )N)
      2   <   )   (   F   P   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   )nparrayr   projection_by_bboxesarray_equal)boxesresult_horizontalexpected_result_horizontalresult_verticalexpected_result_verticals        h/var/www/html/ai-engine/env/lib/python3.11/site-packages/test_unstructured/partition/utils/test_xycut.pytest_projection_by_bboxesr   
   s    H&&&(8(8(89::E 25!<<!#bbb" " >+CRC02LMMMMM 0::O!xbbb    >/#2#.0HIIIIIII    c                     t          j        g d          } d}d}t          j        | ||          }t          j        g d          t          j        g d          f}t          j        ||          sJ t          j        g d          } d}d}t          j        | ||          }t          j        g d          t          j        g d	          f}t          j        ||          sJ d S )
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   split_projection_profiler   )
arr_values	min_valuemin_gapresultexpected_results        r   test_split_projection_profiler+      s    JJJKKJIG+J	7KKFx


++RXjjj-A-ABO>&/22222 DDDEEJIG+J	7KKFx			**BHZZZ,@,@AO>&/2222222r   )recursive_funcexpectedr   r   r   )r   r   r   c                     t          j        g dg dg dg          }t          j        g d          }g } | |||           ||k    sJ d S )N)r   r   r   r   )   r      r
   )r   r   r   r   r.   )r   r   )r,   r-   r   indicesress        r   test_recursive_xy_cutr4   .   sf     Hnnn&7&7&7IJJEhyyy!!G
CN5'3'''(??????r   c                  f   g d} t          j        |           }|g dk    sJ g d} t          j        |           }|g dk    sJ g d} t          j        |           }|g dk    sJ t          j        t                    5  g d} t          j        |            d d d            d S # 1 swxY w Y   d S )N)r   r   r
   r   r   r	   r   r   r   r   r   r   )r
   r   r   r   r   r   r   r	   )iiiiiiii)r   r   r   r   )r   r   r
   r   r   r	   )r   points_to_bboxpytestraisesAssertionError)pointsr)   s     r   test_points_to_bboxr<   =   s.   ---F!&))F%%%%%%% .--F!&))F%%%%%%% 655F!&))F\\\!!!! 
~	&	& % %)))V$$$% % % % % % % % % % % % % % % % % %s    B&&B*-B*c                     g d} t          j        |           }|g dk    sJ g d} t          j        |           }|g dk    sJ g d} t          j        |           }|g dk    sJ g d} t          j        |           }|g dk    sJ d S )	Nr6   )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   bbox2points)bboxr)   s     r   test_bbox2pointsr@   S   s    Dt$$F5555555 Dt$$F5555555 Dt$$F5555555 Dt$$F555555555r   c                      t          j        dt           j                  dz  } g d}d}d}t          j        | |||          }t          j        |           }t          j        ||d         |d         ||           t          j        ||d         |d         ||           t          j        ||d         |d	         ||           t          j        ||d	         |d         ||           t          j        ||          sJ d S )
Nr0   r0   r   dtype   ))r   r   )   r   )rF   rF   )r   rF   )r   r   rE   r   r   r   r   )	r   onesuint8r   vis_polygoncopycv2liner   )imgr;   color	thickness
result_imgexpected_imgs         r   test_vis_polygonrR   j   s    
'-rx
0
0
03
6C999FEI"3	5AAJ 73<<LH\6!9fQi	BBBH\6!9fQi	BBBH\6!9fQi	BBBH\6!9fQi	BBB>*l3333333r   c                     t          j        dt           j                  dz  } g dg dg}ddg}d}t          j        | |||          }t          j        |           }t          |          D ]@\  }}t          j        |t          j        |          	                    d	d
          d
|           t          j
        |          }|\  }	}
}}|	|z   d
z  }|
|z   d
z  }||         }t          j        |t          j        dd
          d         }t          j        ||dt          |          z  z
  ||d         z
  dz
  f|dt          |          z  z
  |d         z   |dz
  f|d	          }t          j        |||dt          |          z  z
  |dz
  ft          j        dddt          j                  }Bt          j        ||          sJ d S )NrB   rC   rE   r   r   r
   r   r
   r   r   r   r   r	   r   r	   r   r   r   r   Label1Label2)r   r0   r   r   )rO   rN   g      ?r   r   r   )rE   rE   rE   )rO   lineType)r   rG   rH   r   
vis_pointsrJ   	enumeraterI   r   reshaper7   rK   getTextSizeFONT_HERSHEY_SIMPLEX	rectanglelenputTextLINE_AAr   )rM   r;   textsrN   rP   rQ   i_pointsr?   lefttoprightbottomcxcytxtcat_sizes                    r   test_vis_pointsrn   |   s   
'-rx
0
0
03
6C...0P0P0PQFx EE!#vue<<J 73<<L  '' 
 

7,(9(9(A(A"a(H(HTU]bcccc#G,,#' c5&Ulq Flq Ah ?3(@#qII!L}!c#hh,Xa[ 01 45!c#hh,!,b1f5
 
 {!c#hh,Q'$[	
 	
 	
 >*l3333333r   c                  2   t          j        dt           j                  dz  } g dg dg}t          d|           5 }t	          j        | |          }|                                 t          j        ||           sJ 	 d d d            d S # 1 swxY w Y   d S )NrB   rC   rE   rT   rU   z-unstructured.partition.utils.xycut.vis_points)return_value)r   rG   rH   r   r   vis_polygons_with_indexassert_called_oncer   )rM   r;   mock_vis_pointsrP   s       r   test_vis_polygons_with_indexrt      s    
'-rx
0
0
03
6C...0P0P0PQF	7c
 
 
 /	23??
 	**,,,~j#....../ / / / / / / / / / / / / / / / / /s   ABBB)unittest.mockr   rK   numpyr   r8   unstructured.partition.utilsr   r   r+   markparametrizerecursive_xy_cutrecursive_xy_cut_swappedr4   r<   r@   rR   rn   rt    r   r   <module>r}      s         



      . . . . . .J J J$3 3 3$ "		+		'3   % % %,6 6 6.4 4 4$*4 *4 *4Z/ / / / /r   