Kod nieprzetestowany albo nie działa w ogóle, albo nie działa poprawnie - i tak było w przypadku tej implementacji drzew czerwono - czarnych . Dlatego napisałem specjalny kod do przetestowania. Metodyka jaką przyjąłem polega na testowaniu porównawczym. Trzy takie same programy, oparte jednak na innych implementacjach drzew czerwono - czarnych , muszą dać takie same wyniki. W celu przetestowania zaprojektowałem 15 procedur. Każda procedura, w przybliżeniu, testuje kolejną metodę z tej implementacji, a także analogiczne metody z implementacji w std::set i QMap. Kolejność wywoływania procedur jest losowa, a także losowa jest kolejność wybierania implementacji, co powinno wykluczyć błędy ujawniające się tylko przy określonej kolejności, np. po wywołaniu metody sort, która kompletnie reorganizuje ułożenie węzłów w pamięci. Oczywiście niektóra kolejność wywoływania procedur jest błędna z założenia, np. po wywołaniu metod: insert, remove, nie można wywoływać metod z przed
Komentarze
Prześlij komentarz