diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..846262c Binary files /dev/null and b/.DS_Store differ diff --git a/HNS/.DS_Store b/HNS/.DS_Store new file mode 100644 index 0000000..36c9fb4 Binary files /dev/null and b/HNS/.DS_Store differ diff --git a/HNS/Excercises/.DS_Store b/HNS/Excercises/.DS_Store new file mode 100644 index 0000000..bcd3124 Binary files /dev/null and b/HNS/Excercises/.DS_Store differ diff --git a/HNS/Excercises/12082023 Найти второй символ в строке/.idea/misc.xml b/HNS/Excercises/12082023 Найти второй символ в строке/.idea/misc.xml index 2522946..a971a2c 100644 --- a/HNS/Excercises/12082023 Найти второй символ в строке/.idea/misc.xml +++ b/HNS/Excercises/12082023 Найти второй символ в строке/.idea/misc.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/HNS/Excercises/12082023 Найти второй символ в строке/.idea/ДЗ тестирование 2.iml b/HNS/Excercises/12082023 Найти второй символ в строке/.idea/ДЗ тестирование 2.iml index d0876a7..909438d 100644 --- a/HNS/Excercises/12082023 Найти второй символ в строке/.idea/ДЗ тестирование 2.iml +++ b/HNS/Excercises/12082023 Найти второй символ в строке/.idea/ДЗ тестирование 2.iml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/HNS/Excercises/12082023 Найти второй символ в строке/main.py b/HNS/Excercises/12082023 Найти второй символ в строке/main.py index cea7692..ed376f8 100644 --- a/HNS/Excercises/12082023 Найти второй символ в строке/main.py +++ b/HNS/Excercises/12082023 Найти второй символ в строке/main.py @@ -1,17 +1,75 @@ +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 = [] - z = str + p = 1 + t = 0 + k = str if type(s) is str and s is not None: for i in s: - array.append(i) - k = + 1 - for j in array[0:k - 1]: - if j == i: - p = +1 - print(p) - if p > 1: - z = str(j) - return z + 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 -print(first_recurring_char("вадвава")) + +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) \ No newline at end of file