Middle
Jak można przeprowadzić sprawdzenie wartości granicznych nie na zakresie numerycznym, lecz na alfabetycznym?
sobes.tech AI
Odpowiedź od AI
Sprawdzanie wartości granicznych w zakresie alfabetycznym polega na przetestowaniu pierwszego i ostatniego dozwolonego znaku, a także znaków bezpośrednio przed i po dozwolonym zakresie, jeśli występują w zestawie znaków.
Na przykład dla pola akceptującego małe litery cyrylicy (а-я):
- Dolna granica:
- 'а' (pierwszy dozwolony znak)
- Znak przed 'а' (jeśli dotyczy i istnieje w używanym kodowaniu)
- Górna granica:
- 'я' (ostatni dozwolony znak)
- Znak po 'я' (jeśli dotyczy i istnieje w używanym kodowaniu)
Dodatkowo można sprawdzić:
- Pusty ciąg:
"" - Ciąg jednego znaku: 'б' (dowolny znak w zakresie)
- Ciąg znaków spoza zakresu:
- Łacina: 'a', 'z'
- Cyfry: '1', '9'
- Znaki specjalne: '$', '#'
- Cyrylica wielkimi literami: 'А', 'Я'
- Ciąg zawierający znaki zarówno wewnątrz, jak i na zewnątrz zakresu: "абвA1"
Test polega na wysłaniu tych wartości do pola wejściowego i sprawdzeniu oczekiwanego zachowania systemu: akceptacji dozwolonych wartości i odrzucenia (lub poprawnego obsłużenia) niedozwolonych.
Przykład w Pythonie:
# Funkcjonalność do walidacji ciągu w cyrylicy małymi literami
def validate_cyrillic_lowercase(text):
import re
return bool(re.fullmatch('[а-я]+', text))
# Przypadki testowe dla wartości granicznych
test_cases = {
"Dolna granica (pierwszy znak)": ('а', True),
"Dolna granica (przed zakresem, nieprawidłowe)": ('`', False), # Przykład znaku przed 'а' w niektórych kodowaniach
"Górna granica (ostatni znak)": ('я', True),
"Górna granica (po zakresie, nieprawidłowe)": ('{', False), # Przykład znaku po 'я' w niektórych kodowaniach
"Wewnątrz zakresu": ('абв', True),
"Pusty ciąg": ('', False),
"Łacina": ('abc', False),
"Cyfry": ('123', False),
"Znaki specjalne": ('@#$', False),
"Cyrylica wielkimi literami": ('АБВ', False),
"Mieszany ciąg": ('абвA1', False)
}
# Uruchomienie testów
for opis, (wartosc, oczekiwane) in test_cases.items():
wynik = validate_cyrillic_lowercase(wartosc)
assert wynik == oczekiwane, f"Test: {opis}, Wartość: '{wartosc}', Oczekiwane: {oczekiwane}, Otrzymane: {wynik}"
print(f"Test '{opis}' zaliczony.")