validate method

void validate()

Validate this tree. For testing.

Implementation

void validate() {
  assert(_root != null);
  _assertStructureValid(_root);
  _assertMetricsValid(_root);

  var freeCount = 0;
  var freeNode = _freeList != nullNode ? _nodes[_freeList] : null;
  while (freeNode != null) {
    assert(0 <= freeNode.id && freeNode.id < _nodeCapacity);
    assert(freeNode == _nodes[freeNode.id]);
    freeNode = freeNode.parent;
    ++freeCount;
  }
  assert(getHeight() == computeHeight());
  assert(_nodeCount + freeCount == _nodeCapacity);
}