Skip to content

Commit

Permalink
Added some extra safety in the float handling code
Browse files Browse the repository at this point in the history
  • Loading branch information
majora2007 committed Nov 26, 2024
1 parent 9a00ade commit b2ef89c
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 7 deletions.
11 changes: 11 additions & 0 deletions API.Tests/Parsing/ParsingTests.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.Globalization;
using System.Linq;
using System.Runtime.InteropServices;
using Xunit;
using static API.Services.Tasks.Scanner.Parser.Parser;

Expand All @@ -15,6 +16,16 @@ public void ShouldWork()
Assert.Equal(6.5f, a);
}

// [Theory]
// [InlineData("de-DE")]
// [InlineData("en-US")]
// public void ShouldParse(string culture)
// {
// var s = 6.5f + "";
// var a = float.Parse(s, CultureInfo.CreateSpecificCulture(culture));
// Assert.Equal(6.5f, a);
// }

[Theory]
[InlineData("Joe Shmo, Green Blue", "Joe Shmo, Green Blue")]
[InlineData("Shmo, Joe", "Shmo, Joe")]
Expand Down
6 changes: 3 additions & 3 deletions API/Entities/Chapter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -205,14 +205,14 @@ public string GetNumberTitle()

if (MinNumber.Is(0f) && !float.TryParse(Range, CultureInfo.InvariantCulture, out _))
{
return $"{Range}";
return $"{Range.ToString(CultureInfo.InvariantCulture)}";
}

return $"{MinNumber}";
return $"{MinNumber.ToString(CultureInfo.InvariantCulture)}";

}

return $"{MinNumber}-{MaxNumber}";
return $"{MinNumber.ToString(CultureInfo.InvariantCulture)}-{MaxNumber.ToString(CultureInfo.InvariantCulture)}";
}
catch (Exception)
{
Expand Down
5 changes: 3 additions & 2 deletions API/Entities/Volume.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,12 @@ public class Volume : IEntityDate, IHasReadTimeEstimate, IHasCoverImage
/// <returns></returns>
public string GetNumberTitle()
{
if (MinNumber.Is(MaxNumber))
if (MinNumber.Equals(MaxNumber))
{
return MinNumber.ToString(CultureInfo.InvariantCulture);
}
return $"{MinNumber}-{MaxNumber}";

return $"{MinNumber.ToString(CultureInfo.InvariantCulture)}-{MaxNumber.ToString(CultureInfo.InvariantCulture)}";
}

public void ResetColorScape()
Expand Down
4 changes: 2 additions & 2 deletions API/Services/Tasks/Scanner/ParseScannedFiles.cs
Original file line number Diff line number Diff line change
Expand Up @@ -818,11 +818,11 @@ private static void UpdateSortOrder(ConcurrentDictionary<ParsedSeries, List<Pars
chapter.IssueOrder = counter;

// Increment for next chapter (unless the next has a similar value, then add 0.1)
if (!string.IsNullOrEmpty(prevIssue) && float.TryParse(prevIssue, CultureInfo.InvariantCulture, out var prevIssueFloat) && parsedChapter.Is(prevIssueFloat))
if (!string.IsNullOrEmpty(prevIssue) && float.TryParse(prevIssue, NumberStyles.Any, CultureInfo.InvariantCulture, out var prevIssueFloat) && parsedChapter.Is(prevIssueFloat))
{
counter += 0.1f; // bump if same value as the previous issue
}
prevIssue = $"{parsedChapter}";
prevIssue = $"{parsedChapter.ToString(CultureInfo.InvariantCulture)}";
}
else
{
Expand Down

0 comments on commit b2ef89c

Please sign in to comment.