Skip to content

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

@AlexanderRyzhov

Description

@AlexanderRyzhov

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

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions