-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Task6 (probably not) #5
Conversation
Пушу больше с просьбой посмотреть и подсказать, где мне ловить багу: здесь или в 3/4 домашке. Я вроде старался по максимуму по статье действовать так что казалось бы здесь должно быть нормально, но тесты валятся( |
Я вот так поправил тесты: diff --git a/tests/autotests/test_task6.py b/tests/autotests/test_task6.py
index d3f0dbc..6f7c09f 100644
--- a/tests/autotests/test_task6.py
+++ b/tests/autotests/test_task6.py
@@ -93,7 +93,7 @@ IS_START = "is_start"
@pytest.fixture(scope="function", params=range(5))
def graph(request) -> MultiDiGraph:
- n_of_nodes = random.randint(20, 40)
+ n_of_nodes = random.randint(1, 10)
return cd.graphs.labeled_scale_free_graph(n_of_nodes, labels=LABELS)
@@ -131,7 +131,15 @@ class TestReachability:
for node_from, nodes_to in rpq.items():
for node_to in nodes_to:
rpq_set.add((node_from, node_to))
- assert cfpq == rpq_set
+ if cfpq == rpq_set:
+ assert True
+ else:
+ print(graph.edges(data=True))
+ print(regex_str)
+ print(start_nodes, final_nodes)
+ print(cfpq)
+ print(rpq_set)
+ assert False
@pytest.mark.parametrize("eq_grammars", GRAMMARS, ids=lambda grammars: grammars)
def test_different_grammars(self, graph, eq_grammars): Нашел пару графов поменьше и перетащил в свои эталонные решения. Вот на такой вывод в вашей реализации:
Моя эталонная выдала
|
Я тут немного интересную деталь заметил |
Просто я уже часов не знаю сколько (минимум 30) пытаюсь всё заставить починить и бэктрэкинг багов в итоге меня првиёл к такому интересному фокусу библиотеки, в результате которого немудрено, что всё идёт не очень по плану |
Здесь отбой, я просто зря руками писал, а не копипастил из тестов строку регулярки |
И всё-таки эта шизофрения была к месту |
Вообще наверное важно обозначить один пренеприятный феномен, всплывший в ходе этого расследования с поисками багов Я попросил пару человек загнать пример, описаный Вами выше, в свои решения для 4 и 6 домашки Так как тесты не сравнивают ответ с эталонным решением, а сравнивают решения между собой, рабочим сценарием прохождения тестов становится ситуация, когда все задания дают одинаково неправильный овтет на одинаковые данные. В результате получается какая-то неприятная неуверенность в том, это новое решение домашки неправильное или это все предыдущие неправильные, просто одинаково неправильные (в моём случае с этой домашкой оказалось, что и то, и другое) Честно не знаю, как такую ситуацию решать, но обозначить её всё-таки стоит |
Про проблему знаем. Наверное, как раз после моего первого ответа вам, мы её взяли на контроль. В следующих итерациях курса хотим добавить некоторый набор контролируемых тестов, чтобы оценить "вменяемость" решения в отрыве от остальных. Хотелось бы, конечно, сейчас, но тогда велик шанс, что у большинства уже сдавших задачки всё сломается :(. Про косяк с регулярками тоже. Оно должно будет в скором времени починиться, хотя почему у вас пару коммитов назад оно чинилось именно добавлением пробелов я сходу не понял. Надеюсь в последних коммитах у вас всё правда хорошо. Эту задачку я точно готов зачесь в полный балл за ваши страдания с дебагом. |
С регулярками та мистория была в том, что когда я дебажил 3 и 4 домашки, то не мог понять, почему 4 выдаёт мне лишние конечные вершины на abc*. Я просто понял, как парвильно смотреть на этот вывод и что неправильный ответ в той ситуации давала 3 домашка, а не 4 |
No description provided.