< Summary

Information
Class: /home/runner/work/SharpMathLib/SharpMathLib/SharpFractions/Comparison.cs
Assembly: Default
File(s): /home/runner/work/SharpMathLib/SharpMathLib/SharpFractions/Comparison.cs
Line coverage
95%
Covered lines: 19
Uncovered lines: 1
Coverable lines: 20
Total lines: 37
Line coverage: 95%
Branch coverage
80%
Covered branches: 8
Total branches: 10
Branch coverage: 80%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

File(s)

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

#LineLine coverage
 1namespace SharpFractions;
 2
 3public readonly partial struct Fraction : IComparable<Fraction>, IEquatable<Fraction>
 4{
 15    public static bool operator ==  (Fraction frac1, Fraction frac2) => Compare(frac1, frac2) == 0;
 16    public static bool operator !=  (Fraction frac1, Fraction frac2) => Compare(frac1, frac2) != 0;
 17    public static bool operator <   (Fraction frac1, Fraction frac2) => Compare(frac1, frac2) == -1;
 18    public static bool operator >   (Fraction frac1, Fraction frac2) => Compare(frac1, frac2) == 1;
 19    public static bool operator <=  (Fraction frac1, Fraction frac2) => Compare(frac1, frac2) != 1;
 110    public static bool operator >=  (Fraction frac1, Fraction frac2) => Compare(frac1, frac2) != -1;
 11
 12    public override bool Equals([NotNullWhen(true)] object? obj)
 213    {
 314        if (obj is null) return false;
 215        if (obj is not Fraction frac) return false;
 016        return Compare(this, frac) == 0;
 217    }
 18
 19    /// <summary>
 20    /// All value comparisons call this method.
 21    /// </summary>
 22    /// <returns>
 23    /// 1 if frac1 > frac2, -1 if frac2 > frac1, 0 if equal
 24    /// </returns>
 25    public static int Compare(Fraction frac1, Fraction frac2)
 3026    {
 3027        (frac1, frac2) = PutOnCommonDenominator(frac1, frac2);
 28
 3629        if (frac1.Numerator > frac2.Numerator) return 1;
 2530        if (frac1.Numerator < frac2.Numerator) return -1;
 2331        return 0;
 3032    }
 33
 134    public int CompareTo(Fraction other) => Compare(this, other);
 2135    public bool Equals(Fraction other) => Compare(this, other) == 0;
 236    public override int GetHashCode() => (Numerator, Denominator).GetHashCode();
 37}