hexlet-codebattle / hexlet-codebattle/battle_asserts
Ошибка в эталонном решении и тестах subnet_checker.clj
- Dominant language
- Clojure
- Stars
- 71
- Forks
- 67
- PR merge metrics
- No merged PRs in 30d
Description
В задаче осталось несколько недочетов:
1. Эталонное решение не корректное - производится проверка на вхождение `adress` в `subnet` (в виде строк), однако в реальности алгоритм должен быть посложнее, пример
для входных аргументов `["211.191.126.18","211.191.126.18/15"]` результат `true`
Однако, если проверить в калькуляторе https://ip-calculator.ru/#!ip=211.191.126.18/15
адрес сети должен быть `211.190.0.0` (тут проявляется и 2 проблема, о ней ниже)
2. Генерация тестов не корректная, адрес подсети в тестовых данных должен генерироваться с учетом маски, в данный момент генерируется произвольный адрес, алгоритм генерации тестов должен быть следующий:
- 1 - генерируем маску подсети (m) в диапазоне от 0 до 32
- 2 - с учетом маски генерируем адрес подсети (используем первые m бит из 32, остальные биты - нулевые)
- 3 - случайным образом определяем должен ли адрес принадлежать подсети (с вероятностью 50%)
- 4 - на основании п.3 генерируем случайный ip-адрес гарантированно принадлежащий (или не принадлежащий) указанной подссети.
В связи с тем, что в данный момент генерация ip-адреса и адреса подсети производятся независимо друг от друга в большинстве тестов результат проверки будет false, соответственно тесты плохо проверяют корректность написанного кода.
Contributor guide
Assessment
This issue has not been assessed yet.