Skip to content

Commit 82cda17

Browse files
committed
refactor tests
1 parent 86e3438 commit 82cda17

File tree

5 files changed

+33
-26
lines changed

5 files changed

+33
-26
lines changed

src/main.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@ use std::fs::File;
33
use std::io::Write;
44
use std::path::Path;
55
#[cfg(test)]
6-
mod ass_test_helpers;
7-
#[cfg(test)]
8-
mod test_runner;
9-
#[cfg(test)]
106
mod tests;
117

128
#[derive(Parser)]
@@ -76,7 +72,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
7672
save,
7773
output,
7874
} => {
79-
println!("Parsing file: {}", input);
75+
eprintln!("Parsing file: {input}");
8076

8177
let file = std::fs::read_to_string(&input)?;
8278

src/tests.rs renamed to src/tests/ass.rs

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,22 @@
1-
use crate::ass_test_helpers::{compare_ass_files, parse_ass};
1+
use super::ass_test_helpers::{compare_ass_files, parse_ass};
22
use 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-
103
const STAGE_PARSE_SRV3: &str = "parse-srv3";
114
const STAGE_CONVERT_TO_ASS: &str = "srv3-to-ass";
125
const STAGE_PARSE_EXPECTED_ASS: &str = "parse-expected-ass";
136
const STAGE_PARSE_ACTUAL_ASS: &str = "parse-actual-ass";
147
const 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
1815
macro_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

src/tests/mod.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
mod test_runner;
3+
mod ass_test_helpers;
4+
mod ass;
5+
6+
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::ass_test_helpers::{compare_ass_files, parse_ass};
1+
use super::ass_test_helpers::{compare_ass_files, parse_ass};
22
use srv3_ttml::TimedText;
33
use std::fs::{self, File};
44
use std::io::Write;

0 commit comments

Comments
 (0)