private void AssertTransactionalSize(BTreeNode node) { Transaction otherTrans = NewTransaction(); int originalSize = node.Size(Trans()); Assert.IsGreater(0, originalSize); for (int i = originalSize - 1; i > 0; i--) { object key = node.Key(Trans(), i); node.Remove(Trans(), PrepareComparison(key), key, i); } Assert.AreEqual(1, node.Size(Trans())); Assert.AreEqual(originalSize, node.Size(otherTrans)); node.Commit(Trans()); Assert.AreEqual(1, node.Size(otherTrans)); object newKey = node.Key(Trans(), 0); node.Add(Trans(), PrepareComparison(newKey), newKey); Assert.AreEqual(2, node.Size(Trans())); Assert.AreEqual(1, node.Size(otherTrans)); node.Commit(Trans()); Assert.AreEqual(2, node.Size(Trans())); Assert.AreEqual(2, node.Size(otherTrans)); node.Remove(Trans(), PrepareComparison(newKey), newKey, 1); Assert.AreEqual(1, node.Size(Trans())); Assert.AreEqual(2, node.Size(otherTrans)); node.Add(Trans(), PrepareComparison(newKey), newKey); Assert.AreEqual(2, node.Size(Trans())); Assert.AreEqual(2, node.Size(otherTrans)); }