Projekt Cube Solver #05 – Metryki mierzenia ruchów – kod i testy

Projekt Cube Solver #05 – Metryki mierzenia ruchów – kod i testy

Mam nadzieję, że czytałeś mój poprzedni post. Jeśli nie warto zrobić to wczesniej ponieważ kod, który dzisiaj napiszemy będzie bardziej zrozumiały dla Ciebie.

Artykuł dostępny także w wersji angielskiej.

Testy dla metryki HTM

Zacznijmy więc od metryki HTM, która jest bardzo prostą metryką.
Pierwszy z naszych testów sprawdza czy nazwa metryki jest poprawna:

Drugi z testów sprawdza czy wartość dla określonych ruchów jest poprawna:

I ostatni z testów, który sprawdza czy scramble zawierający określone ruchy ma poprawną długość:

Testy dla metryki QTM

Naszym następnym celem jest napisanie testu dla metryki QTM. Pokazuję je poniżej.

Pierwszy z nich sprawdza czy metryka ma poprawną nazwę:

Drugi test sprawdza czy dla podanych ruchów zwracana jest poprawna wartość:

I ostatni który sprawdza czy długość scrambla jest poprawna:

Implementacja klas metryk

Teraz pozostało tylko napisanie klas odpowiedzialnych za obliczanie długości naszych scrambli:

Oto klasa dla metryki HTM:

Klasa dla metryki QTM:

Dodatkowo, stworzyłem abstrakcyjną klasę, która posiada wydzielony kod, wspólny dla obu klas metryk. Oczywiście moje testy pomogły mi wykonać tę refaktoryzację bez zbędnego bólu.
Oto ta klasa:

Teraz jeśli uruchomimy nasze testy, wszystkie z nich powinny przejść.
Moje zmiany możesz podejrzeć tutaj. Możesz oczywiście także ściągnąć cały mój projekt jeśli Ci się on podoba.

Co dalej

W następnym wpisie odnośnie rozwijania mojego projektu zacznę tworzyć klasę odpowiedzialną za kostkę i ruchy na niej.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *