Ocena kodu funkcji kwadratowej + testy

0

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

0

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ć.

1

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;
0

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.

0
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. ;)

0
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 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;

Ten import mi się zapodział. A dlaczego tyle klas ? Chciałem aby kod był czytelny.

0

A dlaczego tyle klas ? Chciałem aby kod był czytelny.
A uzyskałeś efekt przeciwny.;)

0
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.

0

Wzór ma dobry, ale źle zapisał :) Nie miałem problemu z przeczytaniem kodu ze zrozumieniem, imho jest czytelny. Może trochę przekombinowany jak na te zastosowanie, ale generalnie dla mnie ok.

1 użytkowników online, w tym zalogowanych: 0, gości: 1