예제 #1
0
 public void MultipleAdd()
 {
     LongRangeCollection lrc = new LongRangeCollection(0, 13123123);
     lrc.AddRange(150, 200);
     lrc.AddRange(0, 100);
     Assert.AreEqual(0, lrc.RangeSet.ElementAt(0).Start);
     Assert.AreEqual(100, lrc.RangeSet.ElementAt(0).End);
 }
예제 #2
0
 public void BisectMultiple()
 {
     LongRangeCollection lrc = new LongRangeCollection(0, 500000);
     lrc.AddRange(50, 100);
     lrc.AddRange(150, 200);
     Assert.AreEqual(0, lrc.Bisect(25));
     Assert.AreEqual(1, lrc.Bisect(120));
     Assert.AreEqual(2, lrc.Bisect(300));
 }
예제 #3
0
 public void MergeConsequent()
 {
     LongRangeCollection lrc = new LongRangeCollection(0, 10000);
     lrc.AddRange(50, 100);
     lrc.AddRange(100, 200);
     Assert.AreEqual(lrc.RangeSet.Count, 1);
     Assert.AreEqual(lrc.RangeSet.ElementAt(0).Start, 50);
     Assert.AreEqual(lrc.RangeSet.ElementAt(0).End, 200);
 }
예제 #4
0
 public void MergeAll()
 {
     LongRangeCollection lrc = new LongRangeCollection(0, 34243);
     lrc.AddRange(150, 200);
     lrc.AddRange(0, 100);
     lrc.AddRange(80, 170);
     lrc.AddRange(500, 1403);
     lrc.AddRange(0, 2000);
     Assert.AreEqual(lrc.RangeSet.Count, 1);
     Assert.AreEqual(lrc.RangeSet.ElementAt(0).Start, 0);
     Assert.AreEqual(lrc.RangeSet.ElementAt(0).End, 2000);
 }
예제 #5
0
        public LongRangeCollection Clone()
        {
            LongRangeCollection lrc = new LongRangeCollection(this.Min, this.Max);

            lock (this.RangeSet)
            {
                foreach (LongRange lr in this.RangeSet)
                {
                    lrc.AddRange(lr.Start, lr.End);
                }
            }
            return(lrc);
        }
예제 #6
0
 public void Overlap()
 {
     LongRangeCollection lrc = new LongRangeCollection(0, 123213123);
     lrc.AddRange(150, 200);
     lrc.AddRange(0, 100);
     lrc.AddRange(80, 170);
     lrc.AddRange(500, 1403);
     lrc.AddRange(1000, 1500);
     Assert.AreEqual(2, lrc.RangeSet.Count);
     Assert.AreEqual(0, lrc.RangeSet.ElementAt(0).Start);
     Assert.AreEqual(200, lrc.RangeSet.ElementAt(0).End);
     Assert.AreEqual(500, lrc.RangeSet.ElementAt(1).Start);
     Assert.AreEqual(1500, lrc.RangeSet.ElementAt(1).End);
 }
예제 #7
0
 public LongRangeCollection Clone()
 {
     LongRangeCollection lrc = new LongRangeCollection(this.Min, this.Max);
     lock (this.RangeSet)
     {
         foreach (LongRange lr in this.RangeSet)
             lrc.AddRange(lr.Start, lr.End);
     }
     return lrc;
 }
예제 #8
0
 public LocalFileCache(PutioFile file)
 {
     this.PutioFile       = file;
     this.RangeCollection = new LongRangeCollection(0, this.PutioFile.Size);
 }
예제 #9
0
 public void BisectSingle()
 {
     LongRangeCollection lrc = new LongRangeCollection(0, 500);
     lrc.AddRange(0, 100);
     Assert.AreEqual(1, lrc.Bisect(120));
 }
예제 #10
0
 public void BisectEmpty()
 {
     LongRangeCollection lrc = new LongRangeCollection(0, 500);
     Assert.AreEqual(0, lrc.Bisect(120));
 }
예제 #11
0
 public void SingleAdd()
 {
     LongRangeCollection lrc = new LongRangeCollection(0, 5454545);
     lrc.AddRange(0, 100);
     Assert.AreEqual(0, lrc.RangeSet.ElementAt(0).Start);
     Assert.AreEqual(100, lrc.RangeSet.ElementAt(0).End);
 }
예제 #12
0
 public LocalFileCache(PutioFile file)
 {
     this.PutioFile = file;
     this.RangeCollection = new LongRangeCollection(0, this.PutioFile.Size);
 }