fix: max at 400 is updated to unlimited

For radarr also applies to preferred of 395
recyclarr
Robert Dailey 3 years ago
parent b48488fdc7
commit 5a9a517534

@ -1,7 +1,6 @@
using FluentAssertions;
using NUnit.Framework;
using Trash.Radarr.QualityDefinition;
using Trash.Sonarr.QualityDefinition;
namespace Trash.Tests.Radarr.QualityDefinition
{
@ -9,24 +8,25 @@ namespace Trash.Tests.Radarr.QualityDefinition
[Parallelizable(ParallelScope.All)]
public class RadarrQualityDataTest
{
private static readonly object[] ToleranceTestValues =
private static readonly object[] PreferredTestValues =
{
new object[] {-SonarrQualityData.Tolerance - 0.01m, true},
new object[] {-SonarrQualityData.Tolerance, false},
new object[] {-SonarrQualityData.Tolerance / 2, false},
new object[] {SonarrQualityData.Tolerance / 2, false},
new object[] {SonarrQualityData.Tolerance, false},
new object[] {SonarrQualityData.Tolerance + 0.01m, true}
new object?[] {100m, 100m, false},
new object?[] {100m, 101m, true},
new object?[] {100m, 98m, true},
new object?[] {100m, null, true},
new object?[] {RadarrQualityData.PreferredUnlimitedThreshold, null, false},
new object?[] {RadarrQualityData.PreferredUnlimitedThreshold - 1, null, true},
new object?[]
{RadarrQualityData.PreferredUnlimitedThreshold, RadarrQualityData.PreferredUnlimitedThreshold, true}
};
[TestCaseSource(nameof(ToleranceTestValues))]
public void PreferredOutsideTolerance_WithVariousTolerance_ReturnsExpectedResult(decimal offset,
bool expectedResult)
[TestCaseSource(nameof(PreferredTestValues))]
public void PreferredDifferent_WithVariousValues_ReturnsExpectedResult(decimal guideValue, decimal? radarrValue,
bool isDifferent)
{
const decimal testVal = 100;
var data = new RadarrQualityData {Preferred = testVal};
data.PreferredOutsideTolerance(testVal + offset)
.Should().Be(expectedResult);
var data = new RadarrQualityData {Preferred = guideValue};
data.IsPreferredDifferent(radarrValue)
.Should().Be(isDifferent);
}
private static readonly object[] InterpolatedPreferredTestParams =

@ -8,32 +8,40 @@ namespace Trash.Tests.Sonarr.QualityDefinition
[Parallelizable(ParallelScope.All)]
public class SonarrQualityDataTest
{
private static readonly object[] ToleranceTestValues =
private static readonly object[] MaxTestValues =
{
new object[] {-SonarrQualityData.Tolerance - 0.01m, true},
new object[] {-SonarrQualityData.Tolerance, false},
new object[] {-SonarrQualityData.Tolerance / 2, false},
new object[] {SonarrQualityData.Tolerance / 2, false},
new object[] {SonarrQualityData.Tolerance, false},
new object[] {SonarrQualityData.Tolerance + 0.01m, true}
new object?[] {100m, 100m, false},
new object?[] {100m, 101m, true},
new object?[] {100m, 98m, true},
new object?[] {100m, null, true},
new object?[] {SonarrQualityData.MaxUnlimitedThreshold, null, false},
new object?[] {SonarrQualityData.MaxUnlimitedThreshold - 1, null, true},
new object?[] {SonarrQualityData.MaxUnlimitedThreshold, SonarrQualityData.MaxUnlimitedThreshold, true}
};
[TestCaseSource(nameof(ToleranceTestValues))]
public void MaxOutsideTolerance_WithVariousTolerance_ReturnsExpectedResult(decimal offset, bool expectedResult)
private static readonly object[] MinTestValues =
{
const decimal testVal = 100;
var data = new SonarrQualityData {Max = testVal};
data.MaxOutsideTolerance(testVal + offset)
.Should().Be(expectedResult);
new object?[] {0m, 0m, false},
new object?[] {0m, -1m, true},
new object?[] {0m, 1m, true}
};
[TestCaseSource(nameof(MaxTestValues))]
public void MaxDifferent_WithVariousValues_ReturnsExpectedResult(decimal guideValue, decimal? radarrValue,
bool isDifferent)
{
var data = new SonarrQualityData {Max = guideValue};
data.IsMaxDifferent(radarrValue)
.Should().Be(isDifferent);
}
[TestCaseSource(nameof(ToleranceTestValues))]
public void MinOutsideTolerance_WithVariousTolerance_ReturnsExpectedResult(decimal offset, bool expectedResult)
[TestCaseSource(nameof(MinTestValues))]
public void MinDifferent_WithVariousValues_ReturnsExpectedResult(decimal guideValue, decimal radarrValue,
bool isDifferent)
{
const decimal testVal = 0;
var data = new SonarrQualityData {Min = testVal};
data.MinOutsideTolerance(testVal + offset)
.Should().Be(expectedResult);
var data = new SonarrQualityData {Min = guideValue};
data.IsMinDifferent(radarrValue)
.Should().Be(isDifferent);
}
[Test]

@ -17,7 +17,11 @@ namespace Trash.Radarr.QualityDefinition
return Math.Round(Min + (cappedMax - Min) * ratio, 1);
}
public bool PreferredOutsideTolerance(decimal? other) =>
Math.Abs((other ?? PreferredUnlimitedThreshold) - Preferred) > Tolerance;
public bool IsPreferredDifferent(decimal? serviceValue)
{
return serviceValue == null
? PreferredUnlimitedThreshold != Preferred
: serviceValue != Preferred || PreferredUnlimitedThreshold == Preferred;
}
}
}

@ -82,9 +82,9 @@ namespace Trash.Radarr.QualityDefinition
{
static bool QualityIsDifferent(RadarrQualityDefinitionItem a, RadarrQualityData b)
{
return b.MinOutsideTolerance(a.MinSize) ||
b.MaxOutsideTolerance(a.MaxSize) ||
b.PreferredOutsideTolerance(a.PreferredSize);
return b.IsMinDifferent(a.MinSize) ||
b.IsMaxDifferent(a.MaxSize) ||
b.IsPreferredDifferent(a.PreferredSize);
}
var newQuality = new List<RadarrQualityDefinitionItem>();

@ -1,12 +1,10 @@
using System;
using System.Globalization;
using System.Globalization;
using System.Text;
namespace Trash.Sonarr.QualityDefinition
{
public class SonarrQualityData
{
public const decimal Tolerance = 0.1m;
public const decimal MaxUnlimitedThreshold = 400;
public string Name { get; set; } = "";
@ -30,10 +28,13 @@ namespace Trash.Sonarr.QualityDefinition
return builder.ToString();
}
public bool MinOutsideTolerance(decimal other) =>
Math.Abs(other - Min) > Tolerance;
public bool IsMinDifferent(decimal serviceValue) => serviceValue != Min;
public bool MaxOutsideTolerance(decimal? other) =>
Math.Abs((other ?? MaxUnlimitedThreshold) - Max) > Tolerance;
public bool IsMaxDifferent(decimal? serviceValue)
{
return serviceValue == null
? MaxUnlimitedThreshold != Max
: serviceValue != Max || MaxUnlimitedThreshold == Max;
}
}
}

@ -116,8 +116,8 @@ namespace Trash.Sonarr.QualityDefinition
{
static bool QualityIsDifferent(SonarrQualityDefinitionItem a, SonarrQualityData b)
{
return b.MinOutsideTolerance(a.MinSize) ||
b.MaxOutsideTolerance(a.MaxSize);
return b.IsMinDifferent(a.MinSize) ||
b.IsMaxDifferent(a.MaxSize);
}
var newQuality = new List<SonarrQualityDefinitionItem>();

Loading…
Cancel
Save