1- use crate :: ass_test_helpers:: { compare_ass_files, parse_ass} ;
1+ use super :: ass_test_helpers:: { compare_ass_files, parse_ass} ;
22use srv3_ttml:: TimedText ;
3- #[ allow( unused_imports) ]
4- use std:: str:: FromStr ;
5-
6- fn to_ass ( timed_text : & TimedText ) -> std:: io:: Result < String > {
7- srv3tovtt_crate:: to_ass ( timed_text)
8- }
9-
103const STAGE_PARSE_SRV3 : & str = "parse-srv3" ;
114const STAGE_CONVERT_TO_ASS : & str = "srv3-to-ass" ;
125const STAGE_PARSE_EXPECTED_ASS : & str = "parse-expected-ass" ;
136const STAGE_PARSE_ACTUAL_ASS : & str = "parse-actual-ass" ;
147const STAGE_COMPARE_ASS : & str = "compare-ass" ;
158
9+ fn to_ass ( timed_text : & TimedText ) -> std:: io:: Result < String > {
10+ srv3tovtt_crate:: to_ass ( timed_text)
11+ }
12+
1613// Helper macro to generate test functions for all test categories
1714// This performs YTT→ASS conversion and compares the result with the expected ASS file
1815macro_rules! define_ass_test {
1916 ( $test_name: ident, $test_file: expr) => {
2017 #[ test]
2118 fn $test_name( ) {
22- let input = include_str!( concat!( "../tests/ass/" , $test_file, ".ytt" ) ) ;
19+ let input = include_str!( concat!( "../../ tests/ass/" , $test_file, ".ytt" ) ) ;
2320 let timed_text = match TimedText :: from_str( input) {
2421 Ok ( tt) => tt,
2522 Err ( e) => panic!(
@@ -55,7 +52,7 @@ macro_rules! define_ass_test {
5552
5653 // Parse expected and actual ASS files for semantic comparison
5754 let expected_content =
58- include_str!( concat!( "../tests/ass/" , $test_file, ".reverse.ass" ) ) ;
55+ include_str!( concat!( "../../ tests/ass/" , $test_file, ".reverse.ass" ) ) ;
5956
6057 let expected_parsed = parse_ass( expected_content) . unwrap_or_else( |e| {
6158 panic!(
@@ -75,20 +72,28 @@ macro_rules! define_ass_test {
7572 if let Err ( diffs) = compare_ass_files( & expected_parsed, & actual_parsed) {
7673 // Helper to count events in a Script
7774 fn count_events( script: & ass_core:: parser:: Script ) -> usize {
78- script. sections( ) . iter( ) . filter_map( |s| match s {
79- ass_core:: parser:: ast:: Section :: Events ( events) => Some ( events. len( ) ) ,
80- _ => None ,
81- } ) . sum( )
75+ script
76+ . sections( )
77+ . iter( )
78+ . filter_map( |s| match s {
79+ ass_core:: parser:: ast:: Section :: Events ( events) => Some ( events. len( ) ) ,
80+ _ => None ,
81+ } )
82+ . sum( )
8283 }
83-
84+
8485 // Helper to count styles in a Script
8586 fn count_styles( script: & ass_core:: parser:: Script ) -> usize {
86- script. sections( ) . iter( ) . filter_map( |s| match s {
87- ass_core:: parser:: ast:: Section :: Styles ( styles) => Some ( styles. len( ) ) ,
88- _ => None ,
89- } ) . sum( )
87+ script
88+ . sections( )
89+ . iter( )
90+ . filter_map( |s| match s {
91+ ass_core:: parser:: ast:: Section :: Styles ( styles) => Some ( styles. len( ) ) ,
92+ _ => None ,
93+ } )
94+ . sum( )
9095 }
91-
96+
9297 eprintln!(
9398 "\n [round-trip stage: {}] {} CONVERSION DIFFERENCES:" ,
9499 STAGE_COMPARE_ASS , $test_file
0 commit comments