import math

def pole_kwadratu(a):
    return a*a

def obwod_kwadratu(a):
    return 4*a

def pole_prostokata(a, b):
    return a*b

def obwod_prostokata(a, b):
    return 2*a + 2*b

def pole_kola(r):
    return math.pi * r * r

def obwod_kola(r):
    return 2 * math.pi * r

def poprawny_trojkat(a, b, c):
    '''
    Funkcja sprawdza, czy podane boki tworzą trójkąt, i zwraca True albo False
    '''
    return a < b + c and b < a + c and c < a + b

def pole_trojkata(a, b, c):
    if not poprawny_trojkat(a, b, c):
        raise ValueError(f'Z boków {a} {b} {c} nie da się ułożyć trójkąta!')
    p = (a + b + c) / 2
    return math.sqrt(p*(p-a)*(p-b)*(p-c))

def obwod_trojkata(a, b, c):
    return a + b + c


if __name__ == '__main__':
    print('Testowe wywołania funkcji:')
    print('pole kwadratu 5:', pole_kwadratu(5))
    print('pole kwadratu 7.5:', pole_kwadratu(7.5))
    print('pole prostokąta 3×4:', pole_prostokata(3, 4))
else:
    print('Nie wykonuję testowych instrukcji, gdyż __name__ ==', __name__)