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.
Queremos uma função que formate o Registro Geral (RG) brasileiro de acordo com o estado (UF) correspondente. Cada estado pode ter um formato diferente, e a formatação correta é crucial para a padronização e validação de documentos.
Descreva a solução que você gostaria
Uma função format_rg, que recebe como entrada o RG (string) e a Unidade Federativa (UF) (string) e retorna o RG formatado (string).
Caso a entrada seja inválida, a função deve retornar None.
A função deve considerar os formatos de RG de todos os estados brasileiros e lidar com possíveis edge cases, como:
RGs com espaços extras.
RGs com caracteres especiais ou inválidos.
RGs que já estão parcialmente formatados.
RGs com tamanhos fora do padrão.
A função deve garantir que o RG esteja no formato correto antes de ser retornado.
Como parte do passo 8, criar o arquivo: brutils-python/brutils/rg.py.
defformat_rg(rg, uf): # type: (str, str) -> str | None""" Formats a Brazilian RG (Registro Geral) based on the state (UF). This function takes a Brazilian RG and formats it according to the specific requirements of the given UF. It should handle various input formats and ensure the output is standardized. Args: rg (str): The RG to be formatted. uf (str): The state (UF) for which the RG should be formatted. Returns: str or None: The formatted RG if valid, or None if the input is invalid. Example: >>> format_rg('12.345.678-9', 'SP') "12.345.678-9" >>> format_rg('MG-12.345.678', 'MG') "MG-12.345.678" >>> format_rg('123456789', 'RJ') "12.345.678-9" >>> format_rg('A12345678', 'SP') None >>> format_rg('12.345.678', 'SP') None """# implementar a lógica da função aqui
Importar a nova função no arquivo brutils-python/brutils/__init__.py:
# RG Importsfrombrutils.rgimport (
format_rg,
)
E adicionar o nome da nova função na lista __all__ do mesmo arquivo brutils-python/brutils/__init__.py:
__all__= [
...
# RG
'format_rg',
]
Como parte do passo 9, criar o arquivo de teste: brutils-python/tests/test_rg.py.
fromunittestimportTestCasefrombrutils.rgimportformat_rgclassTestRG(TestCase):
deftest_format_rg(self):
# Testes para RGs válidosself.assertEqual(format_rg('12.345.678-9', 'SP'), "12.345.678-9")
self.assertEqual(format_rg('MG-12.345.678', 'MG'), "MG-12.345.678")
self.assertEqual(format_rg('123456789', 'RJ'), "12.345.678-9")
# Testes para RGs inválidosself.assertIsNone(format_rg('A12345678', 'SP')) # Letras não permitidasself.assertIsNone(format_rg('1234567890', 'SP')) # RG longo demaisself.assertIsNone(format_rg('12.345.678-10', 'SP')) # Dígito verificador incorreto# Testes para entradas malformadasself.assertIsNone(format_rg('', 'SP')) # Entrada vaziaself.assertIsNone(format_rg('12.345.678', 'SP')) # Formato incorreto sem dígito verificadorself.assertIsNone(format_rg('12.345.678-9', 'XX')) # UF inválidaself.assertIsNone(format_rg('12 345 678-9', 'SP')) # RG com espaços extrasself.assertIsNone(format_rg('12.34.5678', 'SP')) # RG com formato incorreto# Adicionar mais casos de teste se necessário
Seu pedido de recurso está relacionado a um problema? Por favor, descreva.
Queremos uma função que formate o Registro Geral (RG) brasileiro de acordo com o estado (UF) correspondente. Cada estado pode ter um formato diferente, e a formatação correta é crucial para a padronização e validação de documentos.
Descreva a solução que você gostaria
format_rg
, que recebe como entrada o RG (string) e a Unidade Federativa (UF) (string) e retorna o RG formatado (string).None
.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/rg.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_rg.py
.Seguir os passos seguintes do guia de contribuição.
Contexto adicional
The text was updated successfully, but these errors were encountered: