19,7 → 19,7 |
class Tests extends ScriptCommande { |
|
const SCRIPT_NOM = 'tests'; |
const MANUEL_VERSION = '4.4'; |
const MANUEL_VERSION = '4.3'; |
|
private $projet = null; |
private $traitement = null; |
30,8 → 30,7 |
private $tests = null; |
private $colonnes = null; |
private $analyses = null; |
private $noms = null; |
private $erreurs = array(); |
private $noms = null; |
|
private $resultatDao = null; |
private $traitementDao = null; |
129,9 → 128,6 |
$this->lancerTestUnitaire($info); |
} |
} |
|
$info = $this->construireTotalErreur(); |
$this->traiterResultatTest($info); |
} |
|
private function getInfosTest($numero) { |
142,70 → 138,35 |
$info['resultat'] = false; |
return $info; |
} |
|
|
public function lancerTestUnitaire($info) { |
|
public function lancerTestUnitaire($info) { |
Debug::printr($info['numero'].'::'.$info['methode']); |
$methodeDeTest = $info['methode']; |
$erreurs = $this->$methodeDeTest(); |
|
// Analyse des résultats |
if (isset($erreurs['special'])) { |
$info = $erreurs; |
} else { |
$info = $this->construireResultatErreur($erreurs, $info); |
} |
|
$methodeDeTest = $info['methode']; |
$erreurs = $this->$methodeDeTest(); |
|
// Analyse des résultats |
if (isset($erreurs['special'])) { |
$info = $erreurs; |
} else { |
if (count($erreurs) > 0) { |
$info['message']['entete'] = explode(',', $info['entete']); |
if (isset($info['title'])) { |
$info['message']['title'] = explode(';', $info['title']); |
} |
$info['message']['lignes'] = $erreurs; |
unset($erreurs); |
} else { |
$info['resultat'] = true; |
} |
} |
|
$this->traiterResultatTest($info); |
|
if ($info['numero'] < 5) { |
return ($info['resultat'] ? '1' : '0'); |
} |
} |
private function ajouterNumNomErreursTest($num_nom) { |
if (count($this->erreurs) < 1000) { |
if (isset($this->erreurs[$num_nom])) { |
$this->erreurs[$num_nom] += 1; |
} else { |
$this->erreurs[$num_nom] = 1; |
} |
} |
} |
} |
|
|
private function construireResultatErreur($erreurs, $info) { |
if (count($erreurs) > 0) { |
$info['message']['entete'] = explode(',', $info['entete']); |
if (isset($info['title'])) { |
$info['message']['title'] = explode(';', $info['title']); |
} |
$info['message']['lignes'] = $erreurs; |
unset($erreurs); |
} else { |
$info['resultat'] = true; |
} |
return $info; |
} |
|
private function construireTotalErreur() { |
if (count($this->erreurs) > 0) { |
arsort($this->erreurs); |
$info['abr'] = "erreurs par num_nom"; |
$info['nom'] = "erreurs -> num_nom"; |
$info['description'] = "nombre d'erreurs détecté par num_nom"; |
$info['numero'] = "0"; |
$info['message']['entete'] = array('num-nom', "nombre d'erreurs"); |
foreach ($this->erreurs as $num_nom=>$nombre) { |
$erreurs[] = array(0 => $num_nom, 1 => $nombre); |
} |
$info['message']['lignes'] = $erreurs; |
unset($this->erreurs); |
} else { |
$info['resultat'] = true; |
} |
return $info; |
} |
|
private function verifierResultats(&$resultats) { |
$ok = true; |
foreach ($resultats as $resultat) { |
247,7 → 208,7 |
|
$nbre_colonnes = count($this->colonnes); |
$info['message'] = $nbre_colonnes; |
if ($nbre_colonnes >= 37) { |
if ($nbre_colonnes >= 35) { |
$info['resultat'] = true; |
} |
|
369,7 → 330,6 |
foreach ($this->noms as &$nom) { |
if ($nom['num_nom'] <= 0) { |
$noms_erreur[] = array($nom['num_nom']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
return $noms_erreur; |
383,13 → 343,11 |
foreach ($this->noms as &$nom) { |
if ($nom['num_nom_retenu'] != '' && $nom['num_nom_retenu'] <= 0) { |
$noms_erreur[] = array($nom['num_nom'], $nom['num_nom_retenu']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
return $noms_erreur; |
} |
|
|
/** |
* Test #08 |
*/ |
399,7 → 357,6 |
if ($nom['num_nom_retenu'] != '' && $nom['num_nom_retenu'] != $nom['num_nom']) { |
if ($nom['num_nom_retenu'] != 0 && !isset($this->noms[$nom['num_nom_retenu']])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['num_nom_retenu'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
416,7 → 373,6 |
if ($nom['num_nom_retenu'] != 0 && isset($this->noms[$nom['num_nom_retenu']])) { |
if ($this->noms[$nom['num_nom_retenu']]['exclure_taxref'] != 0) { |
$noms_erreur[] = array($nom['num_nom'], $nom['num_nom_retenu'], $this->noms[$nom['num_nom_retenu']]['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
434,7 → 390,6 |
if ($nom['num_nom_retenu'] != 0 && isset($this->noms[$nom['num_nom_retenu']])) { |
if ($this->noms[$nom['num_nom_retenu']]['num_nom'] != $this->noms[$nom['num_nom_retenu']]['num_nom_retenu']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['num_nom_retenu'], $this->noms[$nom['num_nom_retenu']]['num_nom_retenu']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
442,28 → 397,9 |
return $noms_erreur; |
} |
|
/** |
* Test #11 |
*/ |
private function testerDoublonsNomSci() { |
$noms_erreur = array(); |
$noms_complets = array(); |
foreach ($this->noms as &$nom) { |
$a = $nom['nom_sci']." ".$nom['auteur']." ".$nom['nom_addendum']." ".$nom['biblio_origine']; |
if (isset($noms_complets[$a])) { |
$noms_erreur[] = array($nom['num_nom'], $a, $noms_complets[$a], $nom['exclure_taxref'], $nom['homonyme']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} else { |
$noms_complets[$a] = $nom['num_nom']; |
} |
|
} |
return $noms_erreur; |
} |
|
|
/** |
* Test #12 |
* Test #11 |
*/ |
private function testerNumTaxSupEgalZeroUnique() { |
$noms_erreur = array(); |
470,7 → 406,6 |
foreach ($this->noms as &$nom) { |
if (preg_match('/^0$/', $nom['num_tax_sup'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['num_tax_sup']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
// Ce test est spécial car le nombre de noms en erreurs doit être supérieur à 1 et non à 0 pour être KO. |
481,7 → 416,7 |
} |
|
/** |
* Test #13 |
* Test #12 |
*/ |
private function testerTaxSupPourTaxon() { |
$noms_erreur = array(); |
488,7 → 423,6 |
foreach ($this->noms as &$nom) { |
if ($nom['num_nom_retenu'] != $nom['num_nom'] && $nom['num_tax_sup'] != '') { |
$noms_erreur[] = array($nom['num_nom'], $nom['num_tax_sup'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
return $noms_erreur; |
495,7 → 429,7 |
} |
|
/** |
* Test #14 |
* Test #13 |
*/ |
private function testerExistenceTaxonSuperieur() { |
$noms_erreur = array(); |
503,7 → 437,6 |
if ($nom['num_nom_retenu'] == $nom['num_nom']) { |
if ($nom['num_tax_sup'] != 0 && !isset($this->noms[$nom['num_tax_sup']])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['num_tax_sup'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
511,7 → 444,7 |
} |
|
/** |
* Test #15 |
* Test #72 |
*/ |
private function testerClassificationEspece() { |
$noms_erreur = array(); |
521,7 → 454,6 |
$nom_sup = $this->noms[$nom['num_tax_sup']]; |
if ($nom_sup['rang'] != 220 ) { |
$noms_erreur[] = array($nom['num_nom'], $nom['rang'], $nom_sup['num_nom'], $nom_sup['rang'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
530,7 → 462,7 |
} |
|
/** |
* Test #16 |
* Test #14 |
*/ |
private function testerTransmissionTaxonSuperieur() { |
$noms_erreur = array(); |
539,7 → 471,6 |
if ($nom['num_tax_sup'] != 0 && isset($this->noms[$nom['num_tax_sup']])) { |
if ($this->noms[$nom['num_tax_sup']]['exclure_taxref'] != 0) { |
$noms_erreur[] = array($nom['num_nom'], $nom['num_tax_sup'], $this->noms[$nom['num_tax_sup']]['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
549,7 → 480,7 |
|
|
/** |
* Test #17 |
* Test #15 |
*/ |
private function testerClassificationRang() { |
$noms_erreur = array(); |
564,7 → 495,6 |
// Prise en compte de l'exception des clades |
if (! ($nom_sup['rang'] == 70 && $nom['rang'] == 70)) { |
$noms_erreur[] = array($nom['num_nom'], $nom['rang'], $nom_sup['num_nom'], $nom_sup['rang'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
574,7 → 504,7 |
} |
|
/** |
* Test #18 |
* Test #16 |
*/ |
private function testerClassification() { |
$noms_erreur = array(); |
592,7 → 522,6 |
$this->noms_ok[$nom['num_nom']] = $classif_ok; |
} else { |
$noms_erreur[] = array($nom['num_nom'], $classif_ok, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
618,7 → 547,6 |
$retour = $this->remonterClassif($this->noms[$nom['num_tax_sup']]); |
if ($retour === true) { |
$this->noms_ok[$nom['num_tax_sup']] = true; |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
return $retour; |
} |
628,7 → 556,7 |
} |
|
/** |
* Test #19 |
* Test #17 |
*/ |
private function testerRang() { |
$rangs = array_flip(explode(',', $this->manuel['rangs'])); |
638,7 → 566,6 |
foreach ($this->noms as &$nom) { |
if (!isset($rangs[$nom['rang']])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['rang'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
return $noms_erreur; |
645,7 → 572,7 |
} |
|
/** |
* Test #20 |
* Test #18 |
*/ |
private function testerNomCompletSupraGenerique() { |
$noms_erreur = array(); |
657,7 → 584,6 |
if ($nom['nom_sci'] != $nom_sci_ideal) { |
$nom_sci_traite = $this->repererEspace($nom['nom_sci']); |
$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
665,7 → 591,7 |
} |
|
/** |
* Test #21 |
* Test #19 |
*/ |
private function testerNomCompletGenre() { |
$noms_erreur = array(); |
677,7 → 603,6 |
if ($nom['nom_sci'] != $nom_sci_ideal) { |
$nom_sci_traite = $this->repererEspace($nom['nom_sci']); |
$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
685,7 → 610,7 |
} |
|
/** |
* Test #22 |
* Test #20 |
*/ |
private function testerNomCompletInfraGenre() { |
$noms_erreur = array(); |
706,7 → 631,6 |
if ($nom['nom_sci'] != $nom_sci_ideal) { |
$nom_sci_traite = $this->repererEspace($nom['nom_sci']); |
$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
714,7 → 638,7 |
} |
|
/** |
* Test #23 |
* Test #21 |
*/ |
private function testerNomCompletEspece() { |
$noms_erreur = array(); |
733,7 → 657,6 |
if ($nom['nom_sci'] != $nom_sci_ideal) { |
$nom_sci_traite = $this->repererEspace($nom['nom_sci']); |
$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal, $erreur, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
741,7 → 664,7 |
} |
|
/** |
* Test #24 |
* Test #22 |
*/ |
private function testerNomCompletInfraSpecifique() { |
$noms_erreur = array(); |
762,7 → 685,6 |
if ($nom['nom_sci'] != $nom_sci_ideal) { |
$nom_sci_traite = $this->repererEspace($nom['nom_sci']); |
$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal, $erreur, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
770,7 → 692,7 |
} |
|
/** |
* Test #25 |
* Test #23 |
*/ |
private function testerNomSupraGeneriqueEspaces() { |
$noms_erreur = array(); |
779,7 → 701,6 |
if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s+$)/', $nom['nom_supra_generique'])) { |
$nom_supra_generique_traite = $this->repererEspace($nom['nom_supra_generique']); |
$noms_erreur[] = array($nom['num_nom'], $nom_supra_generique_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
787,7 → 708,7 |
} |
|
/** |
* Test #26 |
* Test #24 |
*/ |
private function testerNomSupraGeneriqueSyntaxe() { |
$noms_erreur = array(); |
796,7 → 717,6 |
if (!preg_match('/^[A-ZÄËḦÏÖÜẄẌŸ][-a-zäëḧïöẗüẅẍÿ]+$/', $nom['nom_supra_generique'])) { |
$nom_supra_generique_traite = $this->repererEspace($nom['nom_supra_generique']); |
$noms_erreur[] = array($nom['num_nom'], $nom_supra_generique_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
804,7 → 724,7 |
} |
|
/** |
* Test #27 |
* Test #25 |
*/ |
private function testerNomSupraGeneriqueRang() { |
$noms_erreur = array(); |
812,7 → 732,6 |
if ($nom['nom_supra_generique'] != '') { |
if ($nom['rang'] >= $this->manuel['rang_genre']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
820,7 → 739,7 |
} |
|
/** |
* Test #28 |
* Test #26 |
*/ |
private function testerGenreEspaces() { |
$noms_erreur = array(); |
829,7 → 748,6 |
if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s{2,}(?!:\s+)|(?!:\s+)\s+$)/', $nom['genre'])) { |
$nom_traite = $this->repererEspace($nom['genre']); |
$noms_erreur[] = array($nom['num_nom'], $nom_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
837,7 → 755,7 |
} |
|
/** |
* Test #29 |
* Test #27 |
*/ |
private function testerGenreSyntaxe() { |
$noms_erreur = array(); |
848,7 → 766,6 |
if (!(preg_match('/^[+x]$/', $mot) || $this->verifierEpitheteGenre($mot))) { |
$nom_traite = $this->repererEspace($nom['genre']); |
$noms_erreur[] = array($nom['num_nom'], $nom_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
break; |
} |
} |
858,7 → 775,7 |
} |
|
/** |
* Test #30 |
* Test #28 |
*/ |
private function testerGenreRang() { |
$noms_erreur = array(); |
866,7 → 783,6 |
if ($nom['genre'] != '') { |
if ($nom['rang'] < $this->manuel['rang_genre']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
874,7 → 790,7 |
} |
|
/** |
* Test #31 |
* Test #29 |
*/ |
private function testerEpitheteInfraGeneriqueSyntaxe() { |
$noms_erreur = array(); |
883,7 → 799,6 |
if (!preg_match('/^[A-ZÄËḦÏÖÜẄẌŸ][-a-zäëḧïöẗüẅẍÿ]+/', $nom['epithete_infra_generique'])) { |
$epithete_traite = $this->repererEspace($nom['epithete_infra_generique']); |
$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
891,7 → 806,7 |
} |
|
/** |
* Test #32 |
* Test #30 |
*/ |
private function testerEpitheteInfraGeneriqueRang() { |
$noms_erreur = array(); |
899,7 → 814,6 |
if ($nom['epithete_infra_generique'] != '') { |
if ($nom['rang'] <= $this->manuel['rang_genre'] || $nom['rang'] >= $this->manuel['rang_sp']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
907,7 → 821,7 |
} |
|
/** |
* Test #33 |
* Test #31 |
*/ |
private function testerEpitheteInfraGeneriqueEspaces() { |
$noms_erreur = array(); |
916,7 → 830,6 |
if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s{2,}(?!:\s+)|(?!:\s+)\s+$)/', $nom['epithete_infra_generique'])) { |
$epithete_traite = $this->repererEspace($nom['epithete_infra_generique']); |
$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
924,7 → 837,7 |
} |
|
/** |
* Test #34 |
* Test #32 |
*/ |
private function testerEpitheteSpEspaces() { |
$noms_erreur = array(); |
933,7 → 846,6 |
if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s{2,}(?!:\s+)|(?!:\s+)\s+$)/', $nom['epithete_sp'])) { |
$epithete_traite = $this->repererEspace($nom['epithete_sp']); |
$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
941,7 → 853,7 |
} |
|
/** |
* Test #35 |
* Test #33 |
*/ |
private function testerEpitheteSpSyntaxe() { |
$noms_erreur = array(); |
956,7 → 868,6 |
($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']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
break; |
} |
} |
966,7 → 877,7 |
} |
|
/** |
* Test #36 |
* Test #34 |
*/ |
private function testerEpitheteSpRang() { |
$noms_erreur = array(); |
974,7 → 885,6 |
if ($nom['epithete_sp'] != '') { |
if ($nom['rang'] < $this->manuel['rang_sp']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
982,7 → 892,7 |
} |
|
/** |
* Test #37 |
* Test #35 |
*/ |
private function testerTypeEpitheteEspaces() { |
$noms_erreur = array(); |
991,7 → 901,6 |
if (preg_match('/\s+/', $nom['type_epithete'])) { |
$valeur_traitee = $this->repererEspace($nom['epithete_sp']); |
$noms_erreur[] = array($nom['num_nom'], $valeur_traitee, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
999,7 → 908,7 |
} |
|
/** |
* Test #38 |
* Test #36 |
*/ |
private function testerTypeEpitheteSyntaxe() { |
$noms_erreur = array(); |
1007,7 → 916,6 |
if ($nom['type_epithete'] != '') { |
if (!$this->verifierTypeEpithete($nom['type_epithete'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['type_epithete'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1015,7 → 923,7 |
} |
|
/** |
* Test #39 |
* Test #37 |
*/ |
private function testerTypeEpitheteHybridite() { |
$noms_erreur = array(); |
1023,7 → 931,6 |
if ($nom['type_epithete'] != '') { |
if (preg_match('/^(?:n-|notho-)/', $nom['type_epithete'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['type_epithete'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1031,7 → 938,7 |
} |
|
/** |
* Test #40 |
* Test #38 |
*/ |
private function testerEpitheteInfraSpEspaces() { |
$noms_erreur = array(); |
1040,7 → 947,6 |
if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s{2,}(?!:\s+)|(?!:\s+)\s+$)/', $nom['epithete_infra_sp'])) { |
$epithete_traite = $this->repererEspace($nom['epithete_infra_sp']); |
$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1048,7 → 954,7 |
} |
|
/** |
* Test #41 |
* Test #39 |
*/ |
private function testerEpitheteInfraSpSyntaxe() { |
$noms_erreur = array(); |
1066,7 → 972,6 |
$formule_hybridite_valide)) { |
$epithete_traite = $this->repererEspace($nom['epithete_infra_sp']); |
$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
break; |
} |
} |
1074,7 → 979,6 |
if($formule_hybridite && !$hybride_contient_abbreviation_infra_sp) { |
$epithete_traite = $this->repererEspace($nom['epithete_infra_sp']); |
$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1082,7 → 986,7 |
} |
|
/** |
* Test #42 |
* Test #40 |
*/ |
private function testerEpitheteInfraSpRang() { |
$noms_erreur = array(); |
1090,7 → 994,6 |
if ($nom['epithete_infra_sp'] != '') { |
if ($nom['rang'] < $this->manuel['rang_sp']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1098,7 → 1001,7 |
} |
|
/** |
* Test #43 |
* Test #41 |
*/ |
private function testerGroupeCultivarSyntaxe() { |
$noms_erreur = array(); |
1107,7 → 1010,6 |
if (!$this->verifierEpitheteGroupeCultivar($nom['cultivar_groupe'])) { |
$epithete_traite = $this->repererEspace($nom['cultivar_groupe']); |
$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1115,7 → 1017,7 |
} |
|
/** |
* Test #44 |
* Test #42 |
*/ |
private function testerGroupeCultivarRang() { |
$noms_erreur = array(); |
1123,7 → 1025,6 |
if ($nom['cultivar_groupe'] != '') { |
if ($nom['rang'] < $this->manuel['rang_genre']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1131,7 → 1032,7 |
} |
|
/** |
* Test #45 |
* Test #43 |
*/ |
private function testerCultivarSyntaxe() { |
$noms_erreur = array(); |
1140,7 → 1041,6 |
if (!$this->verifierEpitheteCultivar($nom['cultivar'])) { |
$epithete_traite = $this->repererEspace($nom['cultivar']); |
$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1148,7 → 1048,7 |
} |
|
/** |
* Test #46 |
* Test #44 |
*/ |
private function testerCultivarRang() { |
$noms_erreur = array(); |
1156,7 → 1056,6 |
if ($nom['cultivar'] != '') { |
if ($nom['rang'] < $this->manuel['rang_genre']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1164,7 → 1063,7 |
} |
|
/** |
* Test #47 |
* Test #45 |
*/ |
private function testerNomCommercialSyntaxe() { |
$noms_erreur = array(); |
1173,7 → 1072,6 |
if (!$this->verifierNomCommercial($nom['nom_commercial'])) { |
$epithete_traite = $this->repererEspace($nom['nom_commercial']); |
$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1181,7 → 1079,7 |
} |
|
/** |
* Test #48 |
* Test #46 |
*/ |
private function testerNomCommercialPresenceCultivar() { |
$noms_erreur = array(); |
1188,7 → 1086,6 |
foreach ($this->noms as &$nom) { |
if ((isset($nom['nom_commercial']) && $nom['nom_commercial'] != '') && ($nom['cultivar'] == '' && $nom['cultivar_groupe'] == '')) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
return $noms_erreur; |
1195,7 → 1092,7 |
} |
|
/** |
* Test #49 |
* Test #47 |
*/ |
private function testerAuteurSyntaxe() { |
$noms_erreur = array(); |
1204,7 → 1101,6 |
if (!$this->verifierAuteur($nom['auteur'])) { |
$intitule_traite = $this->repererEspace($nom['auteur']); |
$noms_erreur[] = array($nom['num_nom'], $intitule_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1212,7 → 1108,7 |
} |
|
/** |
* Test #50 |
* Test #48 |
*/ |
private function testerAnneeSyntaxe() { |
$noms_erreur = array(); |
1220,7 → 1116,6 |
if ($nom['annee'] != '') { |
if (!$this->verifierAnnee($nom['annee'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['annee'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1228,7 → 1123,7 |
} |
|
/** |
* Test #51 |
* Test #49 |
*/ |
private function testerBiblioOrigineSyntaxe() { |
$noms_erreur = array(); |
1237,7 → 1132,6 |
if (!$this->verifierBiblioOrigine($nom['biblio_origine'])) { |
$biblio_traite = $this->repererEspace($nom['biblio_origine']); |
$noms_erreur[] = array($nom['num_nom'], $biblio_traite, $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1245,7 → 1139,7 |
} |
|
/** |
* Test #52 |
* Test #50 |
*/ |
private function testerHomonymieSyntaxe() { |
$noms_erreur = array(); |
1253,7 → 1147,6 |
if ($nom['homonyme'] != '') { |
if (!$this->verifierBooleen($nom['homonyme'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['homonyme'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1261,7 → 1154,7 |
} |
|
/** |
* Test #53 |
* Test #51 |
*/ |
private function testerHomonymieExistence() { |
$noms_homonymie = $this->classerNomsParNomComplet(); |
1271,7 → 1164,6 |
if ($nom['homonyme'] != '0' && $nom['homonyme'] != '') { |
if ($noms_homonymie[$nom['nom_sci']] <= 1) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1280,15 → 1172,14 |
} |
|
/** |
* Test #54 |
* Test #52 |
*/ |
private function testerBasionymeSyntaxe() { |
$noms_erreur = array(); |
foreach ($this->noms as &$nom) { |
if ($nom['num_basionyme'] != '') { |
if (!$this->verifierNombre($nom['num_basionyme'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['num_basionyme'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
if ($nom['basionyme'] != '') { |
if (!$this->verifierNombre($nom['basionyme'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['basionyme'], $nom['exclure_taxref']); |
} |
} |
} |
1296,15 → 1187,14 |
} |
|
/** |
* Test #55 |
* Test #53 |
*/ |
private function testerBasionymeExistence() { |
$noms_erreur = array(); |
foreach ($this->noms as &$nom) { |
if ($nom['num_basionyme'] != '') { |
if (!isset($this->noms[$nom['num_basionyme']])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['num_basionyme'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
if ($nom['basionyme'] != '') { |
if (!isset($this->noms[$nom['basionyme']])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['basionyme'], $nom['exclure_taxref']); |
} |
} |
} |
1312,7 → 1202,7 |
} |
|
/** |
* Test #56 |
* Test #54 |
*/ |
private function testerSynonymeProparteSyntaxe() { |
$noms_erreur = array(); |
1320,7 → 1210,6 |
if ($nom['synonyme_proparte'] != '') { |
if (!$this->verifierNombreSuite($nom['synonyme_proparte'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_proparte'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1328,7 → 1217,7 |
} |
|
/** |
* Test #57 |
* Test #55 |
*/ |
private function testerSynonymeProparteExistence() { |
$noms_erreur = array(); |
1341,9 → 1230,8 |
$num_nom_en_erreur[] = $num_nom; |
} |
} |
if (count($num_nom_en_erreur) > 0) { |
if (count($nbre_en_erreur) > 0) { |
$noms_erreur[] = array($nom['num_nom'], implode(',', $num_nom_en_erreur), $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1351,7 → 1239,7 |
} |
|
/** |
* Test #58 |
* Test #56 |
*/ |
private function testerSynonymeDouteuxSyntaxe() { |
$noms_erreur = array(); |
1359,7 → 1247,6 |
if ($nom['synonyme_douteux'] != '') { |
if (!$this->verifierBooleen($nom['synonyme_douteux'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_douteux'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1367,7 → 1254,7 |
} |
|
/** |
* Test #59 |
* Test #57 |
*/ |
private function testerSynonymeDouteuxNumNomRetenu() { |
$noms_erreur = array(); |
1374,7 → 1261,6 |
foreach ($this->noms as &$nom) { |
if ($nom['synonyme_douteux'] == 1 && !$this->verifierNombre($nom['num_nom_retenu'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_douteux'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
return $noms_erreur; |
1381,7 → 1267,7 |
} |
|
/** |
* Test #60 |
* Test #58 |
*/ |
private function testerSynonymeMalAppliqueSyntaxe() { |
$noms_erreur = array(); |
1389,7 → 1275,6 |
if ($nom['synonyme_mal_applique'] != '') { |
if (!$this->verifierBooleen($nom['synonyme_mal_applique'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_mal_applique'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1397,7 → 1282,7 |
} |
|
/** |
* Test #61 |
* Test #59 |
*/ |
private function testerSynonymeOrthographiqueSyntaxe() { |
$noms_erreur = array(); |
1405,7 → 1290,6 |
if ($nom['synonyme_orthographique'] != '') { |
if (!$this->verifierNombre($nom['synonyme_orthographique'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_orthographique'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1413,7 → 1297,7 |
} |
|
/** |
* Test #62 |
* Test #60 |
*/ |
private function testerSynonymeOrthographiqueExistence() { |
$noms_erreur = array(); |
1421,7 → 1305,6 |
if ($nom['synonyme_orthographique'] != '') { |
if (!isset($this->noms[$nom['synonyme_orthographique']])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_orthographique'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1429,7 → 1312,7 |
} |
|
/** |
* Test #63 |
* Test #61 |
*/ |
private function testerHybrideParent01Syntaxe() { |
$noms_erreur = array(); |
1437,7 → 1320,6 |
if ($nom['hybride_parent_01'] != '') { |
if (!$this->verifierNombre($nom['hybride_parent_01'])) { |
$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_01']), $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1445,7 → 1327,7 |
} |
|
/** |
* Test #64 |
* Test #62 |
*/ |
private function testerHybrideParent01Existence() { |
$noms_erreur = array(); |
1453,7 → 1335,6 |
if ($nom['hybride_parent_01'] != '' && $nom['hybride_parent_01'] != '0') { |
if (!isset($this->noms[$nom['hybride_parent_01']])) { |
$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_01']), $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1461,7 → 1342,7 |
} |
|
/** |
* Test #65 |
* Test #63 |
*/ |
private function testerHybrideParent02Syntaxe() { |
$noms_erreur = array(); |
1469,7 → 1350,6 |
if ($nom['hybride_parent_02'] != '') { |
if (!$this->verifierNombre($nom['hybride_parent_02'])) { |
$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_02']), $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1477,7 → 1357,7 |
} |
|
/** |
* Test #66 |
* Test #64 |
*/ |
private function testerHybrideParent02Existence() { |
$noms_erreur = array(); |
1485,7 → 1365,6 |
if ($nom['hybride_parent_02'] != '') { |
if (!isset($this->noms[$nom['hybride_parent_02']]) && $nom['hybride_parent_02'] != '0') { |
$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_02']), $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1493,40 → 1372,8 |
} |
|
/** |
* Test #67 |
*/ |
private function testerNumTypeSyntaxe() { |
$noms_erreur = array(); |
foreach ($this->noms as &$nom) { |
if ($nom['num_type'] != '') { |
if (!$this->verifierNombre($nom['num_type'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['num_type'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
return $noms_erreur; |
} |
|
/** |
* Test #68 |
* Test #65 |
*/ |
private function testerNumTypeExistence() { |
$noms_erreur = array(); |
foreach ($this->noms as &$nom) { |
if ($nom['num_type'] != '') { |
if (!isset($this->noms[$nom['num_type']])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['num_type'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
return $noms_erreur; |
} |
|
/** |
* Test #69 |
*/ |
private function testerPresenceSyntaxe() { |
$noms_erreur = array(); |
foreach ($this->noms as &$nom) { |
1533,7 → 1380,6 |
if ($nom['presence'] != '') { |
if (!$this->verifierPresence($nom['presence'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['presence'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1541,7 → 1387,7 |
} |
|
/** |
* Test #70 |
* Test #73 |
*/ |
private function testerPresenceExistence() { |
$noms_erreur = array(); |
1549,7 → 1395,6 |
if ($nom['num_nom_retenu'] == $nom['num_nom'] && $nom['exclure_taxref'] == 0) { |
if ($nom['presence'] == "") { |
$noms_erreur[] = array($nom['num_nom'],$nom['num_nom_retenu'], $nom['presence'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1557,7 → 1402,7 |
} |
|
/** |
* Test #71 |
* Test #66 |
*/ |
private function testerStatutOrigineSyntaxe() { |
$noms_erreur = array(); |
1565,7 → 1410,6 |
if ($nom['statut_origine'] != '') { |
if (!$this->verifierStatutOrigine($nom['statut_origine'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['statut_origine'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1573,7 → 1417,7 |
} |
|
/** |
* Test #72 |
* Test #67 |
*/ |
private function testerStatutIntroductionSyntaxe() { |
$noms_erreur = array(); |
1581,7 → 1425,6 |
if ($nom['statut_introduction'] != '') { |
if (!$this->verifierStatutIntroduction($nom['statut_introduction'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['statut_introduction'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1589,7 → 1432,7 |
} |
|
/** |
* Test #73 |
* Test #68 |
*/ |
private function testerStatutCultureSyntaxe() { |
$noms_erreur = array(); |
1597,7 → 1440,6 |
if ($nom['statut_culture'] != '') { |
if (!$this->verifierStatutCulture($nom['statut_culture'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['statut_culture'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1605,7 → 1447,7 |
} |
|
/** |
* Test #74 |
* Test #69 |
*/ |
private function testerExclureTaxRefSyntaxe() { |
$noms_erreur = array(); |
1613,7 → 1455,6 |
if ($nom['exclure_taxref'] != '' && $nom['exclure_taxref'] != null) { |
if (!preg_match('/^(?:0|1|9)$/', $nom['exclure_taxref'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1621,7 → 1462,7 |
} |
|
/** |
* Test #75 |
* Test #70 |
*/ |
private function testerNomFrancaisUnique() { |
$noms_erreur = array(); |
1629,7 → 1470,6 |
if ($nom['nom_francais'] != '' && $nom['nom_francais'] != null) { |
if (strpbrk($nom['nom_francais'],',;')) { |
$noms_erreur[] = array($nom['num_nom'], $this->repererCaracteresInvalidesNomFrancais($nom['nom_francais'])); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1637,7 → 1477,7 |
} |
|
/** |
* Test #76 |
* Test #71 |
*/ |
private function testerExclureTaxRefPresence() { |
$noms_erreur = array(); |
1655,7 → 1495,6 |
$this->mettreEnValeurAvertissement($nom['statut_introduction']), |
$this->mettreEnValeurAvertissement($nom['statut_culture']) |
); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} else { |
//TODO: le comportement est identique mais il faudrait pouvoir afficher un avertissement |
// si le champ présence n'est pas rempli mais que l'une des colonne de statut l'est |
1665,7 → 1504,6 |
$this->mettreEnValeurAvertissement($nom['statut_introduction']), |
$this->mettreEnValeurAvertissement($nom['statut_culture']) |
); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |