public void Equals_UseSameAndDifferentRanges_EqualOrNotEqualNoExceptions()
        {
            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));
            var range7 = new RangeHeaderValue(1, 2);

            range7.Unit = "other";

            Assert.False(range1.Equals(null), "bytes=1-2 vs. <null>");
            Assert.True(range1.Equals(range2), "bytes=1-2 vs. BYTES=1-2");
            Assert.False(range1.Equals(range3), "bytes=1-2 vs. bytes=1-");
            Assert.False(range1.Equals(range4), "bytes=1-2 vs. bytes=-2");
            Assert.False(range1.Equals(range5), "bytes=1-2 vs. bytes=1-2,3-4");
            Assert.True(range5.Equals(range6), "bytes=1-2,3-4 vs. bytes=3-4,1-2");
            Assert.False(range1.Equals(range7), "bytes=1-2 vs. other=1-2");
        }