alvarofpp / alvarofpp/validate-docbr

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

Abierto
#81 0 comentarios 0 reacciones 0 asignados Ver en GitHub
bug good first issue
Lenguaje dominante
Python
Estrellas
484
Forks
54
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

`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.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.