o
    lQ³i3  ã                   @  s„   d dl mZ d dlZd dlm  mZ d dlZd dl	m
Z
 d dlZd dlmZ d dlmZmZmZ ddd„Zdd	d
„Zddd„ZdS )é    )ÚannotationsN)ÚPath)Úbuild_pack_artifactsÚcompute_audio_metricsÚsegment_audio_member_nameÚreturnÚNonec                  C  s<  d} t | ƒ}d}||k}|sFt d|fd||f¡dt ¡ v s#t t ¡r(t t ¡ndt | ¡t |¡t |¡dœ }dd|i }tt |¡ƒ‚d  }  } }}d} t | ƒ}d	}||k}|s”t d|fd||f¡dt ¡ v sqt t ¡rvt t ¡ndt | ¡t |¡t |¡dœ }dd|i }tt |¡ƒ‚d  }  } }}d S )
Nz SPEAKER_00_0123_10.00-18.42.flac©ú==)z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py7)sr   )Úpy0Úpy2Úpy4Úpy7zassert %(py9)sÚpy9z'SPEAKER_00_0123_10.00-18.42.flac_split0z,SPEAKER_00_0123_10.00-18.42.flac_split0.flac)	r   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanation)Ú@py_assert1Ú@py_assert3Ú@py_assert6Ú@py_assert5Ú@py_format8Ú@py_format10© r   ú:/home/ubuntu/transcripts/tests/test_final_export_common.pyÚ3test_segment_audio_member_name_handles_split_suffix   s   œ r    c                  C  sê  d} d}t jd|t| | ƒdd}dt  dt j d | ¡  t j¡}t|| d	ƒ}|d
 }d}||k}|sXt 	d|fd||f¡t 
|¡t 
|¡dœ }dd|i }	tt |	¡ƒ‚d  } }}|d }|| k}|s˜t 	d|fd|| f¡t 
|¡dt ¡ v st | ¡r†t 
| ¡nddœ }
dd|
i }tt |¡ƒ‚d  }}|d }d }||u}|sËt 	d|fd||f¡t 
|¡t 
|¡dœ }dd|i }	tt |	¡ƒ‚d  } }}|d }d }||u}|st 	d|fd||f¡t 
|¡t 
|¡dœ }dd|i }	tt |	¡ƒ‚d  } }}|d }d}||k}|s7t 	d|fd||f¡t 
|¡t 
|¡dœ }dd|i }	tt |	¡ƒ‚d  } }}|d }d}||k}|smt 	d|fd||f¡t 
|¡t 
|¡dœ }dd|i }	tt |	¡ƒ‚d  } }}d S )Ni€>  ç       @r   F)Úendpointg      Ð?é   éÜ   zhello worldÚ
duration_sgffffffþ?)ú>)z%(py1)s > %(py4)s©Úpy1r   úassert %(py6)sÚpy6Úsample_rate_hzr	   )z%(py1)s == %(py3)sÚsr)r(   Úpy3zassert %(py5)sÚpy5Úrms_dbfs)úis not)z%(py1)s is not %(py4)sÚ	peak_dbfsÚchars_per_secÚwords_per_sec)ÚnpÚlinspaceÚintÚsinÚpiÚastypeÚfloat32r   r   r   r   r   r   r   r   r   )r,   r%   ÚtÚaudioÚmetricsÚ@py_assert0r   Ú@py_assert2Ú@py_format5Ú@py_format7Ú@py_format4Ú@py_format6r   r   r   Ú,test_compute_audio_metrics_has_expected_keys   s   $j|jllprD   Útmp_pathr   c              
   C  s  ddddddœdddd	d
dœg}dddddddœdddddd
dœg}t | d d||dddddœd}t |j ¡ ¡}|d }d}||k}|sit d|fd||f¡t |¡t |¡dœ }dd|i }	tt 	|	¡ƒ‚d  } }}|d }d}||k}|sžt d|fd||f¡t |¡t |¡dœ }dd|i }	tt 	|	¡ƒ‚d  } }}|d }d}||k}|sÓt d|fd||f¡t |¡t |¡dœ }dd|i }	tt 	|	¡ƒ‚d  } }}|d  }d}
t
|
ƒ}d}t
|ƒ}|| }||k}|sIt d|fd!||f¡t |¡d"t ¡ v st t
¡rt t
¡nd"t |
¡t |¡d"t ¡ v s*t t
¡r/t t
¡nd"t |¡t |¡d#œ }d$d%|i }tt 	|¡ƒ‚d  } } }
 } } }}|d& }|j}
|
j}|ƒ }|j}||k}|s°t d|fd'||f¡t |¡d(t ¡ v s‰t |¡rŽt |¡nd(t |
¡t |¡t |¡t |¡d)œ }d*d+|i }tt 	|¡ƒ‚d  } } }
 } }}|d, }|j}
|
j}|ƒ }|j}||k}|st d|fd-||f¡t |¡d(t ¡ v sît |¡rót |¡nd(t |
¡t |¡t |¡t |¡d)œ }d*d+|i }tt 	|¡ƒ‚d  } } }
 } }}|d. }|j}
|
j}|ƒ }|j}||k}|szt d|fd/||f¡t |¡d(t ¡ v sSt |¡rXt |¡nd(t |
¡t |¡t |¡t |¡d)œ }d*d+|i }tt 	|¡ƒ‚d  } } }
 } }}t |j¡ ¡ }t |j¡ ¡ }d0d1„ |D ƒ}ddg}||k}|sËt d|fd||f¡t |¡t |¡dœ }dd|i }	tt 	|	¡ƒ‚d  } }}d2d1„ |D ƒ}ddg}||k}|st d|fd||f¡t |¡t |¡dœ }dd|i }	tt 	|	¡ƒ‚d  } }}d S )3NÚvideo1Úseg_aÚhiÚnamaster!   )Úvideo_idÚ
segment_idÚsegment_languageÚtranscription_mixedr%   Úvideo2Úseg_bÚhellog      @z
seg_a.flacs   fake_flac_aÚsha_a)rJ   rK   Útar_member_nameÚ
flac_bytesÚflac_sha256Úaudio_duration_sz
seg_b.flacs   fake_flac_bÚsha_bÚpackzmanifest.jsonÚhi_shard_000001r#   )Úshard_idÚlanguageÚsegment_countÚvideo_count)Úpack_dirÚmanifest_nameÚmetadata_rowsÚ
audio_rowsÚmanifest_payloadÚmetadata_row_countr	   )z%(py1)s == %(py4)sr'   r)   r*   Úaudio_index_row_countÚaudio_tar_member_countÚsum_flac_bytes)z]%(py1)s == (%(py7)s
{%(py7)s = %(py3)s(%(py5)s)
} + %(py12)s
{%(py12)s = %(py8)s(%(py10)s)
})Úlen)r(   r-   r.   r   Úpy8Úpy10Úpy12zassert %(py15)sÚpy15Úmetadata_size_bytes)z…%(py1)s == %(py11)s
{%(py11)s = %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.metadata_path
}.stat
}()
}.st_size
}Ú	artifacts)r(   r-   r.   r   r   Úpy11zassert %(py13)sÚpy13Úaudio_tar_size_bytes)z†%(py1)s == %(py11)s
{%(py11)s = %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.audio_tar_path
}.stat
}()
}.st_size
}Úaudio_index_size_bytes)zˆ%(py1)s == %(py11)s
{%(py11)s = %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.audio_index_path
}.stat
}()
}.st_size
}c                 S  ó   g | ]}|d  ‘qS ©rK   r   ©Ú.0Úrowr   r   r   Ú
<listcomp>]   ó    zJtest_build_pack_artifacts_writes_manifest_and_sidecars.<locals>.<listcomp>c                 S  rq   rr   r   rs   r   r   r   rv   ^   rw   )r   ÚjsonÚloadsÚmanifest_pathÚ	read_textr   r   r   r   r   rf   r   r   r   Úmetadata_pathÚstatÚst_sizeÚaudio_tar_pathÚaudio_index_pathÚpqÚ
read_tableÚ	to_pylist)rE   r_   r`   rl   Úmanifestr>   r   r?   r@   rA   Ú@py_assert4r   Ú@py_assert9Ú@py_assert11Ú@py_assert13Ú@py_format14Ú@py_format16Ú@py_assert8Ú@py_assert10Ú@py_format12Úmetadata_backÚaudio_index_backr   r   r   Ú6test_build_pack_artifacts_writes_manifest_and_sidecars#   sf   ûûøú	ú÷üûjjjüÊÊÊvzr   )r   r   )rE   r   r   r   )Ú
__future__r   Úbuiltinsr   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter   rx   Úpathlibr   Únumpyr4   Úpyarrow.parquetÚparquetr   Úsrc.final_export_commonr   r   r   r    rD   r   r   r   r   r   Ú<module>   s    "

