Skip to content
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

Обновление и расширение модуля тестов test_arden #302

Open
AngelicHedgehog opened this issue Nov 23, 2023 · 2 comments · Fixed by #282
Open
Labels
test это надо протестировать

Comments

@AngelicHedgehog
Copy link
Collaborator

Требуется обновить тесты преобразования КА в регулярку на более содержательные, пограничные и верные

@xendalm says:

Сохранение языка повлияет на тестирование. Я заметил, что мы когда-то написали глупый тест, который не будет ничего проверять.

Regex reg(rgx_str);
ASSERT_TRUE(Regex::equivalent(reg, reg.to_thompson().to_regex()));

Здесь to_regex() будет возвращать нам регулярку в языке исходной. А значит метод equivalent, который проверяет на равенство как раз минимальные автоматы, не будет их строить и просто вернет истину.
Должно быть что-то типа такого:

auto test_equivalence = [](const string& rgx_str) {
	Regex r1(rgx_str), r2(rgx_str);
	ASSERT_TRUE(Regex::equivalent(r1, r2.to_thompson().to_regex()));
	ASSERT_TRUE(Regex::equivalent(r1, r2.to_glushkov().to_regex()));
	ASSERT_TRUE(Regex::equivalent(r1, r2.to_ilieyu().to_regex()));
	ASSERT_TRUE(Regex::equivalent(r1, r2.to_antimirov().to_regex()));
};

Понимаю, что это совсем не очевидно на первый взгляд. Можно будет потом как-нибудь ввести тестовый режим, при котором, кэширование отключается.

@AngelicHedgehog AngelicHedgehog added the test это надо протестировать label Nov 23, 2023
@AngelicHedgehog AngelicHedgehog self-assigned this Nov 23, 2023
@AngelicHedgehog AngelicHedgehog moved this to 🏗 В разработке in Чиполлино Nov 23, 2023
@AngelicHedgehog AngelicHedgehog moved this from 🏗 В разработке to TODO in Чиполлино Nov 23, 2023
@AngelicHedgehog AngelicHedgehog removed their assignment Nov 23, 2023
@xendalm
Copy link
Collaborator

xendalm commented Nov 23, 2023

Тесты могут быть не обязательно на эквивалентность. Краевые кейсы ардена, наверное, логичнее проверять через to_txt() == "..."

mathhyyn added a commit that referenced this issue Nov 25, 2023
все проходит 👍
(думаю, лишние скобки, возникающие из-за повсеместных конкатенций с eps, мы переживем)
mathhyyn added a commit that referenced this issue Nov 25, 2023
все проходит 👍
(думаю, лишние скобки, возникающие из-за повсеместных конкатенций с eps, мы переживем)
@github-project-automation github-project-automation bot moved this from TODO to ✅ Завершена in Чиполлино Nov 25, 2023
@xendalm
Copy link
Collaborator

xendalm commented Nov 25, 2023

Из юнитов все же ещё надо убрать лишнее и дополнить осмысленными кейсами

@xendalm xendalm reopened this Nov 25, 2023
@xendalm xendalm moved this from ✅ Завершена to 🏗 В разработке in Чиполлино Nov 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
test это надо протестировать
Projects
Status: 🏗 В разработке
3 participants