battle_asserts
battle_asserts copied to clipboard
Ошибка в эталонном решении и тестах subnet_checker.clj
В задаче осталось несколько недочетов:
- Эталонное решение не корректное - производится проверка на вхождение
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 проблема, о ней ниже) - Генерация тестов не корректная, адрес подсети в тестовых данных должен генерироваться с учетом маски, в данный момент генерируется произвольный адрес, алгоритм генерации тестов должен быть следующий:
- 1 - генерируем маску подсети (m) в диапазоне от 0 до 32
- 2 - с учетом маски генерируем адрес подсети (используем первые m бит из 32, остальные биты - нулевые)
- 3 - случайным образом определяем должен ли адрес принадлежать подсети (с вероятностью 50%)
- 4 - на основании п.3 генерируем случайный ip-адрес гарантированно принадлежащий (или не принадлежащий) указанной подссети. В связи с тем, что в данный момент генерация ip-адреса и адреса подсети производятся независимо друг от друга в большинстве тестов результат проверки будет false, соответственно тесты плохо проверяют корректность написанного кода.