package ru.pdguard; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.DynamicTest.dynamicTest; import java.util.List; import java.util.stream.Stream; import org.junit.jupiter.api.DynamicTest; import org.junit.jupiter.api.TestFactory; import ru.pdguard.config.SystemPolicy; import ru.pdguard.core.PayloadStore; import ru.pdguard.core.Pipeline; import ru.pdguard.detect.RuleRegistry; import ru.pdguard.detect.Span; import ru.pdguard.mask.Masker; /** * 200 вручную составленных текстовых тестов из {@code dataset-200.txt} — по одному предложению на * строку, каждое своя отдельная проверка (не сборка одного большого текста, как в {@link * HugeDatasetTest}). Набор покрывает все типы ПДН из {@link RuleRegistry} (кроме * ADDRESS_REGION/ADDRESS_DISTRICT — для них нет правил, только модель второй ступени), варианты * написания (регистр, формат даты, разделяющие слова) и несколько строк-ловушек без разметки * (известный человек, адрес отделения, дата без якоря) — они не должны маскироваться вовсе. * *
На каждой строке: маскирование не оставляет исходное значение ПДН в открытом виде, а
* демаскирование побайтово восстанавливает исходный текст.
*/
class Dataset200Test {
private static final RuleRegistry REGISTRY = new RuleRegistry();
private static final Masker MASKER = new Masker();
private static final List