public void Test_RangeSet_Insert_Partially_Overlapping() { var cola = new ColaRangeSet <int>(); Assert.That(cola.Count, Is.EqualTo(0)); cola.Mark(0, 1); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(1)); cola.Mark(0, 2); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(1)); cola.Mark(1, 3); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(1)); cola.Mark(-1, 2); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(1)); Console.WriteLine("Result = { " + String.Join(", ", cola) + " }"); Console.WriteLine("Bounds = " + cola.Bounds); }
public void Test_RangeSet_Insert_That_Join_Two_Ranges() { var cola = new ColaRangeSet <int>(); cola.Mark(0, 1); cola.Mark(2, 3); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(2)); cola.Mark(1, 2); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(1)); Console.WriteLine("Result = { " + String.Join(", ", cola) + " }"); Console.WriteLine("Bounds = " + cola.Bounds); }
public void Test_RangeSet_Insert_Completly_Overlapping() { var cola = new ColaRangeSet<int>(); cola.Mark(1, 2); cola.Mark(4, 5); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(2)); Assert.That(cola.Bounds.Begin, Is.EqualTo(1)); Assert.That(cola.Bounds.End, Is.EqualTo(5)); // overlaps the first range completely cola.Mark(0, 3); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(2)); Assert.That(cola.Bounds.Begin, Is.EqualTo(0)); Assert.That(cola.Bounds.End, Is.EqualTo(5)); Console.WriteLine("Result = { " + String.Join(", ", cola) + " }"); Console.WriteLine("Bounds = " + cola.Bounds); }
public void Test_RangeSet_Insert_Completly_Overlapping() { var cola = new ColaRangeSet <int>(); cola.Mark(1, 2); cola.Mark(4, 5); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(2)); Assert.That(cola.Bounds.Begin, Is.EqualTo(1)); Assert.That(cola.Bounds.End, Is.EqualTo(5)); // overlaps the first range completely cola.Mark(0, 3); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(2)); Assert.That(cola.Bounds.Begin, Is.EqualTo(0)); Assert.That(cola.Bounds.End, Is.EqualTo(5)); Console.WriteLine("Result = { " + String.Join(", ", cola) + " }"); Console.WriteLine("Bounds = " + cola.Bounds); }
public void Test_RangeSet_Insert_That_Replace_All_Ranges() { var cola = new ColaRangeSet <int>(); cola.Mark(0, 1); cola.Mark(2, 3); cola.Mark(4, 5); cola.Mark(6, 7); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(4)); Assert.That(cola.Bounds.Begin, Is.EqualTo(0)); Assert.That(cola.Bounds.End, Is.EqualTo(7)); cola.Mark(-1, 10); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(1)); Assert.That(cola.Bounds.Begin, Is.EqualTo(-1)); Assert.That(cola.Bounds.End, Is.EqualTo(10)); Console.WriteLine("Result = { " + String.Join(", ", cola) + " }"); Console.WriteLine("Bounds = " + cola.Bounds); }
public void Test_RangeSet_Insert_Non_Overlapping() { var cola = new ColaRangeSet<int>(); Assert.That(cola.Count, Is.EqualTo(0)); cola.Mark(0, 1); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(1)); cola.Mark(2, 3); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(2)); cola.Mark(4, 5); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(3)); Assert.That(cola.Bounds.Begin, Is.EqualTo(0)); Assert.That(cola.Bounds.End, Is.EqualTo(5)); Console.WriteLine("Result = { " + String.Join(", ", cola) + " }"); Console.WriteLine("Bounds = " + cola.Bounds); }
public void Test_RangeSet_Insert_Partially_Overlapping() { var cola = new ColaRangeSet<int>(); Assert.That(cola.Count, Is.EqualTo(0)); cola.Mark(0, 1); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(1)); cola.Mark(0, 2); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(1)); cola.Mark(1, 3); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(1)); cola.Mark(-1, 2); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(1)); Console.WriteLine("Result = { " + String.Join(", ", cola) + " }"); Console.WriteLine("Bounds = " + cola.Bounds); }
public void Test_RangeSet_Insert_Non_Overlapping() { var cola = new ColaRangeSet <int>(); Assert.That(cola.Count, Is.EqualTo(0)); cola.Mark(0, 1); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(1)); cola.Mark(2, 3); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(2)); cola.Mark(4, 5); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(3)); Assert.That(cola.Bounds.Begin, Is.EqualTo(0)); Assert.That(cola.Bounds.End, Is.EqualTo(5)); Console.WriteLine("Result = { " + String.Join(", ", cola) + " }"); Console.WriteLine("Bounds = " + cola.Bounds); }
/// <summary>Adds a range to teh clear list of this transaction</summary> /// <remarks>Must be called with m_lock taken</remarks> private void AddClearCommand_NeedsLocking(FdbKeyRange range) { // merge the cleared range with the others m_clears.Mark(range.Begin, range.End); // remove all writes that where in this range var keys = m_writes.FindBetween(range.Begin, true, range.End, false).ToList(); if (keys.Count > 0) { foreach (var key in keys) { m_writes.Remove(key); } } }
public void Test_RangeSet_Insert_Backwards() { const int N = 100; var cola = new ColaRangeSet <int>(); for (int i = N; i > 0; i--) { int x = i << 1; cola.Mark(x - 1, x); } Assert.That(cola.Count, Is.EqualTo(N)); Console.WriteLine("Result = { " + String.Join(", ", cola) + " }"); Console.WriteLine("Bounds = " + cola.Bounds); }
/// <summary>Adds a range to the read conflict list</summary> /// <remarks>Must be called with m_lock taken</remarks> private void AddReadConflict_NeedsLocking(FdbKeyRange range) { m_readConflicts.Mark(range.Begin, range.End); }
/// <summary>Adds a range to the write conflict list</summary> /// <remarks>Must be called with m_lock taken</remarks> private void AddWriteConflict_NeedsLocking(FdbKeyRange range) { m_writeConflicts.Mark(range.Begin, range.End); }
public void Test_RangeSet_Insert_Backwards() { const int N = 100; var cola = new ColaRangeSet<int>(); for(int i = N; i > 0; i--) { int x = i << 1; cola.Mark(x - 1, x); } Assert.That(cola.Count, Is.EqualTo(N)); Console.WriteLine("Result = { " + String.Join(", ", cola) + " }"); Console.WriteLine("Bounds = " + cola.Bounds); }
public void Test_RangeSet_Insert_That_Replace_All_Ranges() { var cola = new ColaRangeSet<int>(); cola.Mark(0, 1); cola.Mark(2, 3); cola.Mark(4, 5); cola.Mark(6, 7); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(4)); Assert.That(cola.Bounds.Begin, Is.EqualTo(0)); Assert.That(cola.Bounds.End, Is.EqualTo(7)); cola.Mark(-1, 10); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(1)); Assert.That(cola.Bounds.Begin, Is.EqualTo(-1)); Assert.That(cola.Bounds.End, Is.EqualTo(10)); Console.WriteLine("Result = { " + String.Join(", ", cola) + " }"); Console.WriteLine("Bounds = " + cola.Bounds); }
public void Test_RangeSet_Insert_That_Join_Two_Ranges() { var cola = new ColaRangeSet<int>(); cola.Mark(0, 1); cola.Mark(2, 3); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(2)); cola.Mark(1, 2); cola.Debug_Dump(); Assert.That(cola.Count, Is.EqualTo(1)); Console.WriteLine("Result = { " + String.Join(", ", cola) + " }"); Console.WriteLine("Bounds = " + cola.Bounds); }