alvarofpp / alvarofpp/validate-docbr

TituloEleitoral.generate() não gera UFs de 19 a 28

Ouverte
#81 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
bug good first issue
Langage dominant
Python
Étoiles
484
Forks
54
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

`TituloEleitoral.generate()` sorteia o identificador de UF apenas no intervalo `01`–`18`, mas a tabela de UFs da [Resolução TSE 23.659/2021, Art. 36](https://www.tse.jus.br/legislacao/compilada/res/2021/resolucao-no-23-659-de-26-de-outubro-de-2021) vai de `01` a `28`.

Ou seja, o gerador nunca produz título eleitoral de **MS (19), DF (20), SE (21), AM (22), RO (23), AC (24), AP (25), RR (26), TO (27) e ZZ/exterior (28)**.

## Como reproduzir

```python
from validate_docbr import TituloEleitoral

t = TituloEleitoral()
print(sorted({t.generate()[8:10] for _ in range(3000)}))
# ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10',
# '11', '12', '13', '14', '15', '16', '17', '18']
```

## Origem

`validate_docbr/TituloEleitoral.py`, em `_generate_valid_state_identifier`:

```python
state_identifier = str(sample(range(1, 19), 1)[0])
```

## Solução proposta

Trocar o intervalo para `range(1, 29)` e cobrir com teste que garanta que todas as 28 UFs são alcançáveis.

Encontrado durante a apuração da #70.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.