75 lines
2.3 KiB
Python
75 lines
2.3 KiB
Python
def verify(message, expected, actual):
|
||
a = "========================="
|
||
print(a)
|
||
print(message)
|
||
if type(actual) != type(expected) or actual != expected:
|
||
print("FAILED!")
|
||
|
||
print(f"Expected value: {expected}")
|
||
print(f"Actual value: {actual}")
|
||
|
||
print(a)
|
||
return False
|
||
else:
|
||
print("SUCCESS!")
|
||
print(a)
|
||
return True
|
||
|
||
|
||
def verify_all(dataset):
|
||
summa_success = int()
|
||
summa_failed = int()
|
||
for result in dataset:
|
||
if verify(result[0], result[1], result[2]):
|
||
summa_success += 1
|
||
else:
|
||
summa_failed += 1
|
||
print("Total:", len(dataset), "Successful:", summa_success, "Failed:", summa_failed)
|
||
return True
|
||
|
||
|
||
def first_recurring_char(s):
|
||
array = []
|
||
p = 1
|
||
t = 0
|
||
k = str
|
||
if type(s) is str and s is not None:
|
||
for i in s:
|
||
if i.isalpha():
|
||
array.append(i)
|
||
k = i
|
||
t += 1
|
||
for j in array[0:t-1]:
|
||
if k == j:
|
||
p += 1
|
||
if p > 1:
|
||
return k
|
||
break
|
||
else:
|
||
return None
|
||
|
||
|
||
|
||
dataset = [ # Проверочные тесты, что вообще что-то работает
|
||
("first_recurring_char0", None, first_recurring_char([1])),
|
||
("first_recurring_char1", ("п"), first_recurring_char("у попа была собака")),
|
||
("first_recurring_char2", None, first_recurring_char("япчм")),
|
||
("first_recurring_char3", None, first_recurring_char(-2)),
|
||
("first_recurring_char4", ("q"), first_recurring_char("qwertyuiopq")),
|
||
|
||
# Тесты на пустые значения
|
||
("first_recurring_char5", None, first_recurring_char('')),
|
||
("first_recurring_char6", None, first_recurring_char(None)),
|
||
|
||
# Тесты на неверный тип
|
||
("first_recurring_char7", None, first_recurring_char(True)),
|
||
("first_recurring_char8", None, first_recurring_char({1212})),
|
||
|
||
# Тесты на редкие случаи
|
||
("first_recurring_char9", ("а"), first_recurring_char("у Попа была собака, он ее прибил")),
|
||
("first_recurring_char10", ("W"), first_recurring_char(("WWW"))),
|
||
("first_recurring_char11", ("Г"), first_recurring_char('гГваунзГг')),
|
||
]
|
||
|
||
|
||
verify_all(dataset) |