
    j                     h    d dl Zd dlmc mZ d dlmZmZm	Z	m
Z
 defdZd Zd Zd Zd Zd	 Zd
 ZdS )    N)CaptionLayoutConfigWordCuebuild_safe_caption_segmentslayout_caption_segmenttextc                 |                                       }t           fdt          |          D                       S )Nc              3   V   K   | ]#\  }}t          |d z  |dz   d z  |          V  $dS )g333333?   )startendwordsentenceN)r   ).0ir   r   s      V/home/agent/jarvis_runtime/autoshortsbot/AutoShortsBot/tests/test_caption_safe_zone.py	<genexpr>z_cue_words.<locals>.<genexpr>   sX        At 	a#gAES=tdKKK         )splittuple	enumerate)r   wordss   ` r   
_cue_wordsr   	   sP    JJLLE     ''     r   c            	      `   t          ddd          } t          t          d          |           d         }t          |j        |j        d         |           }d	}|j        }t          |          }||k    }d
}||k    }|r|st          j        d||fd|||f          t          j	        |          dt          j                    v st          j        t                    rt          j	        t                    nddt          j                    v st          j        |          rt          j	        |          ndt          j	        |          t          j	        |          t          j	        |          dz  }	dd|	iz  }
t          t          j        |
                    d x}x}x}x}x}}|j        }| j        }||k    }|st          j        d|fd||f          dt          j                    v st          j        |          rt          j	        |          ndt          j	        |          dt          j                    v st          j        |           rt          j	        |           ndt          j	        |          dz  }dd|iz  }t          t          j        |                    d x}x}}d S )N8    <   video_widthvideo_heighthorizontal_margin_pxz+Before you pay check three important thingslayoutr   active_wordconfigr
      )<=r'   )zK%(py1)s <= %(py9)s
{%(py9)s = %(py4)s(%(py7)s
{%(py7)s = %(py5)s.lines
})
}zL%(py9)s
{%(py9)s = %(py4)s(%(py7)s
{%(py7)s = %(py5)s.lines
})
} <= %(py11)slenr"   )py1py4py5py7py9py11zassert %(py13)spy13r'   zS%(py2)s
{%(py2)s = %(py0)s.width_px
} <= %(py6)s
{%(py6)s = %(py4)s.safe_width_px
}cfgpy0py2r*   py6assert %(py8)spy8)r   r   r   r   r   linesr(   
@pytest_ar_call_reprcompare	_saferepr@py_builtinslocals_should_repr_global_nameAssertionError_format_explanationwidth_pxsafe_width_px)r2   segmentr"   @py_assert0@py_assert6@py_assert8@py_assert2@py_assert10@py_assert3@py_format12@py_format14@py_assert1@py_assert5@py_format7@py_format9s                  r   7test_long_phrase_wraps_into_two_lines_within_safe_widthrQ      s   
$TXZ
[
[
[C)*5b*c*clopppqrsG#GMw}Q?OX[\\\F&FL&L!!&1!&&Q&!Q&&&&&&&&&&&&&1!Q&&&&&1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&F&&&&&F&&&&&&L&&&&!&&&&Q&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&?/c//?///////////?/////////////6/////6//////?///////////c/////c////////////////////////////////////r   c            
      
   t          ddd          } t          t          d          |           d         }|j        D ]<}t	          |j        ||           }|j        }| j        }||k    }|st          j        d	|fd
||f          dt          j
                    v st          j        |          rt          j        |          ndt          j        |          dt          j
                    v st          j        |           rt          j        |           ndt          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|j        }| j        }| j        }	||	z
  }
||
k    }|s9t          j        d|fd||
f          dt          j
                    v st          j        |          rt          j        |          ndt          j        |          dt          j
                    v st          j        |           rt          j        |           ndt          j        |          dt          j
                    v st          j        |           rt          j        |           ndt          j        |	          dz  }dd|iz  }t          t          j        |                    d x}x}x}x}	}
|j        }d }||u}|st          j        d|fd||f          dt          j
                    v st          j        |          rt          j        |          ndt          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|j        d         }| j        }||k    }|st          j        d	|fd||f          t          j        |          dt          j
                    v st          j        |           rt          j        |           ndt          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|j        d         }| j        }| j        }||z
  }||k    }|st          j        d|fd||f          t          j        |          dt          j
                    v st          j        |           rt          j        |           ndt          j        |          dt          j
                    v st          j        |           rt          j        |           ndt          j        |          dz  }dd |iz  }t          t          j        |                    d x}x}x}x}}>d S )!Nr   r   r   r   z,sender domain urgency language payment router!   r   r#   >=)zY%(py2)s
{%(py2)s = %(py0)s.left_px
} >= %(py6)s
{%(py6)s = %(py4)s.horizontal_margin_px
}r"   r2   r3   r7   r8   r0   z%(py2)s
{%(py2)s = %(py0)s.right_px
} <= (%(py6)s
{%(py6)s = %(py4)s.video_width
} - %(py9)s
{%(py9)s = %(py7)s.horizontal_margin_px
})r4   r5   r*   r6   r,   r-   assert %(py12)spy12)is not)z;%(py2)s
{%(py2)s = %(py0)s.active_word_box
} is not %(py5)s)r4   r5   r+   zassert %(py7)sr,   )z<%(py1)s >= %(py5)s
{%(py5)s = %(py3)s.horizontal_margin_px
})r)   py3r+   r&   )zi%(py1)s <= (%(py5)s
{%(py5)s = %(py3)s.video_width
} - %(py8)s
{%(py8)s = %(py6)s.horizontal_margin_px
}))r)   rZ   r+   r6   r8   zassert %(py11)sr.   )r   r   r   r   r   left_pxr    r:   r;   r=   r>   r?   r<   r@   rA   right_pxr   active_word_box)r2   rD   r   r"   rM   rN   rJ   rO   rP   rG   rI   @py_format11@py_format13@py_assert4@py_format6@py_format8rE   rH   @py_assert7@py_assert9@py_format10rK   s                         r   ?test_caption_and_active_word_highlight_never_exceed_safe_boundsrf      s1   
$TXZ
[
[
[C)*5c*d*dmpqqqrstG W W'4PSTTT~9!99~!99999999999~!9999999999999v99999v999999~9999999999999999999999!9999999999999999999999999999L#/LC4LL/4L"LL"LLLLLLLLLLL"LLLLLLLLLLLLLvLLLLLvLLLLLLLLLLLLLLLLL#LLLLL#LLLLLL/LLLLLLLLLLLCLLLLLCLLLLLL4LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL%1T1%T1111111111%T111111111111v11111v111111%1111T111111111111111111111111111%a(DC,DD(,DDDDDDDDDDD(,DDDDDD(DDDDDDDDDDDCDDDDDCDDDDDD,DDDDDDDDDDDDDDDDDDDDDDDDDDDD%a(VCOVc>VVO>V,VV(,VVVVVVVVVVV(,VVVVVV(VVVVVVVVVVVCVVVVVCVVVVVVOVVVVVVVVVVVcVVVVVcVVVVVV>VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVW Wr   c                     t          ddd          t          t          d                    d         } t          | j        d	          }fd
|j        D             }t          |          }|sddt          j                    v st          j
        t                    rt          j        t                    ndt          j        |          t          j        |          dz  }t          t          j        |                    d x}}fd|j        D             }t          |          }|sddt          j                    v st          j
        t                    rt          j        t                    ndt          j        |          t          j        |          dz  }t          t          j        |                    d x}}d S )Nr   r   r   r   zThis invoice looks normalr!   r   invoicer#   c              3   :   K   | ]}|d          j         k    V  dS )r   N)r    r   boxr2   s     r   r   z=test_no_word_clipped_at_left_or_right_edge.<locals>.<genexpr>.   s/      OOcs1v11OOOOOOr   z,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}all)r4   r5   r*   c              3   J   K   | ]}|d          j         j        z
  k    V  dS )r&   N)r   r    rj   s     r   r   z=test_no_word_clipped_at_left_or_right_edge.<locals>.<genexpr>/   s6      aas1v3+CCCaaaaaar   )r   r   r   r   r   
word_boxesrl   r=   r>   r:   r?   r<   r@   rA   )rD   r"   rM   rJ   @py_format5r2   s        @r   *test_no_word_clipped_at_left_or_right_edgerp   (   s   
$TXZ
[
[
[C)*5P*Q*QZ]^^^_`aG#GMyQTUUUFOOOOV=NOOOO3OOOOOOOOOOOOOOOO3OOOOO3OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOaaaavO`aaaa3aaaaaaaaaaaaaaaa3aaaaa3aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar   c            	      B   t          ddd          } d}t          t          |          |           }t          |          }d}||k    }|st	          j        d|fd	||f          d
t          j                    v st	          j        t                    rt	          j	        t                    nd
dt          j                    v st	          j        |          rt	          j	        |          ndt	          j	        |          t	          j	        |          dz  }dd|iz  }t          t	          j        |                    d x}x}}|D ]W}t          |j        |j        d         |           }	|	j        }t          |          }d}
||
k    }|st	          j        d|fd||
f          d
t          j                    v st	          j        t                    rt	          j	        t                    nd
dt          j                    v st	          j        |	          rt	          j	        |	          ndt	          j	        |          t	          j	        |          t	          j	        |
          dz  }dd|iz  }t          t	          j        |                    d x}x}x}}
|	j        }| j        }||k    }|st	          j        d|fd||f          dt          j                    v st	          j        |	          rt	          j	        |	          ndt	          j	        |          dt          j                    v st	          j        |           rt	          j	        |           ndt	          j	        |          dz  }dd|iz  }t          t	          j        |                    d x}x}}Yd S )Nr   r   r   r   zOBefore you pay check sender domain urgency language and payment route carefullyr!   r
   )>)z/%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} > %(py6)sr(   segments)r4   r)   rZ   r6   r7   r8   r   r#   r&   r0   )zK%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.lines
})
} <= %(py8)sr"   )r4   r)   rZ   r+   r8   zassert %(py10)spy10r1   r2   r3   )r   r   r   r(   r:   r;   r=   r>   r?   r<   r@   rA   r   r   r9   rB   rC   )r2   r   rs   rH   rN   r`   rO   rP   rD   r"   rc   rF   r^   rM   rJ   s                  r   0test_max_two_lines_enforced_by_splitting_earlierru   2   s   
$TXZ
[
[
[C\D*:d+;+;CHHHHx==1=1=133xx=1 4 4'7=QRCS\_```<%s<  %A% A%%%%%%%%%% A%%%%%%%%%%%%s%%%%%s%%%%%%%%%%%%%6%%%%%6%%%%%%<%%%% %%%%A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3#"33"33333333333"3333333333333v33333v33333333333333333#33333#333333"333333333333333333333333333334 4r   c            	      l   t          ddd          } t          t          d          |           d         }t          |j        d| 	          }|j        }| j        }| j        }||z
  }||k    }|s9t          j	        d
|fd||f          dt          j                    v st          j        |          rt          j        |          ndt          j        |          dt          j                    v st          j        |           rt          j        |           ndt          j        |          dt          j                    v st          j        |           rt          j        |           ndt          j        |          dz  }dd|iz  }	t          t          j        |	                    d x}x}x}x}}d S )Nr   r   i  )r   r   bottom_margin_pxzUrgency is not proofr!   r   notr#   r0   )z%(py2)s
{%(py2)s = %(py0)s.bottom_px
} <= (%(py6)s
{%(py6)s = %(py4)s.video_height
} - %(py9)s
{%(py9)s = %(py7)s.bottom_margin_px
})r"   r2   rV   rW   rX   )r   r   r   r   r   	bottom_pxr   rw   r:   r;   r=   r>   r?   r<   r@   rA   )
r2   rD   r"   rM   rN   rG   rI   rJ   r^   r_   s
             r   &test_mobile_bottom_safe_zone_respectedrz   >   s   
$TTW
X
X
XC)*5K*L*LUXYYYZ[\G#GMuSQQQFFs/F#2FF/2FFFFFFFFFFFFFFFFFFFFFFFFFFF6FFFFF6FFFFFFFFFFFFFFFFFsFFFFFsFFFFFF/FFFFFFFFFFF#FFFFF#FFFFFF2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFr   c            	      |   t          ddd          } t          t          d          |           d         }t          |j        d| 	          }|j        }| j        }||k    }|st          j        d
|fd||f          dt          j
                    v st          j        |          rt          j        |          ndt          j        |          dt          j
                    v st          j        |           rt          j        |           ndt          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|j        }| j        }| j        }||z
  }	||	k    }|s9t          j        d
|fd||	f          dt          j
                    v st          j        |          rt          j        |          ndt          j        |          dt          j
                    v st          j        |           rt          j        |           ndt          j        |          dt          j
                    v st          j        |           rt          j        |           ndt          j        |          dz  }
dd|
iz  }t          t          j        |                    d x}x}x}x}}	|j        }| j        }||k    }|st          j        d|fd||f          dt          j
                    v st          j        |          rt          j        |          ndt          j        |          dt          j
                    v st          j        |           rt          j        |           ndt          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}d S )Nr   r   r   r   z(verify example-company.com before payingr!   r   zexample-company.comr#   r0   r1   r"   r2   r3   r7   r8   rU   rV   rW   rX   rS   )zZ%(py2)s
{%(py2)s = %(py0)s.font_size_px
} >= %(py6)s
{%(py6)s = %(py4)s.min_font_size_px
})r   r   r   r   r   rB   rC   r:   r;   r=   r>   r?   r<   r@   rA   r\   r   r    font_size_pxmin_font_size_px)r2   rD   r"   rM   rN   rJ   rO   rP   rG   rI   r^   r_   s               r   )test_domain_strings_wrap_or_shrink_safelyr~   G   s   
$TXZ
[
[
[C)*5_*`*`ilmmmnopG#GM?T]`aaaF?/c//?///////////?/////////////6/////6//////?///////////c/////c//////////////////////////////////?HcoH0HHo0HHH?HHHHHHHHHHH?HHHHHHHHHHHHH6HHHHH6HHHHHH?HHHHHHHHHHHcHHHHHcHHHHHHoHHHHHHHHHHHHHHHHHHHHHH0HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH6#"66"66666666666"6666666666666666666666666666666666666#66666#666666"666666666666666666666666666666r   )builtinsr=   _pytest.assertion.rewrite	assertionrewriter:   $autoshorts.rendering.static_captionsr   r   r   r   strr   rQ   rf   rp   ru   rz   r~    r   r   <module>r      s                             S    0 0 0
W 
W 
Wb b b	4 	4 	4G G G7 7 7 7 7r   