public virtual void TestSetFive_InOrder() { LeafBucket b = new LeafBucket(0); NUnit.Framework.Assert.AreSame(b, b.Set(Id(unchecked ((int)(0x11))), Id(unchecked ( (int)(0x81))), null)); NUnit.Framework.Assert.AreSame(b, b.Set(Id(unchecked ((int)(0x22))), Id(unchecked ( (int)(0x82))), null)); NUnit.Framework.Assert.AreSame(b, b.Set(Id(unchecked ((int)(0x33))), Id(unchecked ( (int)(0x83))), null)); NUnit.Framework.Assert.AreSame(b, b.Set(Id(unchecked ((int)(0x44))), Id(unchecked ( (int)(0x84))), null)); NUnit.Framework.Assert.AreSame(b, b.Set(Id(unchecked ((int)(0x55))), Id(unchecked ( (int)(0x85))), null)); NUnit.Framework.Assert.IsNull(b.GetNote(Id(unchecked ((int)(0x01))), null)); NUnit.Framework.Assert.AreEqual(Id(unchecked ((int)(0x81))), b.GetNote(Id(unchecked ( (int)(0x11))), null).GetData()); NUnit.Framework.Assert.AreEqual(Id(unchecked ((int)(0x82))), b.GetNote(Id(unchecked ( (int)(0x22))), null).GetData()); NUnit.Framework.Assert.AreEqual(Id(unchecked ((int)(0x83))), b.GetNote(Id(unchecked ( (int)(0x33))), null).GetData()); NUnit.Framework.Assert.AreEqual(Id(unchecked ((int)(0x84))), b.GetNote(Id(unchecked ( (int)(0x44))), null).GetData()); NUnit.Framework.Assert.AreEqual(Id(unchecked ((int)(0x85))), b.GetNote(Id(unchecked ( (int)(0x55))), null).GetData()); NUnit.Framework.Assert.IsNull(b.GetNote(Id(unchecked ((int)(0x66))), null)); }
public virtual void TestRemoveMakesEmpty() { LeafBucket b = new LeafBucket(0); NUnit.Framework.Assert.AreSame(b, b.Set(Id(unchecked ((int)(0x11))), Id(unchecked ( (int)(0x81))), null)); NUnit.Framework.Assert.AreEqual(Id(unchecked ((int)(0x81))), b.GetNote(Id(unchecked ( (int)(0x11))), null).GetData()); NUnit.Framework.Assert.IsNull(b.Set(Id(unchecked ((int)(0x11))), null, null)); NUnit.Framework.Assert.IsNull(b.GetNote(Id(unchecked ((int)(0x11))), null)); }
public virtual void TestSet_Replace() { LeafBucket b = new LeafBucket(0); NUnit.Framework.Assert.AreSame(b, b.Set(Id(unchecked ((int)(0x11))), Id(unchecked ( (int)(0x81))), null)); NUnit.Framework.Assert.AreEqual(Id(unchecked ((int)(0x81))), b.GetNote(Id(unchecked ( (int)(0x11))), null).GetData()); NUnit.Framework.Assert.AreSame(b, b.Set(Id(unchecked ((int)(0x11))), Id(unchecked ( (int)(0x01))), null)); NUnit.Framework.Assert.AreEqual(Id(unchecked ((int)(0x01))), b.GetNote(Id(unchecked ( (int)(0x11))), null).GetData()); }
public virtual void TestRemoveMissingNote() { LeafBucket b = new LeafBucket(0); NUnit.Framework.Assert.IsNull(b.GetNote(Id(unchecked ((int)(0x11))), null)); NUnit.Framework.Assert.AreSame(b, b.Set(Id(unchecked ((int)(0x11))), null, null)); NUnit.Framework.Assert.IsNull(b.GetNote(Id(unchecked ((int)(0x11))), null)); }
/// <exception cref="System.IO.IOException"></exception> internal override InMemoryNoteBucket Set(AnyObjectId noteOn, AnyObjectId noteData , ObjectReader or) { int cell = Cell(noteOn); NoteBucket b = table[cell]; if (b == null) { if (noteData == null) { return(this); } LeafBucket n = new LeafBucket(prefixLen + 2); table[cell] = n.Set(noteOn, noteData, or); cnt++; return(this); } else { NoteBucket n = b.Set(noteOn, noteData, or); if (n == null) { table[cell] = null; cnt--; if (cnt == 0) { return(null); } return(ContractIfTooSmall(noteOn, or)); } else { if (n != b) { table[cell] = n; } } return(this); } }