public void Deletion()
{
XFastTrie<string> trie = new XFastTrie<string>();
string temp;
trie.Add(0, "0");
trie.Verify();
trie.Add(1, "1");
trie.Verify();
Assert.IsTrue(trie.Remove(0));
trie.Verify();
Assert.IsFalse(trie.TryGetValue(0, out temp));
Assert.IsTrue(trie.TryGetValue(1, out temp));
Assert.AreEqual("1", temp);
Assert.IsTrue(trie.Remove(1));
trie.Verify();
trie.Add(110, "110");
trie.Verify();
Assert.IsTrue(trie.Remove(110));
trie.Verify();
Assert.IsFalse(trie.Remove(110));
Assert.IsFalse(trie.TryGetValue(110, out temp));
trie.Add(270, "270");
trie.Verify();
trie.Add(182, "182");
trie.Verify();
trie.Add(180, "180");
trie.Verify();
trie.Add(184, "184");
trie.Verify();
trie.Add(40, "40");
trie.Verify();
trie.Add(200, "200");
trie.Verify();
trie.Add(461, "461");
trie.Add(158, "158");
trie.Add(763, "763");
Assert.IsFalse(trie.Remove(370));
Assert.IsFalse(trie.Remove(110));
Assert.IsTrue(trie.Remove(461));
trie.Verify();
Assert.IsFalse(trie.TryGetValue(461, out temp));
Assert.IsFalse(trie.Remove(461));
Assert.IsTrue(trie.Remove(184));
trie.Verify();
Assert.IsFalse(trie.TryGetValue(184, out temp));
Assert.IsTrue(trie.Remove(763));
trie.Verify();
Assert.False(trie.TryGetValue(763, out temp));
}