Middle
Как може да се извърши проверка на граничните стойности не в числов диапазон, а в азбучен?
sobes.tech AI
Отговор от AI
Проверката на граничните стойности в азбучен диапазон включва тестване на първия и последния разрешен символ, както и на символите непосредствено преди и след допустимия диапазон, ако те съществуват в набора от символи.
Например, за поле, което приема малки кирилски букви (а-я):
- Долна граница:
- 'а' (първият разрешен символ)
- Символ преди 'а' (ако е приложимо и съществува в използваната кодировка)
- Горна граница:
- 'я' (последният разрешен символ)
- Символ след 'я' (ако е приложимо и съществува в използваната кодировка)
Освен това могат да се проверяват:
- Празен низ:
"" - Низ от един символ: 'б' (всеки символ в диапазона)
- Низ с символи извън диапазона:
- Латиница: 'a', 'z'
- Цифри: '1', '9'
- Специални символи: '$', '#'
- Кирилица в големи букви: 'А', 'Я'
- Низ, съдържащ символи както вътре, така и извън диапазона: "абвA1"
Тестът включва изпращане на тези стойности в полето за въвеждане и проверка на очакваното поведение на системата: приемане на разрешените стойности и отхвърляне (или правилна обработка) на недопустимите.
Пример в Python:
# Функционалност за валидиране на низ на кирилица с малки букви
def validate_cyrillic_lowercase(text):
import re
return bool(re.fullmatch('[а-я]+', text))
# Тестови случаи за гранични стойности
test_cases = {
"Долна граница (първи символ)": ('а', True),
"Долна граница (преди диапазона, невалидно)": ('`', False), # Пример за символ пред 'а' в някои кодировки
"Горна граница (последен символ)": ('я', True),
"Горна граница (след диапазона, невалидно)": ('{', False), # Пример за символ след 'я' в някои кодировки
"Вътре в диапазона": ('абв', True),
"Празен низ": ('', False),
"Латиница": ('abc', False),
"Цифри": ('123', False),
"Специални символи": ('@#$', False),
"Кирилица в големи букви": ('АБВ', False),
"Миксован низ": ('абвA1', False)
}
# Изпълнение на тестовете
for opis, (stoynost, ozhidano) in test_cases.items():
rezultat = validate_cyrillic_lowercase(stoynost)
assert rezultat == ozhidano, f"Тест: {opis}, Стойност: '{stoynost}', Очаквано: {ozhido}, Получено: {rezultat}"
print(f"'{opis}' тест премина успешно.")