< Summary

Information
Class: MRA.Extensions.NumberExtensions
Assembly: MRA.Extensions
File(s): D:\a\MiguelRomerART\MiguelRomerART\Shared\MRA.Extensions\NumberExtensions.cs
Line coverage
100%
Covered lines: 17
Uncovered lines: 0
Coverable lines: 17
Total lines: 59
Line coverage: 100%
Branch coverage
100%
Covered branches: 10
Total branches: 10
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
HumanFormat(...)100%44100%
GetHumanTime(...)100%66100%

File(s)

D:\a\MiguelRomerART\MiguelRomerART\Shared\MRA.Extensions\NumberExtensions.cs

#LineLine coverage
 1using System.Globalization;
 2
 3namespace MRA.Extensions;
 4
 5public static class NumberExtensions
 6{
 7    public const string SUFFIX_HUMAN_THOUSANDS = "k";
 8    public const string SUFFIX_HUMAN_MILLIONS = "M";
 9
 10    public const string TIME_SUFFIX_HOUR = "h";
 11    public const string TIME_SUFFIX_MIN = "min";
 12    public const string TIME_SUFFIX_NOT_AVAILABLE = "N/A";
 13
 14    public static string HumanFormat(this long number)
 15    {
 16        const long ONE_MILLION = 1000000;
 17        const long ONE_THOUSAND = 1000;
 18
 319        if (number < ONE_THOUSAND)
 20        {
 121            return number.ToString(CultureInfo.InvariantCulture);
 22        }
 223        else if (number < ONE_MILLION)
 24        {
 125            double valorFormateado = Math.Round((double)number / ONE_THOUSAND, 1);
 126            return $"{valorFormateado.ToString("F1", CultureInfo.InvariantCulture)} {SUFFIX_HUMAN_THOUSANDS}";
 27        }
 28        else
 29        {
 130            double valorFormateado = Math.Round((double)number / ONE_MILLION, 1);
 131            return $"{valorFormateado.ToString("F1", CultureInfo.InvariantCulture)} {SUFFIX_HUMAN_MILLIONS}";
 32        }
 33    }
 34
 35    public static string GetHumanTime(this int Time)
 36    {
 237        if (Time > 0)
 38        {
 139            int hours = Time / 60;
 140            int remainingMinutes = Time % 60;
 141            var tokens = new List<string>();
 42
 143            if (hours > 0)
 44            {
 145                tokens.Add($"{hours}{TIME_SUFFIX_HOUR}");
 46            }
 147            if (remainingMinutes > 0)
 48            {
 149                tokens.Add($"{remainingMinutes}{TIME_SUFFIX_MIN}");
 50            }
 51
 152            return string.Join(" ", tokens);
 53        }
 54        else
 55        {
 156            return TIME_SUFFIX_NOT_AVAILABLE;
 57        }
 58    }
 59}