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