/ GUNRPG.Tests / CombatProgressBarHelperTests.cs
CombatProgressBarHelperTests.cs
 1  using GUNRPG.WebClient.Helpers;
 2  
 3  namespace GUNRPG.Tests;
 4  
 5  public sealed class CombatProgressBarHelperTests
 6  {
 7      [Theory]
 8      [InlineData(100, 100, 100)]
 9      [InlineData(50, 100, 50)]
10      [InlineData(12, 0, 0)]
11      [InlineData(-5, 100, 0)]
12      [InlineData(250, 100, 100)]
13      [InlineData(double.NaN, 100, 0)]
14      [InlineData(50, double.NaN, 0)]
15      [InlineData(24.6, 50, 49)]
16      public void GetPercent_ClampsAndRoundsExpectedValues(double current, double maximum, int expected)
17      {
18          var percent = CombatProgressBarHelper.GetPercent(current, maximum);
19  
20          Assert.Equal(expected, percent);
21      }
22  
23      [Theory]
24      [InlineData(25.2, 100, 25)]
25      [InlineData(25.5, 100, 26)]
26      [InlineData(-10, 100, 0)]
27      [InlineData(120, 100, 100)]
28      [InlineData(double.NaN, 100, null)]
29      [InlineData(10, double.NaN, null)]
30      [InlineData(10, 0, null)]
31      public void GetAriaValue_ReturnsClampedRoundedValueOrNull(double current, double maximum, int? expected)
32      {
33          var value = CombatProgressBarHelper.GetAriaValue(current, maximum);
34  
35          Assert.Equal(expected, value);
36      }
37  
38      [Theory]
39      [InlineData(100, 100)]
40      [InlineData(100.5, 101)]
41      [InlineData(0, null)]
42      [InlineData(-10, null)]
43      [InlineData(double.NaN, null)]
44      public void GetAriaMax_ReturnsRoundedPositiveMaximumOrNull(double maximum, int? expected)
45      {
46          var value = CombatProgressBarHelper.GetAriaMax(maximum);
47  
48          Assert.Equal(expected, value);
49      }
50  }