Handle "Infinity" values for ReplayGain. Fix #2862

This commit is contained in:
Deluan
2024-02-16 18:44:58 -05:00
parent 0b2cf30096
commit 9a051967f6
3 changed files with 36 additions and 8 deletions
@@ -101,4 +101,32 @@ var _ = Describe("Tags", func() {
Expect(t.Bpm()).To(Equal(142))
})
})
Describe("ReplayGain", func() {
DescribeTable("getGainValue",
func(tag string, expected float64) {
md := &Tags{}
md.Tags = map[string][]string{"replaygain_track_gain": {tag}}
Expect(md.RGTrackGain()).To(Equal(expected))
},
Entry("0", "0", 0.0),
Entry("1.2dB", "1.2dB", 1.2),
Entry("Infinity", "Infinity", 0.0),
Entry("Invalid value", "INVALID VALUE", 0.0),
)
DescribeTable("getPeakValue",
func(tag string, expected float64) {
md := &Tags{}
md.Tags = map[string][]string{"replaygain_track_peak": {tag}}
Expect(md.RGTrackPeak()).To(Equal(expected))
},
Entry("0", "0", 0.0),
Entry("0.5", "0.5", 0.5),
Entry("Invalid dB suffix", "0.7dB", 1.0),
Entry("Infinity", "Infinity", 1.0),
Entry("Invalid value", "INVALID VALUE", 1.0),
)
})
})