package testowanie;

import javax.swing.JOptionPane;

public class Testowanie1_Interaktywnie {

	// Jednym ze sposobów, aby przetestować napisane przez nas klasy, metody, funkcje
	// jest uruchomić kompletną aplikację, w której tester interaktywnie sprawdza co robi program i jakie wyniki daje.
	
	// Testowanie manualne JEST potrzebne i na pewny etapie musi wystąpić,
	// ale stosowanie testownaia manualnego do sprawdzenia czy pojedyncza funkcja działa poprawnie
	// jest pracochłonne i kosztowne.
	
	// Wykrycie błędów logicznych, szczególnie obliczeniowych, wymaga dużej uwagi i łatwo takie błędy przeoczyć.
	
	public static void main(String[] args) {
		while(true) {
			String input = JOptionPane.showInputDialog("Podaj liczbę");
			if(input == null) break;
			try {
				int arg = Integer.parseInt(input);
				
				var silnia = Funkcje.silnia(arg);
				var fib = Funkcje.fib(arg);
				
				JOptionPane.showMessageDialog(null,
						String.format("silnia(%d) = %d\nfib(%d) = %d",
								arg, silnia, arg, fib));
			} catch (ArithmeticException | NumberFormatException e) {
				JOptionPane.showMessageDialog(null, e, "Błąd", JOptionPane.ERROR_MESSAGE);
			}
		}

	}

}
