Witam,
Proszę o ocenę kodu obliczającego funkcję kwadratową + testy.
Chciałem aby kod był jak najprostszy w użytkowniu i testowaniu. Proszę o konstruktywną krytykę.
Źródło: https://github.com/mattzalewski/junit-testing-example
Ocena kodu funkcji kwadratowej + testy
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
- Postów: 4700
W metodzie calculate() w klasie QuadraticFunction metoda calculateDelta() jest wywoływana dwukrotnie w tej samej instrukcji warunkowej. Wydaje mi się, że ładniej byłoby deltę policzyć raz i zapisać do tymczasowej zmiennej. Poza tym zastanawiam się jak zareaguje kod na a=0. Zakłada się, że w równaniu kwadratowym a != 0, ale użytkownik może tego nie wiedzieć.
- Rejestracja: dni
- Ostatnio: dni
Wzory na pierwiastki równania są błędne. Jak Ty testowałeś, że nie zauważyłeś błędnych wyników?
Jeżeli oczekujesz danych typu int, to wypadałoby użytkownika o tym poinformować.
Kod jest zdecydowanie przekombinowany - po co aż 7 klas?
Po co instrukcja importu niestandardowej i niewykorzystywanej klasy
import com.sun.corba.se.spi.orbutil.fsm.Guard;
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Kraków
- Postów: 1055
Liczenie pierwiastków z wykorzystaniem delty niesie za sobą spore błędy wynikające z reprezentacji liczb rzeczywistych. Lepiej użyj wzorów Viete'a, dostaniesz dokładniejsze wyniki.
- Rejestracja: dni
- Ostatnio: dni
pingwindyktator napisał(a):
Liczenie pierwiastków z wykorzystaniem delty niesie za sobą spore błędy wynikające z reprezentacji liczb rzeczywistych. Lepiej użyj wzorów Viete'a, dostaniesz dokładniejsze wyniki.
Okej, ale to ma być przykład na zajęcia z JUnit. ;)
- Rejestracja: dni
- Ostatnio: dni
bogdans napisał(a):
Wzory na pierwiastki równania są błędne. Jak Ty testowałeś, że nie zauważyłeś błędnych wyników?
Jeżeli oczekujesz danych typuint, to wypadałoby użytkownika o tym poinformować.
Kod jest zdecydowanie przekombinowany - po co aż 7 klas?
Po co instrukcja importu niestandardowej i niewykorzystywanej klasy
import com.sun.corba.se.spi.orbutil.fsm.Guard;
Ten import mi się zapodział. A dlaczego tyle klas ? Chciałem aby kod był czytelny.
- Rejestracja: dni
- Ostatnio: dni
A dlaczego tyle klas ? Chciałem aby kod był czytelny.
A uzyskałeś efekt przeciwny.;)
- Rejestracja: dni
- Ostatnio: dni
bogdans napisał(a):
A dlaczego tyle klas ? Chciałem aby kod był czytelny.
A uzyskałeś efekt przeciwny.;)
No bywa. Jeszcze się uczę więc popełniam błędy.