releases/tests/Paca.Tests/Core/AudioEqualizerProfileManagerGateTests.cs

62 lines
No EOL
2.4 KiB
C#

using System;
using System.Linq;
using Paca.Mobile.Core;
using Xunit;
namespace Paca.Tests.Core;
public class AudioEqualizerProfileManagerGateTests
{
[Fact]
public void Gate417_AudioEqualizerProfileManager_ProvidesStandardPresets()
{
var bass = AudioEqualizerProfileManager.GetPreset(EqualizerPresetType.BassBoost);
Assert.True(bass.Gains[0] > 0); // 31 Hz
Assert.True(bass.Gains[1] > 0); // 62 Hz
var podcast = AudioEqualizerProfileManager.GetPreset(EqualizerPresetType.PodcastVoice);
Assert.True(podcast.Gains[0] < 0); // cut sub-bass
Assert.True(podcast.Gains[5] > 0); // 1 kHz boost
}
[Fact]
public void Gate418_AudioEqualizerProfileManager_ClampsGains_WithinSafeLimits()
{
var rawGains = new double[] { -30.0, 50.0, 0, 0, 0, 0, 0, 0, 0, 0 };
var profile = AudioEqualizerProfileManager.CreateCustomProfile("Test", rawGains);
Assert.Equal(-15.0, profile.Gains[0]);
Assert.Equal(15.0, profile.Gains[1]);
}
[Fact]
public void Gate419_AudioEqualizerProfileManager_GeneratesFfmpegEqualizerFilter_Correctly()
{
// Flat preset (all 0s) returns "anull"
var flat = AudioEqualizerProfileManager.GetPreset(EqualizerPresetType.Flat);
var flatFilter = AudioEqualizerProfileManager.BuildFfmpegFilter(flat);
Assert.Equal("anull", flatFilter);
// Bass boost generates equalizer filters only for non-zero bands
var bass = AudioEqualizerProfileManager.GetPreset(EqualizerPresetType.BassBoost);
var bassFilter = AudioEqualizerProfileManager.BuildFfmpegFilter(bass);
Assert.Contains("equalizer=f=31:width_type=o:width=1:g=", bassFilter);
Assert.Contains("equalizer=f=62:width_type=o:width=1:g=", bassFilter);
}
[Fact]
public void Gate420_AudioEqualizerProfileManager_SerializesAndDeserializes_CustomProfileJson()
{
var original = AudioEqualizerProfileManager.GetPreset(EqualizerPresetType.VocalEnhance);
var json = AudioEqualizerProfileManager.ToJson(original);
var restored = AudioEqualizerProfileManager.FromJson(json);
Assert.NotNull(restored);
Assert.Equal(original.Name, restored.Name);
Assert.Equal(original.Gains.Length, restored.Gains.Length);
for (int i = 0; i < original.Gains.Length; i++)
{
Assert.Equal(original.Gains[i], restored.Gains[i], 2);
}
}
}