use super::*;
#[cfg(not(feature = "std"))]
use alloc::vec;
#[test]
fn style_to_ass_string() {
let style = Style::default();
let ass_string = style.to_ass_string();
assert_eq!(
ass_string,
"Style: Default,Arial,20,&Hffffff,&H0000ff,&H000000,&H000000,0,0,0,0,100,100,0,0,1,0,0,2,10,10,10,1"
);
}
#[test]
fn style_to_ass_string_custom() {
let style = Style {
name: "Custom",
fontname: "Times New Roman",
fontsize: "24",
primary_colour: "&H00ff00",
bold: "-1",
italic: "1",
scale_x: "95",
scale_y: "105",
alignment: "5",
..Style::default()
};
let ass_string = style.to_ass_string();
assert!(ass_string.contains("Custom,Times New Roman,24"));
assert!(ass_string.contains("&H00ff00"));
assert!(ass_string.contains("-1,1")); assert!(ass_string.contains("95,105")); assert!(ass_string.contains(",5,")); }
#[test]
fn style_to_ass_string_with_format() {
let style = Style {
name: "TestStyle",
fontname: "Arial",
fontsize: "20",
..Style::default()
};
let v4_format = vec![
"Name",
"Fontname",
"Fontsize",
"PrimaryColour",
"SecondaryColour",
"OutlineColour",
"BackColour",
"Bold",
"Italic",
"Underline",
"StrikeOut",
"ScaleX",
"ScaleY",
"Spacing",
"Angle",
"BorderStyle",
"Outline",
"Shadow",
"Alignment",
"MarginL",
"MarginR",
"MarginV",
"Encoding",
];
let v4_string = style.to_ass_string_with_format(&v4_format);
assert_eq!(
v4_string,
"Style: TestStyle,Arial,20,&Hffffff,&H0000ff,&H000000,&H000000,0,0,0,0,100,100,0,0,1,0,0,2,10,10,10,1"
);
let min_format = vec!["Name", "Fontname", "Fontsize"];
let min_string = style.to_ass_string_with_format(&min_format);
assert_eq!(min_string, "Style: TestStyle,Arial,20");
let style_v4pp = Style {
name: "V4++Style",
margin_t: Some("15"),
margin_b: Some("20"),
relative_to: Some("video"),
..Style::default()
};
let v4pp_format = vec![
"Name",
"Fontname",
"Fontsize",
"PrimaryColour",
"SecondaryColour",
"OutlineColour",
"BackColour",
"Bold",
"Italic",
"Underline",
"StrikeOut",
"ScaleX",
"ScaleY",
"Spacing",
"Angle",
"BorderStyle",
"Outline",
"Shadow",
"Alignment",
"MarginL",
"MarginR",
"MarginT",
"MarginB",
"Encoding",
"RelativeTo",
];
let v4pp_string = style_v4pp.to_ass_string_with_format(&v4pp_format);
assert!(v4pp_string.contains("V4++Style"));
assert!(v4pp_string.contains(",15,20,")); assert!(v4pp_string.contains(",video")); }