Middle
Come si può eseguire un controllo dei limiti non su un intervallo numerico, ma su uno alfabetico?
sobes.tech AI
Risposta dell'AI
La verifica dei valori limite in un intervallo alfabetico implica testare il primo e l'ultimo carattere consentito, così come i caratteri immediatamente prima e dopo l'intervallo consentito, se presenti nel set di caratteri.
Ad esempio, per un campo che accetta lettere cirilliche minuscole (а-я):
- Limite inferiore:
- 'а' (il primo carattere consentito)
- Il carattere prima di 'а' (se applicabile e presente nella codifica utilizzata)
- Limite superiore:
- 'я' (l'ultimo carattere consentito)
- Il carattere dopo 'я' (se applicabile e presente nella codifica utilizzata)
Inoltre, possono essere verificati:
- Stringa vuota:
"" - Stringa di un solo carattere: 'б' (qualsiasi carattere all'interno dell'intervallo)
- Stringa con caratteri fuori dall'intervallo:
- Latin: 'a', 'z'
- Numeri: '1', '9'
- Caratteri speciali: '$', '#'
- Cirillico maiuscolo: 'А', 'Я'
- Stringa contenente caratteri sia dentro che fuori dall'intervallo: "абвA1"
Il test consiste nell'inviare questi valori nel campo di input e verificare il comportamento atteso del sistema: accettare i valori consentiti e rifiutare (o gestire correttamente) quelli non consentiti.
Esempio in Python:
# Funzionalità per validare una stringa in cirillico minuscolo
def validate_cyrillic_lowercase(text):
import re
return bool(re.fullmatch('[а-я]+', text))
# Casi di test per valori limite
test_cases = {
"Limite inferiore (primo carattere)": ('а', True),
"Limite inferiore (prima del intervallo, non valido)": ('`', False), # Esempio di carattere prima di 'а' in alcune codifiche
"Limite superiore (ultimo carattere)": ('я', True),
"Limite superiore (dopo l'intervallo, non valido)": ('{', False), # Esempio di carattere dopo 'я' in alcune codifiche
"Dentro l'intervallo": ('абв', True),
"Stringa vuota": ('', False),
"Latin": ('abc', False),
"Numeri": ('123', False),
"Caratteri speciali": ('@#$', False),
"Cirillico maiuscolo": ('АБВ', False),
"Stringa mista": ('абвA1', False)
}
# Esecuzione dei test
for descrizione, (valore, expected) in test_cases.items():
risultato = validate_cyrillic_lowercase(valore)
assert risultato == expected, f"Test: {descrizione}, Valore: '{valore}', Atteso: {expected}, Ottenuto: {risultato}"
print(f"Test '{descrizione}' superato.")