Subversion Repositories Applications.referentiel

Compare Revisions

Ignore whitespace Rev 253 → Rev 254

/trunk/scripts/modules/tests/Tests.php
647,6 → 647,7
*/
private function testerNomCompletInfraSpecifique() {
$noms_erreur = array();
$erreur = null;
foreach ($this->noms as &$nom) {
if ($nom['rang'] > $this->manuel['rang_sp']) {
$nom_sci_ideal = $this->formaterStyleNomGenre($nom['genre']).' '.
837,13 → 838,13
$noms_erreur = array();
foreach ($this->noms as &$nom) {
if ($nom['epithete_sp'] != '') {
$formule_hybridite = (strpos($nom, ' x ') !== false);
$formule_hybridite = (strpos($nom['epithete_sp'], ' x ') !== false);
$mots = explode(' ', $nom['epithete_sp']);
foreach ($mots as $mot) {
// TODO: créer un test qui vérifie la formule d'hybridité en la reconstruisant à partir des parents
// afin que seuls des formules valides parviennent à la fonction
// TODO: verifier que l'épithete n'est pas subsp. var. etc... (faire une liste)
if (!(preg_match('/^[+x]$/', $mot) || $this->verifierEpitheteSp($mot) || ($formule_hybridite && verifierEpitheteGenre($mot)))) {
if (!(preg_match('/^[+x]$/', $mot) || $this->verifierEpitheteSp($mot) ||
($formule_hybridite && $this->verifierEpitheteGenre($mot) && !$this->verifierEstAbbreviationInfraSp($mot)))) {
$epithete_traite = $this->repererEspace($nom['epithete_sp']);
$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']);
break;
1630,6 → 1631,14
return $ok;
}
private function verifierEstAbbreviationInfraSp($mot) {
$ok = false;
if(preg_match($this->manuel['abbr_rangs_infra_specifique'], $mot)) {
$ok = true;
}
return $ok;
}
private function formaterStyleNomGenre(&$genre) {
$genre_fmt = '';
if (preg_match('/^\s*([x+])\s+(.+)$/i', $genre, $match)) {