
    1j	                     V    d dl Zd dlmc mZ d dlmZmZm	Z	m
Z
 d Zd Zd Zd Zd ZdS )    N)KeyframeRoleWanModebuild_s03_keyframe_first_plan"validate_keyframe_first_scene_planc                  	   t          d          } | j        }d}||k    }|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
        }|j        }t          j        }||u }|st          j        d	|fd
||f          dt	          j                    v st          j        |           rt          j        |           ndt          j        |          t          j        |          dt	          j                    v st          j        t                    rt          j        t                    ndt          j        |          dz  }dd|iz  }	t          t          j	        |	                    d 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        }|j        }t          j        }||u }|st          j        d	|fd||f          dt	          j                    v st          j        |           rt          j        |           ndt          j        |          t          j        |          dt	          j                    v st          j        t                    rt          j        t                    ndt          j        |          dz  }dd|iz  }	t          t          j	        |	                    d x}x}x}}| j        }t"          j        }||u }|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        t"                    rt          j        t"                    ndt          j        |          dz  }
dd|
iz  }t          t          j	        |                    d x}x}}d S )N&ai-output-autopsy-decision-summary-38ss03_mechanism==)z0%(py2)s
{%(py2)s = %(py0)s.scene_id
} == %(py5)splanpy0py2py5assert %(py7)spy7is)zq%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.start_keyframe
}.role
} is %(py8)s
{%(py8)s = %(py6)s.START_FRAME
}r   )r   r   py4py6py8zassert %(py10)spy10)is not)z8%(py2)s
{%(py2)s = %(py0)s.end_keyframe
} is not %(py5)s)zm%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.end_keyframe
}.role
} is %(py8)s
{%(py8)s = %(py6)s.END_FRAME
})z_%(py2)s
{%(py2)s = %(py0)s.wan_mode
} is %(py6)s
{%(py6)s = %(py4)s.FIRST_LAST_FRAME_TO_VIDEO
}r   )r   r   r   r   zassert %(py8)sr   )r   scene_id
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationstart_keyframeroler   START_FRAMEend_keyframe	END_FRAMEwan_moder   FIRST_LAST_FRAME_TO_VIDEO)r   @py_assert1@py_assert4@py_assert3@py_format6@py_format8@py_assert7@py_assert5@py_format9@py_format11@py_format7s              X/home/agent/jarvis_runtime/autoshortsbot/AutoShortsBot/tests/test_keyframe_first_plan.py5test_s03_keyframe_first_plan_has_start_and_end_framesr5   	   so   ()QRRD=+O+=O++++++++++=O++++++++++++4+++++4++++++=++++O+++++++++++++++++++++++++++?#?|'??#'???????????#'?????????????4?????4??????????#???????????|?????|??????'??????????????????????????????(D(D((((((((((D((((((((((((4(((((4((((((((((D(((((((((((((((((((((((((((;!;\%;;!%;;;;;;;;;;;!%;;;;;;;;;;;;;4;;;;;4;;;;;;;;;;!;;;;;;;;;;;\;;;;;\;;;;;;%;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;==G============================4=====4==================G=====G====================================    c                  B   t          d          } | j        | j        fD ]}d}|j        }||v }|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}}d	}|j        }||v }|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}}d
}|j        }||v }|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}||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}}d S )Nr   zreadable textin)z:%(py1)s in %(py5)s
{%(py5)s = %(py3)s.forbidden_elements
}spec)py1py3r   r   r   zfake UI textlogosTr   )z9%(py2)s
{%(py2)s = %(py0)s.approval_required
} is %(py5)sr   )r   r#   r&   forbidden_elementsr   r   r    r   r   r   r!   r"   approval_required)	r   r:   @py_assert0r+   @py_assert2r-   r.   r*   r,   s	            r4   4test_keyframe_specs_forbid_readable_text_and_fake_uirB      s   ()QRRD$d&78 . .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999999999999998!88~!88888888888~!888888~8888888888888888888888!88888888888888888888888888881$11w11111111111w111111w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11111111111111111111111%--%----------%------------t-----t------%--------------------------------	. .r6   c                     t          d          } d                    | j        j        | j        j        | j        r| j        j        nd| j        g                                          }d}||v }|st          j	        d|fd||f          t          j
        |          dt          j                    v st          j        |          rt          j
        |          nddz  }d	d
|iz  }t          t          j        |                    d x}}d}||v }|st          j	        d|fd||f          t          j
        |          dt          j                    v st          j        |          rt          j
        |          nddz  }d	d
|iz  }t          t          j        |                    d x}}g }d}||v }|}|sd}||v }	|	}|sXt          j	        d|fd||f          t          j
        |          dt          j                    v st          j        |          rt          j
        |          nddz  }dd|iz  }
|                    |
           |st          j	        d|	fd||f          t          j
        |          dt          j                    v st          j        |          rt          j
        |          nddz  }dd|iz  }|                    |           t          j        |d          i z  }dd|iz  }t          t          j        |                    d x}x}x}x}x}}	d}||v }|st          j	        d|fd||f          t          j
        |          dt          j                    v st          j        |          rt          j
        |          nddz  }d	d
|iz  }t          t          j        |                    d x}}d S )Nr     meetingr8   )z%(py1)s in %(py3)sjoined)r;   r<   zassert %(py5)sr   compressionzdecision-targetzdecision target)z%(py3)s in %(py5)s)r<   r   z%(py7)sr   )z%(py10)s in %(py12)s)r   py12z%(py14)spy14   zassert %(py17)spy17summary)r   joinr#   visual_goalcompositionr&   expected_motionlowerr   r   r    r   r   r   r!   r"   append_format_boolop)r   rG   r@   rA   @py_format4r-   r*   r+   @py_assert9@py_assert11r.   @py_format13@py_format15@py_format16@py_format18s                  r4   Itest_s03_keyframes_are_semantically_grounded_in_meeting_summary_mechanismr\      s   ()QRRDXX'')-):B%%	  
 uww  999"=F""""""""""=F"""""="""""""""""F"""""F"""""""""""""""""""""""""""EEE&EEEEE*;E*;v*EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE*;vEEEEE*;EEEEEEEEEEEvEEEEEvEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE999r6   c                  `   t          d          } | j        }d}||k    }|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
        }|j        }d	}||k    }|st          j        d
|fd||f          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}}d S )Nr      )<=)z<%(py2)s
{%(py2)s = %(py0)s.max_allowed_overlays
} <= %(py5)sr   r   r   r   )zsmall arrowzsmall NO DECISION TARGET labelcaptionsr
   )zc%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.start_keyframe
}.renderer_owned_overlays
} == %(py7)s)r   r   r   r   zassert %(py9)spy9)r   max_allowed_overlaysr   r   r   r   r   r    r!   r"   r#   renderer_owned_overlays)	r   r*   r+   r,   r-   r.   @py_assert6r0   @py_format10s	            r4   7test_keyframe_first_plan_limits_renderer_owned_overlaysrf   -   s   ()QRRD$))$))))))))))$))))))))))))4)))))4))))))$)))))))))))))))))))))))))))))))w6w:ww6:wwwwwwwwwww6:wwwwwwwwwwwww4wwwww4wwwwwwwwww6wwww:wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwr6   c            	         t          d          } |                     | j        | j        d t          j        | j        | j        | j                  }t          |          }|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
}||k    }|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}}d S )Nr   )r   r#   r&   r(   duration_secondsrQ   rb   Fr   )z/%(py2)s
{%(py2)s = %(py0)s.allowed
} is %(py5)sresultr   r   r   text_to_video_only_disallowedr
   )z.%(py2)s
{%(py2)s = %(py0)s.reason
} == %(py5)s)r   	__class__r   r#   r   TEXT_TO_VIDEOrh   rQ   rb   r   allowedr   r   r   r   r   r    r!   r"   reason)r   invalidri   r*   r+   r,   r-   r.   s           r4   Btest_validate_keyframe_first_scene_plan_rejects_text_to_video_onlyrp   4   s!   ()QRRDnn*&.,!6   G 088F>"U">U"""""""""">U""""""""""""6"""""6"""""">""""U"""""""""""""""""""""""""""=;;;=;;;;;;;;;;;=;;;;;;;;;;;;;6;;;;;6;;;;;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;r6   )builtinsr   _pytest.assertion.rewrite	assertionrewriter   (autoshorts.rendering.keyframe_first_planr   r   r   r   r5   rB   r\   rf   rp    r6   r4   <module>rw      s                             > > >. . .   x x x< < < < <r6   