hexlet-codebattle / hexlet-codebattle/battle_asserts

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

Open
#1,073 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.