You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Seu pedido de recurso está relacionado a um problema? Por favor, descreva.
Gostaria de validar números de PIS/Pasep, retornando um valor booleano que indica se o número é válido ou não. Isso é útil para garantir que os dados inseridos estejam corretos e possam ser utilizados em processos que exigem validação desses registros.
Descreva a solução que você gostaria
Uma função is_valid_pis_pasep, que recebe um número de PIS/Pasep (string) e retorna True se o número for válido e False caso contrário.
A função deve considerar todos os formatos válidos do PIS/Pasep e implementar a lógica de validação específica.
A função deve lidar com números que tenham sido formatados com símbolos (como pontos ou traços) e garantir que a validação funcione corretamente.
Regras de Validação
A validação do PIS/Pasep é realizada da seguinte forma:
Formato: O PIS pode ser composto por 11 dígitos, que podem ser apresentados em formato como 123.45678.90-1 ou 12345678901. O dígito de controle é o último dígito, que é calculado com base nos 10 primeiros dígitos.
Cálculo do Dígito de Controle:
Multiplicar os 10 primeiros dígitos do PIS por uma sequência de pesos que vai de 3 a 1.
Somar os resultados das multiplicações.
Dividir a soma por 11 e considerar o resto da divisão.
O dígito de controle é obtido subtraindo o resto de 11. Se o resultado for maior que 9, o dígito de controle deve ser 0.
Validação: A função deve retornar True se o PIS/Pasep for válido de acordo com as regras acima e False caso contrário.
Como parte do passo 8, criar o arquivo: brutils-python/brutils/pis.py.
defis_valid_pis_pasep(pis_pasep): # type: (str) -> bool""" Validates a given PIS/Pasep number. This function checks if the provided PIS/Pasep number is valid according to the official validation rules. It returns True if the number is valid, and False otherwise. Args: pis_pasep (str): The PIS/Pasep number to be validated. Returns: bool: True if the PIS/Pasep number is valid, False otherwise. Example: >>> is_valid_pis_pasep('123.45678.90-1') True >>> is_valid_pis_pasep('12345678901') False >>> is_valid_pis_pasep('PIS inválido') False """# implementar a lógica da função aqui
Importar a nova função no arquivo brutils-python/brutils/__init__.py:
# PIS Importsfrombrutils.pisimport (
is_valid_pis_pasep,
)
E adicionar o nome da nova função na lista __all__ do mesmo arquivo brutils-python/brutils/__init__.py:
__all__= [
...
# PIS'is_valid_pis_pasep',
]
Como parte do passo 9, criar o arquivo de teste: brutils-python/tests/test_pis.py.
fromunittestimportTestCasefrombrutils.pisimportis_valid_pis_pasepclassTestPIS(TestCase):
deftest_is_valid_pis_pasep(self):
# Testes para PIS válidosself.assertTrue(is_valid_pis_pasep('123.45678.90-1')) # Formato com símbolosself.assertTrue(is_valid_pis_pasep('12345678901')) # Formato sem símbolos# Testes para PIS inválidosself.assertFalse(is_valid_pis_pasep('1234567890')) # Falta um dígitoself.assertFalse(is_valid_pis_pasep('')) # Vazioself.assertFalse(is_valid_pis_pasep('invalid pis')) # Texto não numéricoself.assertFalse(is_valid_pis_pasep('123.45678.90-0')) # PIS com dígito de controle inválido# implementar mais casos de teste aqui se necessário
Título da Issue: Validação do PIS/Pasep
Seu pedido de recurso está relacionado a um problema? Por favor, descreva.
Gostaria de validar números de PIS/Pasep, retornando um valor booleano que indica se o número é válido ou não. Isso é útil para garantir que os dados inseridos estejam corretos e possam ser utilizados em processos que exigem validação desses registros.
Descreva a solução que você gostaria
is_valid_pis_pasep
, que recebe um número de PIS/Pasep (string) e retornaTrue
se o número for válido eFalse
caso contrário.Regras de Validação
A validação do PIS/Pasep é realizada da seguinte forma:
Formato: O PIS pode ser composto por 11 dígitos, que podem ser apresentados em formato como
123.45678.90-1
ou12345678901
. O dígito de controle é o último dígito, que é calculado com base nos 10 primeiros dígitos.Cálculo do Dígito de Controle:
Validação: A função deve retornar
True
se o PIS/Pasep for válido de acordo com as regras acima eFalse
caso contrário.Descreva alternativas que você considerou
Seguir até o passo 8 do guia de contribuição.
Como parte do passo 8, criar o arquivo:
brutils-python/brutils/pis.py
.Importar a nova função no arquivo
brutils-python/brutils/__init__.py
:E adicionar o nome da nova função na lista
__all__
do mesmo arquivobrutils-python/brutils/__init__.py
:Como parte do passo 9, criar o arquivo de teste:
brutils-python/tests/test_pis.py
.Seguir os passos seguintes do guia de contribuição.
Contexto adicional
The text was updated successfully, but these errors were encountered: