19,7 → 19,7 |
class Tests extends ScriptCommande { |
|
const SCRIPT_NOM = 'tests'; |
const MANUEL_VERSION = '4.3'; |
const MANUEL_VERSION = '4.4'; |
|
private $projet = null; |
private $traitement = null; |
31,6 → 31,7 |
private $colonnes = null; |
private $analyses = null; |
private $noms = null; |
private $erreurs = array(); |
|
private $resultatDao = null; |
private $traitementDao = null; |
128,6 → 129,9 |
$this->lancerTestUnitaire($info); |
} |
} |
|
$info = $this->construireTotalErreur(); |
$this->traiterResultatTest($info); |
} |
|
private function getInfosTest($numero) { |
139,6 → 143,7 |
return $info; |
} |
|
|
public function lancerTestUnitaire($info) { |
Debug::printr($info['numero'].'::'.$info['methode']); |
$methodeDeTest = $info['methode']; |
148,6 → 153,27 |
if (isset($erreurs['special'])) { |
$info = $erreurs; |
} else { |
$info = $this->construireResultatErreur($erreurs, $info); |
} |
|
$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'])) { |
158,14 → 184,27 |
} else { |
$info['resultat'] = true; |
} |
return $info; |
} |
|
$this->traiterResultatTest($info); |
|
if ($info['numero'] < 5) { |
return ($info['resultat'] ? '1' : '0'); |
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; |
208,7 → 247,7 |
|
$nbre_colonnes = count($this->colonnes); |
$info['message'] = $nbre_colonnes; |
if ($nbre_colonnes >= 35) { |
if ($nbre_colonnes >= 37) { |
$info['resultat'] = true; |
} |
|
330,6 → 369,7 |
foreach ($this->noms as &$nom) { |
if ($nom['num_nom'] <= 0) { |
$noms_erreur[] = array($nom['num_nom']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
return $noms_erreur; |
343,11 → 383,13 |
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 |
*/ |
357,6 → 399,7 |
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']); |
} |
} |
} |
373,6 → 416,7 |
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']); |
} |
} |
} |
390,6 → 434,7 |
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']); |
} |
} |
} |
397,15 → 442,35 |
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 |
*/ |
private function testerNumTaxSupEgalZeroUnique() { |
$noms_erreur = array(); |
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. |
416,7 → 481,7 |
} |
|
/** |
* Test #12 |
* Test #13 |
*/ |
private function testerTaxSupPourTaxon() { |
$noms_erreur = array(); |
423,6 → 488,7 |
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; |
429,7 → 495,7 |
} |
|
/** |
* Test #13 |
* Test #14 |
*/ |
private function testerExistenceTaxonSuperieur() { |
$noms_erreur = array(); |
437,6 → 503,7 |
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']); |
} |
} |
} |
444,7 → 511,7 |
} |
|
/** |
* Test #72 |
* Test #15 |
*/ |
private function testerClassificationEspece() { |
$noms_erreur = array(); |
454,6 → 521,7 |
$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']); |
} |
} |
} |
462,7 → 530,7 |
} |
|
/** |
* Test #14 |
* Test #16 |
*/ |
private function testerTransmissionTaxonSuperieur() { |
$noms_erreur = array(); |
471,6 → 539,7 |
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']); |
} |
} |
} |
480,7 → 549,7 |
|
|
/** |
* Test #15 |
* Test #17 |
*/ |
private function testerClassificationRang() { |
$noms_erreur = array(); |
495,6 → 564,7 |
// 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']); |
} |
} |
} |
504,7 → 574,7 |
} |
|
/** |
* Test #16 |
* Test #18 |
*/ |
private function testerClassification() { |
$noms_erreur = array(); |
522,6 → 592,7 |
$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']); |
} |
} |
} |
547,6 → 618,7 |
$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; |
} |
556,7 → 628,7 |
} |
|
/** |
* Test #17 |
* Test #19 |
*/ |
private function testerRang() { |
$rangs = array_flip(explode(',', $this->manuel['rangs'])); |
566,6 → 638,7 |
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; |
572,7 → 645,7 |
} |
|
/** |
* Test #18 |
* Test #20 |
*/ |
private function testerNomCompletSupraGenerique() { |
$noms_erreur = array(); |
584,6 → 657,7 |
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']); |
} |
} |
} |
591,7 → 665,7 |
} |
|
/** |
* Test #19 |
* Test #21 |
*/ |
private function testerNomCompletGenre() { |
$noms_erreur = array(); |
603,6 → 677,7 |
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']); |
} |
} |
} |
610,7 → 685,7 |
} |
|
/** |
* Test #20 |
* Test #22 |
*/ |
private function testerNomCompletInfraGenre() { |
$noms_erreur = array(); |
631,6 → 706,7 |
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']); |
} |
} |
} |
638,7 → 714,7 |
} |
|
/** |
* Test #21 |
* Test #23 |
*/ |
private function testerNomCompletEspece() { |
$noms_erreur = array(); |
657,6 → 733,7 |
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']); |
} |
} |
} |
664,7 → 741,7 |
} |
|
/** |
* Test #22 |
* Test #24 |
*/ |
private function testerNomCompletInfraSpecifique() { |
$noms_erreur = array(); |
685,6 → 762,7 |
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']); |
} |
} |
} |
692,7 → 770,7 |
} |
|
/** |
* Test #23 |
* Test #25 |
*/ |
private function testerNomSupraGeneriqueEspaces() { |
$noms_erreur = array(); |
701,6 → 779,7 |
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']); |
} |
} |
} |
708,7 → 787,7 |
} |
|
/** |
* Test #24 |
* Test #26 |
*/ |
private function testerNomSupraGeneriqueSyntaxe() { |
$noms_erreur = array(); |
717,6 → 796,7 |
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']); |
} |
} |
} |
724,7 → 804,7 |
} |
|
/** |
* Test #25 |
* Test #27 |
*/ |
private function testerNomSupraGeneriqueRang() { |
$noms_erreur = array(); |
732,6 → 812,7 |
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']); |
} |
} |
} |
739,7 → 820,7 |
} |
|
/** |
* Test #26 |
* Test #28 |
*/ |
private function testerGenreEspaces() { |
$noms_erreur = array(); |
748,6 → 829,7 |
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']); |
} |
} |
} |
755,7 → 837,7 |
} |
|
/** |
* Test #27 |
* Test #29 |
*/ |
private function testerGenreSyntaxe() { |
$noms_erreur = array(); |
766,6 → 848,7 |
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; |
} |
} |
775,7 → 858,7 |
} |
|
/** |
* Test #28 |
* Test #30 |
*/ |
private function testerGenreRang() { |
$noms_erreur = array(); |
783,6 → 866,7 |
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']); |
} |
} |
} |
790,7 → 874,7 |
} |
|
/** |
* Test #29 |
* Test #31 |
*/ |
private function testerEpitheteInfraGeneriqueSyntaxe() { |
$noms_erreur = array(); |
799,6 → 883,7 |
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']); |
} |
} |
} |
806,7 → 891,7 |
} |
|
/** |
* Test #30 |
* Test #32 |
*/ |
private function testerEpitheteInfraGeneriqueRang() { |
$noms_erreur = array(); |
814,6 → 899,7 |
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']); |
} |
} |
} |
821,7 → 907,7 |
} |
|
/** |
* Test #31 |
* Test #33 |
*/ |
private function testerEpitheteInfraGeneriqueEspaces() { |
$noms_erreur = array(); |
830,6 → 916,7 |
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']); |
} |
} |
} |
837,7 → 924,7 |
} |
|
/** |
* Test #32 |
* Test #34 |
*/ |
private function testerEpitheteSpEspaces() { |
$noms_erreur = array(); |
846,6 → 933,7 |
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']); |
} |
} |
} |
853,7 → 941,7 |
} |
|
/** |
* Test #33 |
* Test #35 |
*/ |
private function testerEpitheteSpSyntaxe() { |
$noms_erreur = array(); |
868,6 → 956,7 |
($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; |
} |
} |
877,7 → 966,7 |
} |
|
/** |
* Test #34 |
* Test #36 |
*/ |
private function testerEpitheteSpRang() { |
$noms_erreur = array(); |
885,6 → 974,7 |
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']); |
} |
} |
} |
892,7 → 982,7 |
} |
|
/** |
* Test #35 |
* Test #37 |
*/ |
private function testerTypeEpitheteEspaces() { |
$noms_erreur = array(); |
901,6 → 991,7 |
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']); |
} |
} |
} |
908,7 → 999,7 |
} |
|
/** |
* Test #36 |
* Test #38 |
*/ |
private function testerTypeEpitheteSyntaxe() { |
$noms_erreur = array(); |
916,6 → 1007,7 |
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']); |
} |
} |
} |
923,7 → 1015,7 |
} |
|
/** |
* Test #37 |
* Test #39 |
*/ |
private function testerTypeEpitheteHybridite() { |
$noms_erreur = array(); |
931,6 → 1023,7 |
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']); |
} |
} |
} |
938,7 → 1031,7 |
} |
|
/** |
* Test #38 |
* Test #40 |
*/ |
private function testerEpitheteInfraSpEspaces() { |
$noms_erreur = array(); |
947,6 → 1040,7 |
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']); |
} |
} |
} |
954,7 → 1048,7 |
} |
|
/** |
* Test #39 |
* Test #41 |
*/ |
private function testerEpitheteInfraSpSyntaxe() { |
$noms_erreur = array(); |
972,6 → 1066,7 |
$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; |
} |
} |
979,6 → 1074,7 |
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']); |
} |
} |
} |
986,7 → 1082,7 |
} |
|
/** |
* Test #40 |
* Test #42 |
*/ |
private function testerEpitheteInfraSpRang() { |
$noms_erreur = array(); |
994,6 → 1090,7 |
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']); |
} |
} |
} |
1001,7 → 1098,7 |
} |
|
/** |
* Test #41 |
* Test #43 |
*/ |
private function testerGroupeCultivarSyntaxe() { |
$noms_erreur = array(); |
1010,6 → 1107,7 |
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']); |
} |
} |
} |
1017,7 → 1115,7 |
} |
|
/** |
* Test #42 |
* Test #44 |
*/ |
private function testerGroupeCultivarRang() { |
$noms_erreur = array(); |
1025,6 → 1123,7 |
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']); |
} |
} |
} |
1032,7 → 1131,7 |
} |
|
/** |
* Test #43 |
* Test #45 |
*/ |
private function testerCultivarSyntaxe() { |
$noms_erreur = array(); |
1041,6 → 1140,7 |
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']); |
} |
} |
} |
1048,7 → 1148,7 |
} |
|
/** |
* Test #44 |
* Test #46 |
*/ |
private function testerCultivarRang() { |
$noms_erreur = array(); |
1056,6 → 1156,7 |
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']); |
} |
} |
} |
1063,7 → 1164,7 |
} |
|
/** |
* Test #45 |
* Test #47 |
*/ |
private function testerNomCommercialSyntaxe() { |
$noms_erreur = array(); |
1072,6 → 1173,7 |
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']); |
} |
} |
} |
1079,7 → 1181,7 |
} |
|
/** |
* Test #46 |
* Test #48 |
*/ |
private function testerNomCommercialPresenceCultivar() { |
$noms_erreur = array(); |
1086,6 → 1188,7 |
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; |
1092,7 → 1195,7 |
} |
|
/** |
* Test #47 |
* Test #49 |
*/ |
private function testerAuteurSyntaxe() { |
$noms_erreur = array(); |
1101,6 → 1204,7 |
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']); |
} |
} |
} |
1108,7 → 1212,7 |
} |
|
/** |
* Test #48 |
* Test #50 |
*/ |
private function testerAnneeSyntaxe() { |
$noms_erreur = array(); |
1116,6 → 1220,7 |
if ($nom['annee'] != '') { |
if (!$this->verifierAnnee($nom['annee'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['annee'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1123,7 → 1228,7 |
} |
|
/** |
* Test #49 |
* Test #51 |
*/ |
private function testerBiblioOrigineSyntaxe() { |
$noms_erreur = array(); |
1132,6 → 1237,7 |
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']); |
} |
} |
} |
1139,7 → 1245,7 |
} |
|
/** |
* Test #50 |
* Test #52 |
*/ |
private function testerHomonymieSyntaxe() { |
$noms_erreur = array(); |
1147,6 → 1253,7 |
if ($nom['homonyme'] != '') { |
if (!$this->verifierBooleen($nom['homonyme'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['homonyme'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1154,7 → 1261,7 |
} |
|
/** |
* Test #51 |
* Test #53 |
*/ |
private function testerHomonymieExistence() { |
$noms_homonymie = $this->classerNomsParNomComplet(); |
1164,6 → 1271,7 |
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']); |
} |
} |
} |
1172,14 → 1280,15 |
} |
|
/** |
* Test #52 |
* Test #54 |
*/ |
private function testerBasionymeSyntaxe() { |
$noms_erreur = array(); |
foreach ($this->noms as &$nom) { |
if ($nom['basionyme'] != '') { |
if (!$this->verifierNombre($nom['basionyme'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['basionyme'], $nom['exclure_taxref']); |
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']); |
} |
} |
} |
1187,14 → 1296,15 |
} |
|
/** |
* Test #53 |
* Test #55 |
*/ |
private function testerBasionymeExistence() { |
$noms_erreur = array(); |
foreach ($this->noms as &$nom) { |
if ($nom['basionyme'] != '') { |
if (!isset($this->noms[$nom['basionyme']])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['basionyme'], $nom['exclure_taxref']); |
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']); |
} |
} |
} |
1202,7 → 1312,7 |
} |
|
/** |
* Test #54 |
* Test #56 |
*/ |
private function testerSynonymeProparteSyntaxe() { |
$noms_erreur = array(); |
1210,6 → 1320,7 |
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']); |
} |
} |
} |
1217,7 → 1328,7 |
} |
|
/** |
* Test #55 |
* Test #57 |
*/ |
private function testerSynonymeProparteExistence() { |
$noms_erreur = array(); |
1230,8 → 1341,9 |
$num_nom_en_erreur[] = $num_nom; |
} |
} |
if (count($nbre_en_erreur) > 0) { |
if (count($num_nom_en_erreur) > 0) { |
$noms_erreur[] = array($nom['num_nom'], implode(',', $num_nom_en_erreur), $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1239,7 → 1351,7 |
} |
|
/** |
* Test #56 |
* Test #58 |
*/ |
private function testerSynonymeDouteuxSyntaxe() { |
$noms_erreur = array(); |
1247,6 → 1359,7 |
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']); |
} |
} |
} |
1254,7 → 1367,7 |
} |
|
/** |
* Test #57 |
* Test #59 |
*/ |
private function testerSynonymeDouteuxNumNomRetenu() { |
$noms_erreur = array(); |
1261,6 → 1374,7 |
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; |
1267,7 → 1381,7 |
} |
|
/** |
* Test #58 |
* Test #60 |
*/ |
private function testerSynonymeMalAppliqueSyntaxe() { |
$noms_erreur = array(); |
1275,6 → 1389,7 |
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']); |
} |
} |
} |
1282,7 → 1397,7 |
} |
|
/** |
* Test #59 |
* Test #61 |
*/ |
private function testerSynonymeOrthographiqueSyntaxe() { |
$noms_erreur = array(); |
1290,6 → 1405,7 |
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']); |
} |
} |
} |
1297,7 → 1413,7 |
} |
|
/** |
* Test #60 |
* Test #62 |
*/ |
private function testerSynonymeOrthographiqueExistence() { |
$noms_erreur = array(); |
1305,6 → 1421,7 |
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']); |
} |
} |
} |
1312,7 → 1429,7 |
} |
|
/** |
* Test #61 |
* Test #63 |
*/ |
private function testerHybrideParent01Syntaxe() { |
$noms_erreur = array(); |
1320,6 → 1437,7 |
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']); |
} |
} |
} |
1327,7 → 1445,7 |
} |
|
/** |
* Test #62 |
* Test #64 |
*/ |
private function testerHybrideParent01Existence() { |
$noms_erreur = array(); |
1335,6 → 1453,7 |
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']); |
} |
} |
} |
1342,7 → 1461,7 |
} |
|
/** |
* Test #63 |
* Test #65 |
*/ |
private function testerHybrideParent02Syntaxe() { |
$noms_erreur = array(); |
1350,6 → 1469,7 |
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']); |
} |
} |
} |
1357,7 → 1477,7 |
} |
|
/** |
* Test #64 |
* Test #66 |
*/ |
private function testerHybrideParent02Existence() { |
$noms_erreur = array(); |
1365,6 → 1485,7 |
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']); |
} |
} |
} |
1372,8 → 1493,40 |
} |
|
/** |
* Test #65 |
* 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 |
*/ |
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) { |
1380,6 → 1533,7 |
if ($nom['presence'] != '') { |
if (!$this->verifierPresence($nom['presence'])) { |
$noms_erreur[] = array($nom['num_nom'], $nom['presence'], $nom['exclure_taxref']); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |
1387,7 → 1541,7 |
} |
|
/** |
* Test #73 |
* Test #70 |
*/ |
private function testerPresenceExistence() { |
$noms_erreur = array(); |
1395,6 → 1549,7 |
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']); |
} |
} |
} |
1402,7 → 1557,7 |
} |
|
/** |
* Test #66 |
* Test #71 |
*/ |
private function testerStatutOrigineSyntaxe() { |
$noms_erreur = array(); |
1410,6 → 1565,7 |
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']); |
} |
} |
} |
1417,7 → 1573,7 |
} |
|
/** |
* Test #67 |
* Test #72 |
*/ |
private function testerStatutIntroductionSyntaxe() { |
$noms_erreur = array(); |
1425,6 → 1581,7 |
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']); |
} |
} |
} |
1432,7 → 1589,7 |
} |
|
/** |
* Test #68 |
* Test #73 |
*/ |
private function testerStatutCultureSyntaxe() { |
$noms_erreur = array(); |
1440,6 → 1597,7 |
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']); |
} |
} |
} |
1447,7 → 1605,7 |
} |
|
/** |
* Test #69 |
* Test #74 |
*/ |
private function testerExclureTaxRefSyntaxe() { |
$noms_erreur = array(); |
1455,6 → 1613,7 |
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']); |
} |
} |
} |
1462,7 → 1621,7 |
} |
|
/** |
* Test #70 |
* Test #75 |
*/ |
private function testerNomFrancaisUnique() { |
$noms_erreur = array(); |
1470,6 → 1629,7 |
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']); |
} |
} |
} |
1477,7 → 1637,7 |
} |
|
/** |
* Test #71 |
* Test #76 |
*/ |
private function testerExclureTaxRefPresence() { |
$noms_erreur = array(); |
1495,6 → 1655,7 |
$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 |
1504,6 → 1665,7 |
$this->mettreEnValeurAvertissement($nom['statut_introduction']), |
$this->mettreEnValeurAvertissement($nom['statut_culture']) |
); |
$this->ajouterNumNomErreursTest($nom['num_nom']); |
} |
} |
} |