< Summary

Information
Class: /home/runner/work/SharpMathLib/SharpMathLib/SharpFractions/StringRepresentation.cs
Assembly: Default
File(s): /home/runner/work/SharpMathLib/SharpMathLib/SharpFractions/StringRepresentation.cs
Line coverage
100%
Covered lines: 17
Uncovered lines: 0
Coverable lines: 17
Total lines: 33
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

File(s)

/home/runner/work/SharpMathLib/SharpMathLib/SharpFractions/StringRepresentation.cs

#LineLine coverage
 1namespace SharpFractions;
 2
 3public readonly partial struct Fraction : IComparable<Fraction>, IEquatable<Fraction>
 4{
 5    public override string ToString()
 16    {
 17        return $"{Numerator}/{Denominator}";
 18    }
 9
 10    public static bool TryParse(string toParse, out Fraction frac)
 611    {
 712        if (toParse == null) throw new ArgumentNullException(nameof(toParse));
 13
 514        frac = Zero;
 15
 5516        if (toParse.Count(c => c == '/') != 1) return false;
 17
 418        string[] numDen = toParse.Split('/');
 19
 420        string numerator = numDen[0];
 421        string denominator = numDen[1];
 22
 523        if (numerator.Length == 0 || denominator.Length == 0) return false;
 24
 325        bool successNumParse = BigInteger.TryParse(numerator, out BigInteger num);
 326        bool successDenParse = BigInteger.TryParse(denominator, out BigInteger den);
 27
 428        if (!(successNumParse && successDenParse)) return false;
 29
 230        frac = new(num, den);
 231        return true;
 532    }
 33}