package testowanie;

public class Testowanie3_If {

	// Jeśli chcemy, aby program testujący SAM informował, czy testy skończyły się sukcesem, czy porażką,
	// można napisać program, który sam w ifach sprawdza wyniki.
	// Ten program koncepcyjnie jest już zgodny z ideą testów jednostkowych, chociaż nie używa żadnej biblioteki do testów.
	
	// Patrząc na ten kod aż prosi się o zbudowane pewnego schematu, żeby testy pisać krócej
	// i nie robić kopiuj/wklej. Takie schematy istnieją. Najbardziej popularny jest JUnit, inny znany: TestNG.
	public static void main(String[] args) {
		int ileBledow = 0;
		
		long wynik;
		
		wynik = Funkcje.silnia(0);
		if(wynik == 1) {
			System.out.println("silnia(0): OK");
		} else {
			System.out.println("silnia(0): FAIL, zły wynik: " + wynik);
			ileBledow++;
		}

		wynik = Funkcje.silnia(5);
		if(wynik == 120) {
			System.out.println("silnia(5): OK");
		} else {
			System.out.println("silnia(5): FAIL, zły wynik: " + wynik);
			ileBledow++;
		}

		wynik = Funkcje.fib(0);
		if(wynik == 0) {
			System.out.println("fib(0): OK");
		} else {
			System.out.println("fib(0): FAIL, zły wynik: " + wynik);
			ileBledow++;
		}

		wynik = Funkcje.fib(10);
		if(wynik == 55) {
			System.out.println("fib(10): OK");
		} else {
			System.out.println("fib(10): FAIL, zły wynik: " + wynik);
			ileBledow++;
		}

		System.out.println();
		if(ileBledow == 0) {
			System.out.println("Wszystko OK, nie było błędów");
		} else {
			System.out.println("Test nie przeszły, było " + ileBledow + " błedów!");
		}
		
	}

}
