public void GetHashCode_UseSameAndDifferentRanges_SameOrDifferentHashCodes()
    {
        var range1 = new RangeHeaderValue(1, 2);
        var range2 = new RangeHeaderValue(1, 2);

        range2.Unit = "BYTES";
        var range3 = new RangeHeaderValue(1, null);
        var range4 = new RangeHeaderValue(null, 2);
        var range5 = new RangeHeaderValue();

        range5.Ranges.Add(new RangeItemHeaderValue(1, 2));
        range5.Ranges.Add(new RangeItemHeaderValue(3, 4));
        var range6 = new RangeHeaderValue();

        range6.Ranges.Add(new RangeItemHeaderValue(3, 4)); // reverse order of range5
        range6.Ranges.Add(new RangeItemHeaderValue(1, 2));

        Assert.Equal(range1.GetHashCode(), range2.GetHashCode());
        Assert.NotEqual(range1.GetHashCode(), range3.GetHashCode());
        Assert.NotEqual(range1.GetHashCode(), range4.GetHashCode());
        Assert.NotEqual(range1.GetHashCode(), range5.GetHashCode());
        Assert.Equal(range5.GetHashCode(), range6.GetHashCode());
    }