Witam,
jeżeli zły dział to z góry przepraszam i proszę o przeniesienie.
Pracuję właśnie nad aplikacją mobilną - zbitka wielu programów matematycznych (konwertery, kalkulatory itd). Od dłuższego czasu siłuję się z testami aplikacji, żeby uczynić ją "idiotoodporną". Całość opiera się na wpisywaniu działań i późniejszym obliczeniu po naciśnięciu odpowiedniego przycisku. Jakie wyjątki powinienem opanować? Mam zrobione:
-działanie kończy się znakiem, nie liczbą
-nie można dać dwóch znaków pod rząd
-brak powielania kropki
-jeżeli działanie zaczyna się od kropki automatycznie dopisuję zero
Więcej nic mi nie przychodzi do głowy.
Zdaję sobie sprawę, że temat jest dosyć nietuzinkowy i może wydać Wam się dziwny. Mimo wszystko proszę o pomoc, żeby udało mi się jak najbardziej zminimalizować ryzyko crasha.
Pozdrawiam
2GRF
Ztymi dwoma znakami pod rząd to nie do końca nie można, co jak ktoś będzie chciał prowadzić działania na liczbach ujemnych?
to nie jest idiotoodporność tylko zwykłe testy.
Spróbuj coś takiego:
.+.
)(
1+()
()+1
(1+2))
((1+2)
(.)(.) <-- test cycków
.(2) <-- nie wiem czy obsługujesz liczby w okresie, jeśli nie to powinno wywalić
(1).(2)
1.(-2)
.-2
Zobacz sobie jak działa inny kalkulator, przetestuj, może zaglądnij do źródeł jakie on ma wyjątki. Ja sobie cenię mate-calc (przygarnięty GCalctool). Wpisujesz cokolwiek zechcesz, a parser robi swoje ;)
Zbyt rygorystyczne wyłapywanie błędów może być upierdliwe.
Jeśli to ma być kalkulator "dla ludzi", czasami lepiej wyświetlić jednak coś, niż walić błędami przy każdej literówce.
.+.
= 0
)(
= 0
1+()
= 1
()+1
= 1
(1+2))
= 3
((1+2)
= 3
(.)(.)
= 0
zwykły kalkulator (najzwyklejszy) nie ma czegoś takiego jak błąd składni. wszystko zostanie JAKOŚ zinterpretowane.
2GRF Studio napisał(a):
-nie można dać dwóch znaków pod rząd
Z jednym wyjątkiem:
2*2== daje 8