#include <iostream>
using namespace std;

/*
    Poniższe funkcje należy uzupełnić:
*/

// zwraca większš z dwóch liczb
int wieksza(int a, int b) {
    return 0;
}
// drukuje cišg arytmetyczny o poczštkowym wyrazie p, różnicy r i n wyrazach
void ciag(int p, int r, int n) {

}
// Oblicza x do potegi d
double potega(double x, int d) {
    return 0;
}
// Oblicza n!
int silnia(int n) {
    return 0;
}
// Oblicza sume dzielnikow wlasciwych (tj. mniejszych od n)
int sumaDzielnikow(int n) {
    return 0;
}

/*
    Poniżej: funkcje testujšce (już gotowe)
*/
void testWieksza() {
    cout << "--- Test funkcji wieksza: ";
    if(wieksza(5,9)==9 && wieksza(-3,-6)==-3 && wieksza(8,8)==8) {
        cout << "OK" << endl;
    }
    else {
        cout << "zle!" << endl;
    }
}
void testCiag() {
    cout << "--- Test funkcji cišg: " << endl;
    cout << "Jest: "<< endl;
    ciag(2,5,3);
    cout << endl;
    cout << "Powinno być:" << endl << "2 7 12" << endl;
    cout << "Jest: "<< endl;
    ciag(6,-4,8);
    cout << endl;
    cout << "Powinno być:" << endl << "6 2 -2 -6 -10 -14 -18 -22" << endl;
}
void testPotega() {
    cout << "--- Test funkcji potega: " << endl;
    double w=potega(2,8);
    cout << "2^8=" << w << " : ";
    cout << (w==256 ? "OK" : "zle!") << endl;
    w=potega(0.5,3);
    cout << "0.5^3=" << w << " : ";
    cout << (w==0.125 ? "OK" : "zle!") << endl;
    w=potega(10,-2);
    cout << "10^-2=" << w << " : ";
    cout << (0.009999<w && w<0.010001 ? "OK" : "zle!") << endl;
}
void testSilnia() {
    cout << "--- Test funkcji silnia: " << endl;
    for(int i=0; i<=10; i++)
        cout << i << "!=" << silnia(i) << endl;
}
void testSumaDzielnikow() {
    cout << "--- Test funkcji suma dzielnikow: " << endl;
    cout << "Suma dzielnikow 5: " << sumaDzielnikow(5) << " " << (sumaDzielnikow(5)==1 ? "OK" : "zle!") << endl;
    cout << "Suma dzielnikow 16: " << sumaDzielnikow(16) << " " << (sumaDzielnikow(16)==15 ? "OK" : "zle!") << endl;
    cout << "Suma dzielnikow 18: " << sumaDzielnikow(16) << " " << (sumaDzielnikow(16)==21 ? "OK" : "zle!") << endl;
}

void testy() {
    testWieksza();
    testCiag();
    testPotega();
    testSilnia();
    testSumaDzielnikow();
}


int main()
{
    setlocale(LC_ALL,"");
    testy();
    return 0;
}