def test_prog_altera_cg_error():
    prog = Programador('Fulano', 25, '*****@*****.**')
    try:
        prog.altera_carga_horaria(16)
    except ValueError:
        assert prog.consulta_carga_horaria() == 40
    else:
        raise AssertionError('Trocou para carga horaria inválida')
def test_cria_prog_cg_invalida():
    try:
        Programador('Fulano', 25, '*****@*****.**', 60)
    except ValueError:
        pass
    else:
        raise AssertionError('Não deveria criar com carga Horaria inválida')
def test_dissidio():
    prog = Programador('Cicrano', 31, '*****@*****.**')
    emp = Empresa('ACME', 123456789, 'Tecnologia', [prog])
    est = Estagiario('Fulano', 25, '*****@*****.**')
    emp.contrata(est)
    emp.dissidio_anual()
    assert abs(emp.folha_pagamento() - 8329.75) < 0.01
def test_prog_recebe_aumento():
    prog = Programador('Fulano', 25, '*****@*****.**')
    prog.aumenta_salario()
    assert prog.calcula_salario() == 6615
def test_prog_calcula_salario():
    prog = Programador('Fulano', 25, '*****@*****.**')
    assert prog.calcula_salario() == 6300
def test_prog_altera_cg():
    prog = Programador('Fulano', 25, '*****@*****.**')
    prog.altera_carga_horaria(36)
    assert prog.consulta_carga_horaria() == 36
def test_folha_pagamento():
    prog = Programador('Cicrano', 31, '*****@*****.**')
    emp = Empresa('ACME', 123456789, 'Tecnologia', [prog])
    est = Estagiario('Fulano', 25, '*****@*****.**')
    emp.contrata(est)
    assert emp.folha_pagamento() == 7945