using System; using Paca.Core; using Xunit; namespace Paca.Tests.Core; public class VideoAspectAutoCropperGateTests { [Fact] public void Gate337_VideoAspectAutoCropper_BuildsCenterCropFilter() { var filter = VideoAspectAutoCropper.BuildReframingFilterArgs(ReframingMode.CenterCrop, 1080, 1920); Assert.Contains("crop=ih*9/16:ih", filter); Assert.Contains("scale=1080:1920", filter); } [Fact] public void Gate338_VideoAspectAutoCropper_BuildsBlurredBackgroundFilter() { var filter = VideoAspectAutoCropper.BuildReframingFilterArgs(ReframingMode.BlurredBackground, 1080, 1920); Assert.Contains("split[bg][fg]", filter); Assert.Contains("boxblur", filter); Assert.Contains("overlay=(W-w)/2:(H-h)/2", filter); } [Fact] public void Gate339_VideoAspectAutoCropper_BuildsBlackPadFilter() { var filter = VideoAspectAutoCropper.BuildReframingFilterArgs(ReframingMode.BlackPad, 1080, 1920); Assert.Contains("pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black", filter); } [Fact] public void Gate340_VideoAspectAutoCropper_BuildsFullCommandLine_WithAudioCopy() { var cmd = VideoAspectAutoCropper.BuildReframingCommandLine( inputPath: "C:\\videos\\horizontal.mp4", outputPath: "C:\\videos\\vertical_shorts.mp4", mode: ReframingMode.CenterCrop, targetWidth: 1080, targetHeight: 1920 ); Assert.Contains("-i \"C:\\videos\\horizontal.mp4\"", cmd); Assert.Contains("-c:v libx264 -crf 20 -preset fast", cmd); Assert.Contains("-c:a copy", cmd); Assert.EndsWith("\"C:\\videos\\vertical_shorts.mp4\" -y", cmd); } }