Middle
Como pode realizar uma verificação de limites não numéricos, mas alfabéticos?
sobes.tech IA
Resposta da IA
A verificação de valores limite num intervalo alfabético implica testar o primeiro e o último carácter permitido, bem como os caracteres imediatamente antes e depois do intervalo permitido, se existirem no conjunto de caracteres.
Por exemplo, para um campo que aceita letras cirílicas minúsculas (а-я):
- Limite inferior:
- 'а' (o primeiro carácter permitido)
- O carácter antes de 'а' (se aplicável e existir na codificação utilizada)
- Limite superior:
- 'я' (o último carácter permitido)
- O carácter após 'я' (se aplicável e existir na codificação utilizada)
Além disso, podem ser verificadas:
- String vazia:
"" - String de um único carácter: 'б' (qualquer carácter dentro do intervalo)
- String com caracteres fora do intervalo:
- Latim: 'a', 'z'
- Dígitos: '1', '9'
- Caracteres especiais: '$', '#'
- Cirílico em maiúsculas: 'А', 'Я'
- String contendo caracteres tanto dentro como fora do intervalo: "абвA1"
O teste envolve enviar esses valores no campo de entrada e verificar o comportamento esperado do sistema: aceitar valores permitidos e rejeitar (ou tratar corretamente) os não permitidos.
Exemplo em código Python:
# Funcionalidade para validar uma string em cirílico minúsculo
def validate_cyrillic_lowercase(text):
import re
return bool(re.fullmatch('[а-я]+', text))
# Casos de teste para valores limite
test_cases = {
"Limite inferior (primeiro carácter)": ('а', True),
"Limite inferior (antes do intervalo, inválido)": ('`', False), # Exemplo de carácter antes de 'а' em algumas codificações
"Limite superior (último carácter)": ('я', True),
"Limite superior (após o intervalo, inválido)": ('{', False), # Exemplo de carácter após 'я' em algumas codificações
"Dentro do intervalo": ('абв', True),
"String vazia": ('', False),
"Latino": ('abc', False),
"Dígitos": ('123', False),
"Caracteres especiais": ('@#$', False),
"Cirílico maiúsculo": ('АБВ', False),
"String misturada": ('абвA1', False)
}
# Executando testes
for description, (value, expected) in test_cases.items():
actual = validate_cyrillic_lowercase(value)
assert actual == expected, f"Teste: {description}, Valor: '{value}', Esperado: {expected}, Obtido: {actual}"
print(f"Teste '{description}' para o valor '{value}' passado.")