public static PageCorruption <KEY, VALUE> MinimizeAllocOffsetInDynamicNode <KEY, VALUE>() { return((cursor, layout, node, treeState) => { TreeNodeDynamicSize dynamicNode = AssertDynamicNode(node); dynamicNode.setAllocOffset(cursor, TreeNodeDynamicSize.HeaderLengthDynamic); }); }
public static PageCorruption <KEY, VALUE> MaximizeAllocOffsetInDynamicNode <KEY, VALUE>() { return((cursor, layout, node, treeState) => { TreeNodeDynamicSize dynamicNode = AssertDynamicNode(node); dynamicNode.setAllocOffset(cursor, cursor.CurrentPageSize); // Clear alloc space }); }
public static PageCorruption <KEY, VALUE> IncrementDeadSpaceInDynamicNode <KEY, VALUE>() { return((cursor, layout, node, treeState) => { TreeNodeDynamicSize dynamicNode = AssertDynamicNode(node); int deadSpace = dynamicNode.getDeadSpace(cursor); dynamicNode.setDeadSpace(cursor, deadSpace + 1); }); }
public static PageCorruption <KEY, VALUE> DecrementAllocOffsetInDynamicNode <KEY, VALUE>() { return((cursor, layout, node, treeState) => { TreeNodeDynamicSize dynamicNode = AssertDynamicNode(node); int allocOffset = dynamicNode.getAllocOffset(cursor); dynamicNode.setAllocOffset(cursor, allocOffset - 1); }); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test void mustCompactKeyValueSizeHeader() internal virtual void MustCompactKeyValueSizeHeader() { int oneByteKeyMax = DynamicSizeUtil.MASK_ONE_BYTE_KEY_SIZE; int oneByteValueMax = DynamicSizeUtil.MASK_ONE_BYTE_VALUE_SIZE; TreeNodeDynamicSize <RawBytes, RawBytes> node = GetNode(PAGE_SIZE, _layout); VerifyOverhead(node, oneByteKeyMax, 0, 1); VerifyOverhead(node, oneByteKeyMax, 1, 2); VerifyOverhead(node, oneByteKeyMax, oneByteValueMax, 2); VerifyOverhead(node, oneByteKeyMax, oneByteValueMax + 1, 3); VerifyOverhead(node, oneByteKeyMax + 1, 0, 2); VerifyOverhead(node, oneByteKeyMax + 1, 1, 3); VerifyOverhead(node, oneByteKeyMax + 1, oneByteValueMax, 3); VerifyOverhead(node, oneByteKeyMax + 1, oneByteValueMax + 1, 4); }
private void VerifyOverhead(TreeNodeDynamicSize <RawBytes, RawBytes> node, int keySize, int valueSize, int expectedOverhead) { Cursor.zapPage(); node.InitializeLeaf(Cursor, STABLE_GENERATION, UNSTABLE_GENERATION); RawBytes key = _layout.newKey(); RawBytes value = _layout.newValue(); key.Bytes = new sbyte[keySize]; value.Bytes = new sbyte[valueSize]; int allocOffsetBefore = node.GetAllocOffset(Cursor); node.InsertKeyValueAt(Cursor, key, value, 0, 0); int allocOffsetAfter = node.GetAllocOffset(Cursor); assertEquals(allocOffsetBefore - keySize - valueSize - expectedOverhead, allocOffsetAfter); }