
    i	                         d Z ddlZddlZddlZddlmZ ddlZej                  j                  d e	 ee
      j                  j                               ddlmZ  G d d      Zy)u<   성능 테스트 - 처리 시간, 메모리 사용량 측정    N)Path)CodeReviewerc                   T    e Zd ZdZ ej
                  d      d        Zd Zd Zd Z	y)	TestPerformanceu   성능 테스트 클래스T)autousec                 "    t               | _        y)u   테스트 설정N)r   reviewer)selfs    =/home/jay/workspace/memory/red_team/tests/test_performance.pysetupzTestPerformance.setup   s     %    c                    t        j                  ddd      5 }t        d      D ]  }|j                  d| d        |j                  }ddd       	 t        j
                         }| j                  j                        }t        j
                         }||z
  d	k  sJ |J 	 t        |      j                          y# 1 sw Y   vxY w# t              j                          w xY w)
u-   성능: 작은 파일 (<100줄) 처리 시간w.pyFmodesuffixdelete2   # Line 
Ng      ?
tempfileNamedTemporaryFilerangewritenametimer	   reviewr   unlinkr
   fi	temp_path
start_timeresultend_times          r   test_small_file_performancez+TestPerformance.test_small_file_performance   s    ((c%N 	RS2Y )'!B()I	
		%J]])))4Fyy{H j(3...%%%O""$	 	 O""$   2C AC  C	C'c                    t        j                  ddd      5 }t        d      D ]  }|j                  d| d        |j                  }ddd       	 t        j
                         }| j                  j                        }t        j
                         }||z
  d	k  sJ |J 	 t        |      j                          y# 1 sw Y   vxY w# t              j                          w xY w)
u0   성능: 중간 파일 (100-500줄) 처리 시간r   r   Fr   i,  r   r   Ng      @r   r!   s          r   test_medium_file_performancez,TestPerformance.test_medium_file_performance*   s    ((c%N 	RS3Z )'!B()I	
		%J]])))4Fyy{H j(3...%%%O""$	 	 O""$r)   c                    t        j                  ddd      5 }t        d      D ]  }|j                  d| d        |j                  }ddd       	 t        j
                         }| j                  j                        }t        j
                         }||z
  d	k  sJ |J 	 t        |      j                          y# 1 sw Y   vxY w# t              j                          w xY w)
u*   성능: 큰 파일 (>500줄) 처리 시간r   r   Fr   i  r   r   Ng      @r   r!   s          r   test_large_file_performancez+TestPerformance.test_large_file_performance<   s    ((c%N 	RS4[ )'!B()I	
		%J]])))4Fyy{H j(3...%%%O""$	 	 O""$r)   N)
__name__
__module____qualname____doc__pytestfixturer   r(   r+   r-    r   r   r   r      s1    $V^^D!' "'%$%$%r   r   )r1   sysr   r   pathlibr   r2   pathinsertstr__file__parentcode_reviewerr   r   r4   r   r   <module>r=      sK    B 
     3tH~,,334 5 &<% <%r   