Middle
Kako izvršiti proveru granica ne na numeričkom, već na abecednom opsegu?
sobes.tech АИ
Одговор од АИ
Провера граничних вредности на азбучном интервалу подразумева тестирање првог и последњег дозвољеног симбола, као и симбола непосредно пре и после дозвољеног опсега, ако постоје у скупу симбола.
На пример, за поље које прихвата ћирилична слова у малом писму (а-я):
- Доња граница:
- 'а' (први дозвољени симбол)
- Симбол пре 'а' (ако је применљиво и постоји у коришћеној кодирању)
- Горња граница:
- 'я' (последњи дозвољени симбол)
- Симбол после 'я' (ако је применљиво и постоји у коришћеној кодирању)
Додатно се могу проверити:
- Празан низ:
"" - Низ од једног симбола: 'б' (било који симбол унутар опсега)
- Низ симбола ван опсега:
- Латиница: '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 description, (value, expected) in test_cases.items():
actual = validate_cyrillic_lowercase(value)
assert actual == expected, f"Тест: {description}, Вредност: '{value}', Очекује се: {expected}, Добијено: {actual}"
print(f"Тест '{description}' за вредност '{value}' прошао.")