battle_asserts icon indicating copy to clipboard operation
battle_asserts copied to clipboard

Ошибка в эталонном решении и тестах subnet_checker.clj

Open AlexanderRyzhov opened this issue 1 year ago • 0 comments

В задаче осталось несколько недочетов:

  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, соответственно тесты плохо проверяют корректность написанного кода.

AlexanderRyzhov avatar Dec 20 '23 06:12 AlexanderRyzhov