private void RemoveAllItems(GenericPartitionTreeSection <TBoundary, TItem> root)
        {
            root.RemoveItems();

            foreach (var subsection in root.Subsections)
            {
                RemoveAllItems(subsection);
            }
        }
        protected void RedistributeItemsWithinSubsections(GenericPartitionTreeSection <TBoundary, TItem> section)
        {
            foreach (var item in section.Items)
            {
                FindPointSubsection(section, item)?.AddItem(item);
            }

            section.RemoveItems();
        }