public void DeleteNonexistentNodeTest() { TreeAlgorithm tree = new TreeAlgorithm(); int[] values = { 56, 12, 65, 16, 30 }; TreeComplite(tree, values); var result = tree.Delete1(70);; Assert.AreEqual(double.NaN, result); }
public void DeleteTest() { TreeAlgorithm tree = new TreeAlgorithm(); int[] values = { 22, 4, 61, 25, 66, 27, 10, 9, 7, 43, 36, 75, 46, 11 }; TreeComplite(tree, values); //удаление всего дерева полностью for (int i = 0; i < values.Length; i++) { tree.Delete1(values[i]); } Assert.IsNull(tree.Root); }
public void DeleteWithRedPrevTest() { TreeAlgorithm tree = new TreeAlgorithm(); int[] values = { 56, 12, 65, 16, 30 }; TreeComplite(tree, values); tree.Delete1(56); var result = tree.Root; Assert.AreEqual(30, result.Value); Assert.AreEqual(16, result.Left.Value); Assert.IsNull(result.Left.Right);//старое местоположение узла 30 теперь должно быть пустым Assert.IsNull(tree.FindKey(56)); }
public void DeleteWithRedPrevChildTest() { TreeAlgorithm tree = new TreeAlgorithm(); int[] values = { 56, 12, 65, 16, 30, 20 }; TreeComplite(tree, values); tree.Delete1(56); var result = tree.Root; Assert.AreEqual(30, result.Value); Assert.AreEqual(16, result.Left.Value); Assert.AreEqual(Color.R, result.Left.Colour); //цвет узла 16(родителя) lдолжен поменяться на красный Assert.AreEqual(20, result.Left.Right.Value); //на месте узла 30 теперь должен быть его потомок - узел 20 Assert.IsNull(tree.FindKey(56)); }
public void DeleteWithoutChildPrevTest() { TreeAlgorithm tree = new TreeAlgorithm(); int[] values = { 56, 12, 65, 16, 30, 20 }; TreeComplite(tree, values); tree.Delete1(16); var result = tree.Root; Assert.AreEqual(56, result.Value); Assert.AreEqual(20, result.Left.Value); //после поворота должен стать потомком корневого узла Assert.AreEqual(Color.R, result.Left.Colour); Assert.AreEqual(12, result.Left.Left.Value); // узел 12 должен стать потомком узла 20 Assert.AreEqual(Color.B, result.Left.Left.Colour); Assert.AreEqual(30, result.Left.Right.Value); // узел 30 должен стать потомком узла 20 Assert.IsNull(tree.FindKey(16)); }