showStatistics

Calculate and print statistics of tree.

void
showStatistics
(
RT
)
(
const ref RT tree
)

Examples

test map from uint to values of type double

version(showAssertTags) dbg();
   alias Key = uint;
   alias Value = uint;

   auto map = radixTreeMap!(Key, Value);
   assert(map.empty);

   static assert(map.hasValue);

   static Value keyToValue(Key key) @safe pure nothrow @nogc { return cast(Value)((key + 1)*radix); }

   foreach (immutable i; 0 .. SparseLeaf1!Value.maxCapacity)
   {
       assert(!map.contains(i));
       assert(map.length == i);
       map[i] = keyToValue(i);
       assert(map.contains(i));
       assert(*map.contains(i) == keyToValue(i));
       assert(i in map);
       assert(*(i in map) == keyToValue(i));
       assert(map.length == i + 1);
   }

   foreach (immutable i; SparseLeaf1!Value.maxCapacity .. radix)
   {
       assert(!map.contains(i));
       assert(map.length == i);
       map[i] = keyToValue(i);
       assert(map.contains(i));
       assert(*map.contains(i) == keyToValue(i));
       assert(i in map);
       assert(*(i in map) == keyToValue(i));
       assert(map.length == i + 1);
   }

   void testRange() @trusted
   {
       size_t i = 0;
       foreach (immutable keyValue; map[])
       {
           assert(keyValue.key == i);
           assert(keyValue.value == keyToValue(cast(Key)i)); // TODO: use typed key instead of cast(Key)
           ++i;
       }
   }

   testRange();

Meta