// Error a propósito: tras rotar, se actualiza primero el nodo que subió, que ahora es el padre.
#include <iostream>

#include "broken_avl.h"

int main() {
    std::cout << std::unitbuf;
    BrokenAvl<Bug::parent_before_child> small;
    for (int key : {1, 2, 3}) {
        small.insert(key);
    }
    std::cout << "con 1, 2, 3: " << small.shape() << ", altura real " << small.real_height()
              << ", altura guardada " << small.stored_height() << "\n";
    BrokenAvl<Bug::parent_before_child> tree;
    for (int key = 1; key <= 1000; key++) {
        tree.insert(key);
    }
    std::cout << "con 1000 claves ordenadas: altura real " << tree.real_height()
              << ", altura guardada " << tree.stored_height() << "\n";
    tree.check_invariants();
    std::cout << "check_invariants no vio nada\n";
    return 0;
}
