
    Vj[                     v    d dl Zd dlmc mZ d dlmZmZ d dl	m
Z
 d dlmZmZ d Zd Zd Zd Zd	 Zd
 Zd ZdS )    N)build_i2v_prompt_planwrite_i2v_prompt_plans)build_mechanism_shot_plan)PILOT_IDEASbuild_mechanism_explainerc                  T    t          t          d                   } t          |           S )Nr   )r   r   r   )	explainers    F/home/agent/jarvis_runtime/AutoShortsBot/tests/test_keyframe_prompt.py_pilot_shot_planr      s!    )+a.99I$Y///    c                     t          t                                } | d         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}| d         }d	}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}| d
         d         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}d | d         D             }ddg}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}d | d         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 )Nschema_versioni2v_prompt_plan.v1==z%(py1)s == %(py4)spy1py4assert %(py6)spy6style_profile"photorealistic_macro_investigationvideoidz<hidden-money-systems-warum-ein-billiges-auto-teuer-sein-kannc                     g | ]
}|d          S scene_id .0scenes     r
   
<listcomp>zOtest_i2v_prompt_plan_targets_only_ai_video_scenes_for_wan22.<locals>.<listcomp>   s    AAA%E*AAAr   scenesscene_01scene_02c              3   .   K   | ]}|d          dk    V  dS )
wan_presetwan22_i2v_quality_416x736Nr   r    s     r
   	<genexpr>zNtest_i2v_prompt_plan_targets_only_ai_video_scenes_for_wan22.<locals>.<genexpr>   s-      eeeu\"&AAeeeeeer   ,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}allpy0py2r   r   r   
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanationr,   @py_builtinslocals_should_repr_global_name)prompt_plan@py_assert0@py_assert3@py_assert2@py_format5@py_format7@py_assert1s          r
   ;test_i2v_prompt_plan_targets_only_ai_video_scenes_for_wan22r@      s   '(8(:(:;;K'(@,@@(,@@@@@@@@@@@(,@@@@@@(@@@@,@@@@@@@@@@@@@@@@@@@@@@@@@@@@'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OOOOOOOOOOOOOOOOOOOOOw%g)gg%)ggggggggggg%)gggggg%gggg)ggggggggggggggggggggggggggggAA;x+@AAA]jR\E]]AE]]]]]]]]]]]AE]]]]]]A]]]]E]]]]]]]]]]]]]]]]]]]]]]]]]]]]ee{[cOdeeee3eeeeeeeeeeeeeeee3eeeee3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er   c                  ^	   t          t                                d         d         } | d         }| d         }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}}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}}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}}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$   r   keyframe_promptnegative_promptred used compact carinz%(py1)s in %(py3)sr   py3assert %(py5)spy5z)bright European vehicle inspection garagezfront three-quarter viewzclean empty license plate areazNo text, no logos, no watermarkzunreadable license platezfake UI text
r   r   r1   r2   r3   r6   r7   r8   r4   r5   )r"   rB   rC   r:   r<   @py_format4@py_format6s          r
   Jtest_car_keyframe_prompt_uses_clear_visible_inspection_bay_without_ai_textrO      s   !"2"4"455h?BE-.O-.O!4!_4444444444!_44444!44444444444_44444_4444444444444444444444444446I6/IIIIIIIIII6/IIIII6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II%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%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,>_,,,,,,,,,,>_,,,,,>,,,,,,,,,,,_,,,,,_,,,,,,,,,,,,,,,,,,,,,,,,,,,,,r   c                  ^   t          t                                d         d         } | d         }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}}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}| d         }||v }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j	        |                    d x}x}}| d         d         }d}||u }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j	        |                    d x}x}}| d         d         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j	        |                    d x}x}}d S )Nr$   r   i2v_motion_promptzCamera slowly pushes inrE   rG   motion_promptrH   rJ   rK   z Preserve the same car and garagezNo text, no logo, no watermarkzslowly pushes inmotion_directivez%(py1)s in %(py4)sr   r   r   clip_requirements&subject_identifiable_first_half_secondT)is)z%(py1)s is %(py4)scaption_safe_spacezupper third and lower thirdr   r   rL   )	r"   rR   r:   r<   rM   rN   r;   r=   r>   s	            r
   Atest_i2v_motion_prompt_has_one_camera_move_and_preserves_identityrY   $   s   !"2"4"455h?BE-.M$5$5555555555$55555$5555555555555555555555555555555555555555555->->>>>>>>>>>->>>>>->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+<+}<<<<<<<<<<+}<<<<<+<<<<<<<<<<<}<<<<<}<<<<<<<<<<<<<<<<<<<<<<<<<<<:'9!::!:::::::::::!::::::::::!::::::::::::::::::::::::::::$%&NOWSWWOSWWWWWWWWWWWOSWWWWWWOWWWWSW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$%&:;\?\\;?\\\\\\\\\\\;?\\\\\\;\\\\?\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\r   c                  `   t          t                                d         d         } d}| d         }||v }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd	|iz  }t          t          j        |                    d x}x}}d
}| d         }||v }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd	|iz  }t          t          j        |                    d x}x}}d}| d         }||v }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd	|iz  }t          t          j        |                    d x}x}}d S )Nr$      rD   rB   rE   rT   r   r   r   zinspection garagerQ   zsurface layer)r   r   r1   r2   r3   r4   r5   )r"   r:   r;   r<   r=   r>   s         r
   Btest_problem_scene_keeps_same_car_context_not_generic_macro_promptr\   1   s*   !"2"4"455h?BE!=U+<%==!%===========!%======!====%============================<%(;"<<"<<<<<<<<<<<"<<<<<<<<<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<8e$7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8r   c                     t          t                                } | d         }d |D             }g d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|d	         d
         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|d         d
         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}d |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 )Nrenderer_only_scenesc                     g | ]
}|d          S r   r   r    s     r
   r#   zStest_non_ai_mechanism_scenes_become_renderer_notes_not_wan_jobs.<locals>.<listcomp>>   s    :::%E*:::r   )scene_03scene_04scene_05r   r   r   r   r   r   
asset_typemechanism_animationkinetic_text_overlayc              3   *   K   | ]}d |d         vV  dS )zWan2.2noteNr   r    s     r
   r*   zRtest_non_ai_mechanism_scenes_become_renderer_notes_not_wan_jobs.<locals>.<genexpr>A   s+      IIxuV},IIIIIIr   r+   r,   r-   r0   )r9   renderer_notesr:   r;   r<   r=   r>   r?   s           r
   ?test_non_ai_mechanism_scenes_become_renderer_notes_not_wan_jobsrj   9   s   '(8(:(:;;K !78N::>:::b>b>b>bb:>bbbbbbbbbbb:>bbbbbb:bbbb>bbbbbbbbbbbbbbbbbbbbbbbbbbbb!\*C.CC*.CCCCCCCCCCC*.CCCCCC*CCCC.CCCCCCCCCCCCCCCCCCCCCCCCCCCC"l+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II.IIII3IIIIIIIIIIIIIIII3IIIII3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Ir   c                 f   t          t                      g|           }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	         }|j        }d
}||k    }|st          j        d|fd||f          t          j        |          t          j        |          t          j        |          dz  }dd|iz  }t          t          j
        |                    d x}x}x}}|d	                             d          }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}}d S )Nr[   r   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)slenpaths)r.   r   rI   r   zassert %(py8)spy8r   zAhidden-money-systems-warum-ein-billiges-auto-teuer-sein-kann.json)z,%(py3)s
{%(py3)s = %(py1)s.name
} == %(py6)s)r   rI   r   zutf-8)encodingr   rE   rG   textrH   rJ   rK   r)   )r   r   rl   r1   r2   r6   r7   r8   r3   r4   r5   name	read_text)tmp_pathrm   r<   @py_assert5@py_assert4r>   @py_format9r:   rp   rM   rN   s              r
   (test_write_i2v_prompt_plans_outputs_jsonrw   D   s   "$4$6$6#7BBEu:::?:33uu:8_8=___=___________=______8____=__________________________________8w//D'4''''''''''4''''''''''''''''4'''''4'''''''''''''''''''''''''''&.&$..........&$.....&...........$.....$.............................r   )builtinsr6   _pytest.assertion.rewrite	assertionrewriter1   autoshorts.keyframe_promptr   r   autoshorts.mechanism_pipeliner   autoshorts.retention_studior   r   r   r@   rO   rY   r\   rj   rw   r   r   r
   <module>r      s                  T T T T T T T T C C C C C C N N N N N N N N0 0 0
f f f- - -
] 
] 
]9 9 9J J J/ / / / /r   