Sobes.tech
Middle

Kā var veikt robežvērtību pārbaudi ne skaitliskā, bet alfabētiskā diapazonā?

sobes.tech AI

Atbilde no AI

Robežu vērtību pārbaude alfabēta intervālā ietver pirmā un pēdējā atļautā rakstzīmes, kā arī rakstzīmes tieši pirms un pēc atļautā diapazona, ja tās ir rakstzīmju kopā.

Piemēram, laukam, kas pieņem kirilicas mazās burtus (а-я):

  • Apakšējā robeža:
    • 'а' (pirmā atļautā rakstzīme)
    • Rakstzīme pirms 'а' (ja tā ir piemērojama un pastāv izmantotajā kodēšanā)
  • Augšējā robeža:
    • 'я' (pēdējā atļautā rakstzīme)
    • Rakstzīme pēc 'я' (ja tā ir piemērojama un pastāv izmantotajā kodēšanā)

Papildus var pārbaudīt:

  • Tukšs virkne: ""
  • Viena rakstzīmes virkne: 'б' (jebkura rakstzīme diapazonā)
  • Virknē ir rakstzīmes ārpus diapazona:
    • Latīņu burti: 'a', 'z'
    • Skaitļi: '1', '9'
    • Speciālie simboli: '$', '#'
    • Kirilicas lielie burti: 'А', 'Я'
  • Virknē ir rakstzīmes gan iekšā, gan ārpus diapazona: "абвA1"

Testēšana ietver šo vērtību sūtīšanu uz ievades lauka un sistēmas sagaidāmās uzvedības pārbaudi: atļauto vērtību pieņemšanu un nepieņemšanu (vai pareizu apstrādi):

Python koda piemērs:

# Funkcija, kas pārbauda virknes atbilstību kirilicas mazajiem burtiem
def validate_cyrillic_lowercase(text):
    import re
    return bool(re.fullmatch('[а-я]+', text))

# Robežu vērtību testu gadījumi
test_cases = {
    "Apakšējā robeža (pirmais rakstzīmes)": ('а', True),
    "Apakšējā robeža (pirms diapazona, nederīgs)": ('`', False), # Piemērs rakstzīmei pirms 'а'
    "Augšējā robeža (pēdējais rakstzīmes)": ('я', True),
    "Augšējā robeža (pēc diapazona, nederīgs)": ('{', False), # Piemērs rakstzīmei pēc 'я'
    "Iekš diapazona": ('абв', True),
    "Tukšs virkne": ('', False),
    "Latīņu burti": ('abc', False),
    "Skaitļi": ('123', False),
    "Speciālie simboli": ('@#$', False),
    "Kirilicas lielie burti": ('АБВ', False),
    "Sajaukta virkne": ('абвA1', False)
}

# Testu izpilde
for description, (value, expected) in test_cases.items():
    actual = validate_cyrillic_lowercase(value)
    assert actual == expected, f"Tests: {description}, Vērtība: '{value}', Sagaidāms: {expected}, Saņemts: {actual}"
    print(f"Tests '{description}' veiksmīgi izpildīts.")