feat(classifier): has_short_latin_name() helper for drop-logic
This commit is contained in:
@@ -43,4 +43,42 @@ final class ClassifierDropTest extends Cf7stgTestCase
|
||||
$fields = ['msg' => 'try alice@in or bob@example.com'];
|
||||
self::assertTrue(Classifier::has_valid_email_anywhere($fields));
|
||||
}
|
||||
|
||||
public function test_has_short_latin_name_true_for_two_letters(): void
|
||||
{
|
||||
$fields = ['your-name' => 'OB'];
|
||||
self::assertTrue(Classifier::has_short_latin_name($fields));
|
||||
}
|
||||
|
||||
public function test_has_short_latin_name_true_for_three_alnum(): void
|
||||
{
|
||||
$fields = ['name' => 'A1B'];
|
||||
self::assertTrue(Classifier::has_short_latin_name($fields));
|
||||
}
|
||||
|
||||
public function test_has_short_latin_name_false_for_long_name(): void
|
||||
{
|
||||
$fields = ['your-name' => 'Melissa'];
|
||||
self::assertFalse(Classifier::has_short_latin_name($fields));
|
||||
}
|
||||
|
||||
public function test_has_short_latin_name_false_for_cyrillic(): void
|
||||
{
|
||||
$fields = ['your-name' => 'Иван'];
|
||||
self::assertFalse(Classifier::has_short_latin_name($fields));
|
||||
}
|
||||
|
||||
public function test_has_short_latin_name_false_when_no_name_field(): void
|
||||
{
|
||||
// Только телефон, нет name-полей. FieldDetector::find_name пропустит +79991234567 (digits)
|
||||
$fields = ['tel-1' => '+79991234567'];
|
||||
self::assertFalse(Classifier::has_short_latin_name($fields));
|
||||
}
|
||||
|
||||
public function test_has_short_latin_name_picks_via_field_detector(): void
|
||||
{
|
||||
// text-211 не в списке известных name-ключей, FieldDetector найдёт 'XY' (no digits, len=2)
|
||||
$fields = ['text-211' => 'XY', 'text-212' => '+79991234567'];
|
||||
self::assertTrue(Classifier::has_short_latin_name($fields));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user