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); } } }