public function testDisallowCity() { $filter = new Abbreviation(); $filter->not(['г']); $code = new Code('7877632487908'); $name = new Name('город', new \rezident\KladrJson\row\Abbreviation('г')); $this->assertFalse($filter->isAllowed($name, $code)); $name = new Name('город', new \rezident\KladrJson\row\Abbreviation('р-н')); $this->assertTrue($filter->isAllowed($name, $code)); }
<?php mb_internal_encoding('UTF-8'); use rezident\KladrJson\Application; use rezident\KladrJson\builder\Tree; use rezident\KladrJson\filter\Abbreviation; use rezident\KladrJson\filter\AndCollection; use rezident\KladrJson\filter\Level; use rezident\KladrJson\filter\Status; require 'vendor/autoload.php'; $abbrFilter = new Abbreviation(); $abbrFilter->not(['снт', 'дп', 'тер', 'нп', 'рзд', 'казарма', 'мкр', 'промзона', 'ж/д_будка', 'п/ст', 'ж/д_оп', 'кв-л', 'ж/д_рзд', 'ж/д_ст', 'городок', 'автодорога', 'п/о', 'с/мо', 'ж/д_казарм', 'массив', 'ж/д_платф', 'ж/д_пост', 'погост', 'жилзона', 'п/р', 'ш', 'км', 'днп', 'лпх', 'округ', 'ул']); Tree::$merged = [47 => 78, 50 => 77, 91 => 92]; $filter = new AndCollection([new Status(), new Level(0), $abbrFilter]); $builder = new Tree(); try { (new Application())->run($filter, $builder); } catch (Exception $e) { $reflection = new ReflectionClass($e); echo $reflection->getShortName() . ': ' . $e->getMessage() . PHP_EOL; }