feat(ads/seo/release): v1.2.0 with live Google Ads, isolated ad profile, ads.txt, and SEO/AEO/GEO optimization

This commit is contained in:
Yun Chan 2026-09-14 00:39:44 +09:00
parent a88aafa1e5
commit 0e568f1f0a
975 changed files with 130593 additions and 16783 deletions

View file

@ -0,0 +1,50 @@
using System;
using Paca.Core;
using Xunit;
namespace Paca.Tests.Core;
public class AudioChannelDownmixerGateTests
{
[Fact]
public void Gate329_AudioChannelDownmixer_BuildsStandardItuR775Filter()
{
var filter = AudioChannelDownmixer.BuildDownmixFilterArgs(DownmixMode.StandardItuR775);
Assert.Contains("pan=stereo|FL=0.7071*FL+0.5*FC+0.7071*BL|FR=0.7071*FR+0.5*FC+0.7071*BR", filter);
}
[Fact]
public void Gate330_AudioChannelDownmixer_BuildsNightDialogBoostFilter()
{
var filter = AudioChannelDownmixer.BuildDownmixFilterArgs(DownmixMode.NightDialogBoost);
// Center channel (FC) boosted to 1.0, side noise attenuated
Assert.Contains("pan=stereo|FL=0.5*FL+1.0*FC+0.3*BL|FR=0.5*FR+1.0*FC+0.3*BR", filter);
}
[Fact]
public void Gate331_AudioChannelDownmixer_BuildsMonoCompatibilityFilter()
{
var filter = AudioChannelDownmixer.BuildDownmixFilterArgs(DownmixMode.MonoCompatibility);
Assert.Contains("pan=mono|c0=0.5*FL+0.5*FR", filter);
}
[Fact]
public void Gate332_AudioChannelDownmixer_BuildsFullCommandLine_WithVideoCopy()
{
var cmd = AudioChannelDownmixer.BuildDownmixCommandLine(
inputPath: "C:\\movies\\surround51.mp4",
outputPath: "C:\\movies\\stereo_dialog.mp4",
mode: DownmixMode.NightDialogBoost,
copyVideo: true
);
Assert.Contains("-i \"C:\\movies\\surround51.mp4\"", cmd);
Assert.Contains("-c:v copy", cmd);
Assert.Contains("-filter:a \"pan=stereo|FL=0.5*FL+1.0*FC+0.3*BL|FR=0.5*FR+1.0*FC+0.3*BR\"", cmd);
Assert.Contains("-c:a aac -b:a 192k", cmd);
Assert.EndsWith("\"C:\\movies\\stereo_dialog.mp4\" -y", cmd);
}
}