public static void ResetArbres() { Arbres.Clear(); foreach (var iArbre in ArbreBinKit.iArbres) { Arbres[iArbre] = ArbreBinKit.NewArbreBinInt(iArbre); } }
public void _52a_Enlever_Plusieurs_Feuilles() { var ab = ArbreBinKit.NewArbreBinInt("1 3 2 | 6 8 7 | 4 |"); AreEqual(5, Enlever(ref ab, new[] { 1, 3, 2, 6, 8 })); AreEqual(0, Enlever(ref ab, new[] { 1, 3, 2, 6, 8 })); AreEqual("n 7 4 |", ab.EnTexte()); }
public void _52b_Enlever_Plusieurs_Complexe() { var ab = ArbreBinKit.NewArbreBinInt("1 3 2 | 6 8 7 | 4 |"); AreEqual(2, Enlever(ref ab, new[] { 4, 3 })); AreEqual(0, Enlever(ref ab, new[] { 4, 3 })); AreEqual("1 n 2 | n 8 7 | 6 |", ab.EnTexte()); }
public void _51d_Enlever_BrancheSimple() { var ab = ArbreBinKit.NewArbreBinInt("1 n 2 | n 3 | n n 7 6 | 5 | 4 |"); AreEqual(true, Enlever(ref ab, 3)); AreEqual("1 n 2 | n n 7 6 | 5 | 4 |", ab.EnTexte()); AreEqual(true, Enlever(ref ab, 5)); AreEqual("1 n 2 | n 7 6 | 4 |", ab.EnTexte()); }
public void _51b_Enlever_Unique() { var ab = ArbreBinKit.NewArbreBinInt("5"); AreEqual(false, Enlever(ref ab, 1)); IsNotNull(ab); AreEqual(true, Enlever(ref ab, 5)); IsNull(ab); }
public void _40_EstValide() { // Arbres valides Tester(nameof(EstValide), EstValide, AllTrue); // Arbres invalides foreach (var iArbreInvalide in ArbreBinKit.iArbresInvalides) { AreEqual(false, EstValide(ArbreBinKit.NewArbreBinInt(iArbreInvalide)), iArbreInvalide); } }
private void TesterCloner(Func <ArbreBin <int>, ArbreBin <int> > cloner) { foreach (var iArbre in ArbreBinKit.iArbres) { var ab = ArbreBinKit.NewArbreBinInt(iArbre); var clone = cloner(ab); AreEqual(ab.EnTexte(), clone.EnTexte(), "La copie n'est pas exacte"); IsTrue(ÉnumérerNoeuds(ab).Zip(ÉnumérerNoeuds(clone), (a, b) => a != b).All(x => x) , "La copie n'est pas profonde"); } }
public void _51f_Enlever_BiBrancheComplexe() { var ab = ArbreBinKit.NewArbreBinInt("1 3 2 | 6 8 7 | 4 |"); AreEqual(true, Enlever(ref ab, 4)); AreEqual("1 n 2 | 6 8 7 | 3 |", ab.EnTexte()); ab = ArbreBinKit.NewArbreBinInt("0 2 n 3 | 1 | 6 8 7 | 4 |"); AreEqual(true, Enlever(ref ab, 4)); AreEqual("0 2 1 | 6 8 7 | 3 |", ab.EnTexte()); ab = ArbreBinKit.NewArbreBinInt("1 3 2 | 6 8 7 | 5 |"); AreEqual(true, Enlever(ref ab, 5)); AreEqual("1 3 2 | n 8 7 | 6 |", ab.EnTexte()); ab = ArbreBinKit.NewArbreBinInt("1 3 2 | n 7 6 | 9 8 | 5 |"); AreEqual(true, Enlever(ref ab, 5)); AreEqual("1 3 2 | 7 9 8 | 6 |", ab.EnTexte()); }
public void _51c_Enlever_Feuille() { var ab = ArbreBinKit.NewArbreBinInt("1 3 2 | 5 7 6 | 4 |"); AreEqual(false, Enlever(ref ab, 0)); AreEqual(true, Enlever(ref ab, 1)); AreEqual("n 3 2 | 5 7 6 | 4 |", ab.EnTexte()); AreEqual(false, Enlever(ref ab, 1)); AreEqual(true, Enlever(ref ab, 7)); AreEqual("n 3 2 | 5 n 6 | 4 |", ab.EnTexte()); AreEqual(true, Enlever(ref ab, 5)); AreEqual("n 3 2 | 6 4 |", ab.EnTexte()); AreEqual(true, Enlever(ref ab, 6)); AreEqual("n 3 2 | n 4 |", ab.EnTexte()); AreEqual(true, Enlever(ref ab, 3)); AreEqual("2 n 4 |", ab.EnTexte()); AreEqual(true, Enlever(ref ab, 2)); AreEqual("4", ab.EnTexte()); }
public void _51e_Enlever_BiBrancheSimple() { // Nombre pair on fait monter à gauche var ab = ArbreBinKit.NewArbreBinInt("1 5 2 |"); AreEqual(true, Enlever(ref ab, 2)); AreEqual("n 5 1 |", ab.EnTexte()); // Nombre impair on fait monter à droite ab = ArbreBinKit.NewArbreBinInt("1 5 3 |"); AreEqual(true, Enlever(ref ab, 3)); AreEqual("1 n 5 |", ab.EnTexte()); // Nombre pair on fait monter à gauche ab = ArbreBinKit.NewArbreBinInt("1 n 2 | n 3 | n n 8 7 | 6 | 4 |"); AreEqual(true, Enlever(ref ab, 4)); AreEqual("1 n 2 | n n 8 7 | 6 | 3 |", ab.EnTexte()); // Nombre impair on fait monter à droite ab = ArbreBinKit.NewArbreBinInt("1 n 2 | n 3 | n n 8 7 | 6 | 5 |"); AreEqual(true, Enlever(ref ab, 5)); AreEqual("1 n 2 | n 3 | n 8 7 | 6 |", ab.EnTexte()); }