Subversion Repositories Applications.referentiel

Rev

Rev 161 | Rev 164 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 161 Rev 163
Line 207... Line 207...
207
	// TESTS
207
	// TESTS
Line 208... Line 208...
208
	
208
	
209
	private function testerStatutCultureSyntaxe() {
209
	private function testerStatutCultureSyntaxe() {
210
		$info = array('nom' => 'statut_culture -> syntaxe',
210
		$info = array('nom' => 'statut_culture -> syntaxe',
211
			'description' => "Le champ statut_culture peut contenir :\n".
211
			'description' => "Le champ statut_culture peut contenir :\n".
212
			" - le symbole tiret «-» une autre information non référencée...\n".
212
			" - le symbole tiret «-» précédant une autre information non référencée...\n".
213
			" - une première lettre en majuscule indiquant le code standard attribué à ce taxon.\n".
213
			" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
214
			" - Cette première lettre peut être suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
214
			" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
215
			"un code de présence spécifique au référentiel.",
215
			"un code de présence spécifique au référentiel.",
Line 216... Line 216...
216
			'resultat' => false);
216
			'resultat' => false);
217
		
217
		
Line 238... Line 238...
238
	}
238
	}
Line 239... Line 239...
239
	
239
	
240
	private function testerStatutIntroductionSyntaxe() {
240
	private function testerStatutIntroductionSyntaxe() {
241
		$info = array('nom' => 'statut_introduction -> syntaxe',
241
		$info = array('nom' => 'statut_introduction -> syntaxe',
242
			'description' => "Le champ statut_introduction peut contenir :\n".
242
			'description' => "Le champ statut_introduction peut contenir :\n".
243
			" - le symbole tiret «-» une autre information non référencée...\n".
243
			" - le symbole tiret «-» précédant une autre information non référencée...\n".
244
			" - une première lettre en majuscule indiquant le code standard attribué à ce taxon.\n".
244
			" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
245
			" - Cette première lettre peut être suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
245
			" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
246
			"un code de présence spécifique au référentiel.",
246
			"un code de présence spécifique au référentiel.",
Line 247... Line 247...
247
			'resultat' => false);
247
			'resultat' => false);
248
		
248
		
Line 269... Line 269...
269
	}
269
	}
Line 270... Line 270...
270
	
270
	
271
	private function testerStatutOrigineSyntaxe() {
271
	private function testerStatutOrigineSyntaxe() {
272
		$info = array('nom' => 'statut_origine -> syntaxe',
272
		$info = array('nom' => 'statut_origine -> syntaxe',
273
			'description' => "Le champ statut_origine peut contenir :\n".
273
			'description' => "Le champ statut_origine peut contenir :\n".
274
			" - le symbole tiret «-» une autre information non référencée...\n".
274
			" - le symbole tiret «-» précédant une autre information non référencée...\n".
275
			" - une première lettre en majuscule indiquant le code standard attribué à ce taxon.\n".
275
			" - une première lettre en majuscule indiquant le code standard attribué à ce taxon.\n".
276
			" - Cette première lettre peut être suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
276
			" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
277
			"un code de présence spécifique au référentiel.",
277
			"un code de présence spécifique au référentiel.",
Line 278... Line 278...
278
			'resultat' => false);
278
			'resultat' => false);
279
		
279
		
Line 300... Line 300...
300
	}
300
	}
Line 301... Line 301...
301
	
301
	
302
	private function testerPresenceSyntaxe() {
302
	private function testerPresenceSyntaxe() {
303
		$info = array('nom' => 'presence -> syntaxe',
303
		$info = array('nom' => 'presence -> syntaxe',
304
			'description' => "Le champ presence contient soit :\n".
304
			'description' => "Le champ presence contient soit :\n".
305
			" - le symbole tiret «-» une autre information non référencée...\n".
305
			" - le symbole tiret «-» précédant une autre information non référencée...\n".
306
			" - une première lettre en majuscule indiquant le code standard attribué à ce taxon.\n".
306
			" - une première lettre en majuscule indiquant le code standard attribué à ce taxon,\n".
307
			" - Cette première lettre peut être suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
307
			" - éventuellement suivie d'un tiret puis d'une deuxième lettre en majuscule indiquant ".
308
			"un code de présence spécifique au référentiel.",
308
			"un code de présence spécifique au référentiel.",
Line 309... Line 309...
309
			'resultat' => false);
309
			'resultat' => false);
310
		
310
		
Line 359... Line 359...
359
	}
359
	}
Line 360... Line 360...
360
	
360
	
361
	private function testerHybrideParent02Syntaxe() {
361
	private function testerHybrideParent02Syntaxe() {
362
		$info = array('nom' => 'hybride_parent_02 -> syntaxe',
362
		$info = array('nom' => 'hybride_parent_02 -> syntaxe',
363
			'description' => "Le champ hybride_parent_02 contient soit :\n".
363
			'description' => "Le champ hybride_parent_02 contient soit :\n".
364
			" - une valeur vide.\n".
364
			" - une valeur vide,\n".
365
			" - un nombre",
365
			" - un nombre.",
Line 366... Line 366...
366
			'resultat' => false);
366
			'resultat' => false);
367
		
367
		
368
		// Réalisation du test
368
		// Réalisation du test
Line 417... Line 417...
417
	}
417
	}
Line 418... Line 418...
418
	
418
	
419
	private function testerHybrideParent01Syntaxe() {
419
	private function testerHybrideParent01Syntaxe() {
420
		$info = array('nom' => 'hybride_parent_01 -> syntaxe',
420
		$info = array('nom' => 'hybride_parent_01 -> syntaxe',
421
			'description' => "Le champ hybride_parent_01 contient soit :\n".
421
			'description' => "Le champ hybride_parent_01 contient soit :\n".
422
			" - une valeur vide.\n".
422
			" - une valeur vide,\n".
423
			" - un nombre",
423
			" - un nombre.",
Line 424... Line 424...
424
			'resultat' => false);
424
			'resultat' => false);
425
		
425
		
426
		// Réalisation du test
426
		// Réalisation du test
Line 445... Line 445...
445
		$this->traiterResultatTest($info);
445
		$this->traiterResultatTest($info);
446
	}
446
	}
Line 447... Line 447...
447
	
447
	
448
	private function testerSynonymeOrthographiqueExistence() {
448
	private function testerSynonymeOrthographiqueExistence() {
449
		$info = array('nom' => 'synonyme_orthographique -> existence',
449
		$info = array('nom' => 'synonyme_orthographique -> existence',
450
			'description' => "Si le champ synonyme_orthographique contient un nombre alors il doit correspondre à une valeur du champ ".
450
			'description' => "Si le champ synonyme_orthographique contient un nombre alors il doit correspondre ".
451
			"num_nom.",
451
			"à une valeur du champ num_nom.",
Line 452... Line 452...
452
			'resultat' => false);
452
			'resultat' => false);
453
		
453
		
454
		// Réalisation du test
454
		// Réalisation du test
Line 474... Line 474...
474
	}
474
	}
Line 475... Line 475...
475
	
475
	
476
	private function testerSynonymeOrthographiqueSyntaxe() {
476
	private function testerSynonymeOrthographiqueSyntaxe() {
477
		$info = array('nom' => 'synonyme_orthographique -> syntaxe',
477
		$info = array('nom' => 'synonyme_orthographique -> syntaxe',
478
			'description' => "Le champ synonyme_orthographique contient soit :\n".
478
			'description' => "Le champ synonyme_orthographique contient soit :\n".
479
			" - une valeur vide.\n".
479
			" - une valeur vide,\n".
480
			" - un nombre",
480
			" - un nombre.",
Line 481... Line 481...
481
			'resultat' => false);
481
			'resultat' => false);
482
		
482
		
483
		// Réalisation du test
483
		// Réalisation du test
Line 503... Line 503...
503
	}
503
	}
Line 504... Line 504...
504
	
504
	
505
	private function testerSynonymeMalAppliqueSyntaxe() {
505
	private function testerSynonymeMalAppliqueSyntaxe() {
506
		$info = array('nom' => 'synonyme_mal_applique -> syntaxe',
506
		$info = array('nom' => 'synonyme_mal_applique -> syntaxe',
507
			'description' => "Le champ synonyme_mal_applique contient soit :\n".
507
			'description' => "Le champ synonyme_mal_applique contient soit :\n".
508
			" - une valeur vide.\n".
508
			" - une valeur vide,\n".
509
			" - le chiffre 1",
509
			" - le chiffre 1.",
Line 510... Line 510...
510
			'resultat' => false);
510
			'resultat' => false);
511
		
511
		
512
		// Réalisation du test
512
		// Réalisation du test
Line 533... Line 533...
533
	
533
	
534
	
534
	
535
	private function testerSynonymeDouteuxSyntaxe() {
535
	private function testerSynonymeDouteuxSyntaxe() {
536
		$info = array('nom' => 'synonyme_douteux -> syntaxe',
536
		$info = array('nom' => 'synonyme_douteux -> syntaxe',
537
			'description' => "Le champ synonyme_douteux contient soit :\n".
537
			'description' => "Le champ synonyme_douteux contient soit :\n".
538
			" - une valeur vide.\n".
538
			" - une valeur vide,\n".
Line 539... Line 539...
539
			" - le chiffre 1",
539
			" - le chiffre 1.",
540
			'resultat' => false);
540
			'resultat' => false);
541
		
541
		
Line 622... Line 622...
622
	}
622
	}
Line 623... Line 623...
623
	
623
	
624
	private function testerSynonymeProparteSyntaxe() {
624
	private function testerSynonymeProparteSyntaxe() {
625
		$info = array('nom' => 'synonyme_proparte -> syntaxe',
625
		$info = array('nom' => 'synonyme_proparte -> syntaxe',
626
			'description' => "Le champ synonyme_proparte contient soit :\n".
626
			'description' => "Le champ synonyme_proparte contient soit :\n".
627
			" - une valeur vide.\n".
627
			" - une valeur vide,\n".
628
			" - un nombre.\n".
628
			" - un nombre,\n".
629
			" - une suite de nombre séparés par des virgules.",
629
			" - une suite de nombres séparés par des virgules.",
Line 630... Line 630...
630
			'resultat' => false);
630
			'resultat' => false);
631
		
631
		
632
		// Réalisation du test
632
		// Réalisation du test
Line 680... Line 680...
680
	}
680
	}
Line 681... Line 681...
681
	
681
	
682
	private function testerBasionymeSyntaxe() {
682
	private function testerBasionymeSyntaxe() {
683
		$info = array('nom' => 'basionyme -> syntaxe',
683
		$info = array('nom' => 'basionyme -> syntaxe',
684
			'description' => "Le champ basionyme contient :\n".
684
			'description' => "Le champ basionyme contient :\n".
-
 
685
								" - une valeur vide,\n".
685
			" - un nombre ou une valeur vide.\n",
686
								" - un nombre.",
Line 686... Line 687...
686
			'resultat' => false);
687
			'resultat' => false);
687
		
688
		
688
		// Réalisation du test
689
		// Réalisation du test
Line 739... Line 740...
739
	}
740
	}
Line 740... Line 741...
740
	
741
	
741
	private function testerHomonymieSyntaxe() {
742
	private function testerHomonymieSyntaxe() {
742
		$info = array('nom' => 'homonyme -> syntaxe',
743
		$info = array('nom' => 'homonyme -> syntaxe',
743
			'description' => "Le champ homonyme contient :\n".
744
			'description' => "Le champ homonyme contient :\n".
-
 
745
				" - une valeur vide,\n".
744
			" - le chiffre 1 ou une valeur vide.\n",
746
				" - le chiffre 1.",
Line 745... Line 747...
745
			'resultat' => false);
747
			'resultat' => false);
746
		
748
		
747
		// Réalisation du test
749
		// Réalisation du test
Line 768... Line 770...
768
	
770
	
769
	private function testerBiblioOrigineSyntaxe() {
771
	private function testerBiblioOrigineSyntaxe() {
770
		$info = array('nom' => 'biblio_origine -> syntaxe',
772
		$info = array('nom' => 'biblio_origine -> syntaxe',
771
			'description' => "Le champ biblio_origine se compose de plusieurs parties séparées par des caractères ".
773
			'description' => "Le champ biblio_origine se compose de plusieurs parties séparées par des caractères ".
772
			"précis qui sont dans l'ordre de gauche à droite :\n".
774
			"précis qui sont dans l'ordre de gauche à droite :\n".
773
			" - Éventuellement le mot « in » suivi d'un intitulé auteur (utilisé pour indiquer l'intitulé auteur de ".
775
			" - éventuellement, le mot « in » suivi d'un intitulé auteur (utilisé pour indiquer l'intitulé auteur de ".
774
			"l'ouvrage global dans lequel la publication est parue).\n".
776
			"l'ouvrage dans lequel la publication est parue),\n".
775
			" - point-virgule « ; » (si l'info précédent a été renseignée)\n".
777
			" - point-virgule « ; » (si l'info précédent a été renseignée),\n".
776
			" - Abréviation ou nom de l'ouvrage ou de la revue selon le standard en vigueur dans le code du nom. ".
778
			" - abréviation, ou nom, de l'ouvrage ou de la revue selon le standard en vigueur dans le code du nom. ".
777
			"Cette information ne doit pas contenir de caractère virgule « , ».\n".
779
			"Cette information ne doit pas contenir de caractère virgule « , »,\n".
778
			" - virgule « , »\n".
780
			" - virgule « , »,\n".
779
			" - Les informations permettant d'identifier plus précisément le document contenant le nom... ".
781
			" - informations permettant d'identifier plus précisément le document contenant le nom... ".
780
			"Par exemple, l'éditeur, le tome, le numéro d'édition, le volume... séparées par des virgules ou d'autres ".
782
			"(par exemple, l'éditeur, le tome, le numéro d'édition, le volume...) séparées par des virgules ou d'autres ".
781
			"caractères sauf deux points « : ».\n".
783
			"caractères sauf deux points « : ».\n".
782
			" - deux points « : »\n".
784
			" - deux points « : »,\n".
783
			" - la page contenant la publication du nom ou un ensemble de page (première et dernière page de ".
785
			" - numéro(s) de la page contenant la publication du nom ou de l'ensemble de pages (première et dernière ".
784
			"l'ensemble séparées par un tiret « - »). Quelques fois des numéros ou d'autres informations indiquant ".
786
			"pages de l'ensemble séparées par un tiret « - »). Quelques fois des numéros ou d'autres informations indiquant ".
785
			"dans le document la position du nom. Le tiret « - » doit toujours servir à séparer un ensemble.",
787
			"la position du nom dans le document. Le tiret « - » doit toujours servir à séparer un ensemble.",
Line 786... Line 788...
786
			'resultat' => false);
788
			'resultat' => false);
787
		
789
		
788
		// Réalisation du test
790
		// Réalisation du test
Line 809... Line 811...
809
	}
811
	}
Line 810... Line 812...
810
	
812
	
811
	private function testerAnneeSyntaxe() {
813
	private function testerAnneeSyntaxe() {
812
		$info = array('nom' => 'annee -> syntaxe',
814
		$info = array('nom' => 'annee -> syntaxe',
813
			'description' => "Le champ annee doit :\n".
815
			'description' => "Le champ annee doit :\n".
814
			" - contenir un nombre de 4 chiffre\n".
816
			" - contenir un nombre de 4 chiffres,\n".
815
			" - être supérieur ou égal à 1753 ",
817
			" - être supérieur ou égal à 1753.",
Line 816... Line 818...
816
			'resultat' => false);
818
			'resultat' => false);
817
		
819
		
818
		// Réalisation du test
820
		// Réalisation du test
Line 838... Line 840...
838
	}
840
	}
Line 839... Line 841...
839
	
841
	
840
	private function testerAuteurSyntaxe() {
842
	private function testerAuteurSyntaxe() {
841
		$info = array('nom' => 'auteur -> syntaxe',
843
		$info = array('nom' => 'auteur -> syntaxe',
842
			'description' => "Le champ auteur doit :\n".
844
			'description' => "Le champ auteur doit :\n".
-
 
845
			" - contenir l'intitulé complet des noms de l'auteur, ou des auteurs, ayant publié à l'origine la combinaison latine courante.\n".
843
			" - contenir l'intitulé complet des noms de l'auteur ou des auteurs ayant publiés à l'origine la combinaison latine courante.\n".
846
    		" - OU débuter par le mot « sensu » et contenir l'intitulé complet des noms de l'auteur, ou des auteurs, ".
844
    		" - ou débuter par le mot « sensu » et contient l'intitulé complet des noms de l'auteur ou des auteurs ayant publiés un nom dont la description ne correspond pas à celle de l'auteur ou des auteurs d'origine.\n".
847
			"ayant publié un nom dont la description ne correspond pas à celle de l'auteur, ou des auteurs, d'origine.\n".
845
			" - se composer de caractères alphabétiques (A-Z, a-z), incluant les signes diacritiques, le symbole point (.), les paires de parenthèses ( () ), les apostrophes, l'esperluette (&) et l'espace ( ).\n".
848
			" - se composer de caractères alphabétiques (A-Z, a-z), incluant les signes diacritiques, le symbole point (.), les paires de parenthèses ( () ), les apostrophes, l'esperluette (&) et l'espace ( ).\n".
846
			" - contenir, si nécessaire, des abréviations de noms d'auteurs respectant les standards.\n".
849
			" - contenir, si nécessaire, des abréviations de noms d'auteurs respectant les standards.\n".
847
			" - contenir une translittération des noms d'alphabet cyrillique, arabe, chinois... en alphabet latin.\n".
850
			" - contenir une translittération des noms d'alphabet cyrillique, arabe, chinois... en alphabet latin.\n".
848
			" - inclure entre parenthèses l'intitulé des noms de l'auteur ou des auteurs ayant publié le basionyme.\n".
851
			" - inclure entre parenthèses l'intitulé des noms de l'auteur ou des auteurs ayant publié le basionyme.\n".
Line 904... Line 907...
904
		$this->traiterResultatTest($info);
907
		$this->traiterResultatTest($info);
905
	}
908
	}
Line 906... Line 909...
906
	
909
	
907
	private function testerNomCommercialPresenceCultivar() {
910
	private function testerNomCommercialPresenceCultivar() {
908
		$info = array('nom' => 'nom_commercial -> groupe_cultivar OU cultivar non vide',
911
		$info = array('nom' => 'nom_commercial -> groupe_cultivar OU cultivar non vide',
909
			'description' => "Si le champ nom_commercial contier un nom commercial alors le champ cultivar OU ".
912
			'description' => "Si le champ nom_commercial contient un nom commercial alors le champ cultivar OU ".
910
				"cultivar_groupe ne doit pas être vide.",
913
				"cultivar_groupe ne doit pas être vide.",
Line 911... Line 914...
911
			'resultat' => false);
914
			'resultat' => false);
912
		
915
		
Line 931... Line 934...
931
	}
934
	}
Line 932... Line 935...
932
	
935
	
933
	private function testerCultivarSyntaxe() {
936
	private function testerCultivarSyntaxe() {
934
		$info = array('nom' => 'cultivar -> syntaxe',
937
		$info = array('nom' => 'cultivar -> syntaxe',
935
			'description' => "Le champ cultivar_groupe doit contenir :\n".
938
			'description' => "Le champ cultivar_groupe doit contenir :\n".
936
				" - un nom de cultivar conforme aux règles du Code Internationnal de Nomenclature des Plantes ".
939
				" - un nom de cultivar conforme aux règles du Code Internationnal de Nomenclature \n".
937
				"Cultivées (CINPC) qui se compose de caractères alphanumériques (A-Z,a-z et 0-9) incluant ".
940
				"   des Plantes Cultivées (CINPC), c.-à-d. composer de caractères alphanumériques \n".
938
				"signes diacritiques et marques de ponctuations.\n".
941
				"   (A-Z,a-z et 0-9) incluant signes diacritiques et marques de ponctuations.\n".
939
				" - un nom en alphabet latin ce qui implique une translittération des noms d'alphabet cyrillique, ".
942
				" - un nom en alphabet latin, ce qui implique une translittération des noms d'alphabet \n".
940
				"arabe, chinois...\n".
943
				"   cyrillique, arabe, chinois...\n".
941
				" - une lettre majuscule obligatoire pour le premier caractère du premier mot et pour les autres mots ".
944
				" - une lettre majuscule obligatoire pour le premier caractère du premier mot et pour \n".
942
				"importants mais pas pour les mots mineurs.\n".
945
				"   les autres mots importants mais pas pour les mots mineurs.\n".
943
				"Ne doit pas contenir :\n".
946
				"Ne doit pas contenir :\n".
944
				" - cv., convar. ou de guillemets simples (').\n",
947
				" - cv., convar. ou de guillemets simples (').\n",
Line 945... Line 948...
945
			'resultat' => false);
948
			'resultat' => false);
Line 995... Line 998...
995
	}
998
	}
Line 996... Line 999...
996
	
999
	
997
	private function testerGroupeCultivarSyntaxe() {
1000
	private function testerGroupeCultivarSyntaxe() {
998
		$info = array('nom' => 'cultivar_groupe -> syntaxe',
1001
		$info = array('nom' => 'cultivar_groupe -> syntaxe',
999
			'description' => "Le champ cultivar_groupe doit contenir un nom de groupe de cultivar conforme aux règles ".
1002
			'description' => "Le champ cultivar_groupe doit contenir un nom de groupe de cultivar conforme aux règles ".
1000
				"du code des plantes cultivées qui se compose de caractères alphanumériques (A-Z,a-z et 0-9) incluant ".
1003
				"du code des plantes cultivées, c.-à-d. composer de caractères alphanumériques (A-Z,a-z et 0-9) incluant ".
1001
				"signes diacritiques et marques de ponctuations.\n".
1004
				"signes diacritiques et marques de ponctuations.\n".
1002
				"Il ne doit pas contenir le mot Groupe, l'abbréviation «gp» ou des parenthèses.\n".
1005
				"Il ne doit pas contenir le mot Groupe, l'abbréviation «gp» ou des parenthèses.\n".
1003
				"Il peut contir à la fin l'abréviation «gx» pour distinguer les groupes des grex.",
1006
				"Il peut se terminer par l'abréviation «gx» pour distinguer les groupes des grex.",
Line 1004... Line 1007...
1004
			'resultat' => false);
1007
			'resultat' => false);
1005
		
1008
		
1006
		// Réalisation du test
1009
		// Réalisation du test
Line 1053... Line 1056...
1053
		$this->traiterResultatTest($info);
1056
		$this->traiterResultatTest($info);
1054
	}
1057
	}
Line 1055... Line 1058...
1055
	
1058
	
1056
	private function testerEpitheteInfraSpEspaces() {
1059
	private function testerEpitheteInfraSpEspaces() {
1057
		$info = array('nom' => 'epithete_infra_sp -> espaces en trop',
1060
		$info = array('nom' => 'epithete_infra_sp -> espaces en trop',
1058
			'description' => "Le champ epithete_infra_sp ne doit pas contenir d'espace avant ou aprés le nom.\n".
1061
			'description' => "Le champ epithete_infra_sp ne doit pas contenir d'espace avant ou après le nom.\n".
1059
				"Si des espaces sont compris dans la valeur du champ, il ne doit pas y avoir plusieurs espaces consécutifs.",
1062
				"Si des espaces sont compris dans la valeur du champ, il ne doit pas en avoir plusieurs consécutifs.",
Line 1060... Line 1063...
1060
			'resultat' => false);
1063
			'resultat' => false);
1061
		
1064
		
1062
		// Réalisation du test
1065
		// Réalisation du test
Line 1083... Line 1086...
1083
	}
1086
	}
Line 1084... Line 1087...
1084
	
1087
	
1085
	private function testerEpitheteInfraSpSyntaxe() {
1088
	private function testerEpitheteInfraSpSyntaxe() {
1086
		$info = array('nom' => 'epithete_infra_sp -> syntaxe',
1089
		$info = array('nom' => 'epithete_infra_sp -> syntaxe',
1087
			'description' => "Le champ epithete_infra_sp peut contenir :\n".
1090
			'description' => "Le champ epithete_infra_sp peut contenir :\n".
1088
			 	" - un mot unique composé de lettres minuscules avec ou sans tréma (¨) et de tirets (-). \n".
1091
			 	" - un mot unique composé de lettres minuscules, avec ou sans tréma (¨), et de tirets (-). \n".
1089
				"	Il commence par une lettre minuscule (avec ou sans tréma).\n". 
1092
				"	Il commence par une lettre minuscule (avec ou sans tréma).\n". 
1090
				"	Il peut être précédé par le signe + ou la lettre x suivi d'un espace.\n".
1093
				"	Il peut être précédé par le signe + ou la lettre x suivi d'un espace.\n".
1091
				" - une formule d'hybridité composée d'une série de noms d'espèce ou d'infra espèce (au moins 2) séparés entre eux \n".
1094
				" - une formule d'hybridité composée d'une série de noms d'espèce ou d'infra espèce \n".
1092
				"	par la lettre x entourée de caractères espaces.",
1095
				"	(au moins 2) séparés entre eux par la lettre x entourée de caractères espaces.",
Line 1093... Line 1096...
1093
			'resultat' => false);
1096
			'resultat' => false);
1094
		
1097
		
1095
		// Réalisation du test
1098
		// Réalisation du test
Line 1172... Line 1175...
1172
		$this->traiterResultatTest($info);
1175
		$this->traiterResultatTest($info);
1173
	}
1176
	}
Line 1174... Line 1177...
1174
	
1177
	
1175
	private function testerTypeEpitheteSyntaxe() {
1178
	private function testerTypeEpitheteSyntaxe() {
1176
		$info = array('nom' => 'type_epithete -> syntaxe',
1179
		$info = array('nom' => 'type_epithete -> syntaxe',
1177
			'description' => "Le champ type_epithete doit contenir un mot unique composé de lettres minuscules sans ".
1180
			'description' => "Le champ type_epithete doit contenir un mot unique composé de lettres minuscules, sans ".
1178
				" accents et de tirets (-). Il commence par une lettre minuscule sans accent.",
1181
				" accents, et de tirets (-). Il commence par une lettre minuscule sans accent.",
Line 1179... Line 1182...
1179
			'resultat' => false);
1182
			'resultat' => false);
1180
		
1183
		
1181
		// Réalisation du test
1184
		// Réalisation du test
Line 1241... Line 1244...
1241
		return ($info['resultat'] ? '1' : '0');
1244
		return ($info['resultat'] ? '1' : '0');
1242
	}
1245
	}
Line 1243... Line 1246...
1243
	
1246
	
1244
	private function testerNomDesChamps($colonnes) {
1247
	private function testerNomDesChamps($colonnes) {
1245
		$info = array('nom' => 'Structure -> noms des champs',
1248
		$info = array('nom' => 'Structure -> noms des champs',
-
 
1249
			'description' => 'Les noms des champs de la table contenant le référentiel doivent être conformes à ceux '. 
1246
			'description' => 'Les champs de la table contenant le référentiel doivent être conforme à ceux définit par le manuel technique.',
1250
								'définis par le manuel technique.',
Line 1247... Line 1251...
1247
			'resultat' => false);
1251
			'resultat' => false);
1248
		
1252
		
1249
		$champs_attendus = explode(',', $this->manuel['champs']);
1253
		$champs_attendus = explode(',', $this->manuel['champs']);
Line 1269... Line 1273...
1269
		return ($info['resultat'] ? '1' : '0');
1273
		return ($info['resultat'] ? '1' : '0');
1270
	}
1274
	}
Line 1271... Line 1275...
1271
	
1275
	
1272
	private function testerTypeDesChamps($colonnes) {
1276
	private function testerTypeDesChamps($colonnes) {
1273
		$info = array('nom' => 'Structure -> types des champs',
1277
		$info = array('nom' => 'Structure -> types des champs',
-
 
1278
			'description' => 'Les types des champs de la table contenant le référentiel doivent être conformes à ceux '.
1274
			'description' => 'Les types des champs de la table contenant le référentiel doivent être conforme à ceux définit par le manuel technique.',
1279
								'définis par le manuel technique.',
Line 1275... Line 1280...
1275
			'resultat' => false);
1280
			'resultat' => false);
1276
		
1281
		
1277
		$champs_attendus = explode(',', $this->manuel['champs_type']);
1282
		$champs_attendus = explode(',', $this->manuel['champs_type']);
Line 1309... Line 1314...
1309
		return ($info['resultat'] ? '1' : '0');
1314
		return ($info['resultat'] ? '1' : '0');
1310
	}
1315
	}
Line 1311... Line 1316...
1311
	
1316
	
1312
	private function testerTailleDesChamps($colonnes, $analyses) {
1317
	private function testerTailleDesChamps($colonnes, $analyses) {
1313
		$info = array('nom' => 'Structure -> champs tronqués',
1318
		$info = array('nom' => 'Structure -> champs tronqués',
1314
			'description' => "Vérifie que le risque éventuel que des données de type texte insérées ".
-
 
1315
				"dans la table aient pu être tronquées lors de leur insertion.\n".
1319
			'description' => "Evalue le risque que des données de type texte aient pu être tronquées lors de leur insertion.\n".
1316
				"Un résultat de type KO ne signifie pas forcément un problème à résoudre mais attire l'attention du coordinateur ".
1320
				"Un résultat de type KO ne signifie pas forcément un problème à résoudre mais attire l'attention du coordinateur ".
1317
				"sur un problème éventuel.",
1321
				"sur un problème éventuel.",
Line 1318... Line 1322...
1318
			'resultat' => false);
1322
			'resultat' => false);
Line 1435... Line 1439...
1435
		$this->traiterResultatTest($info);
1439
		$this->traiterResultatTest($info);
1436
	}
1440
	}
Line 1437... Line 1441...
1437
	
1441
	
1438
	private function testerTaxSupPourTaxon() {
1442
	private function testerTaxSupPourTaxon() {
1439
		$info = array('nom' => 'Classification -> uniquement pour les taxons',
1443
		$info = array('nom' => 'Classification -> uniquement pour les taxons',
1440
			'description' => "Seul les enregistrements représentant un taxon doivent posséder une valeur dans le champ num_tax_sup.\n".
1444
			'description' => "Seuls les enregistrements représentant un taxon doivent posséder une valeur dans le champ num_tax_sup.\n".
1441
				"Si num_nom_retenu est différent de num_nom (= nom synonyme) alors num_tax_sup doit être vide.",
1445
				"Si num_nom_retenu est différent de num_nom (= nom synonyme) alors num_tax_sup doit être vide.",
Line 1442... Line 1446...
1442
			'resultat' => false);
1446
			'resultat' => false);
1443
		
1447
		
Line 1459... Line 1463...
1459
		$this->traiterResultatTest($info);
1463
		$this->traiterResultatTest($info);
1460
	}
1464
	}
Line 1461... Line 1465...
1461
	
1465
	
1462
	private function testerExitenceTaxonSuperieur() {
1466
	private function testerExitenceTaxonSuperieur() {
1463
		$info = array('nom' => 'Classification -> existence du taxon supérieur',
1467
		$info = array('nom' => 'Classification -> existence du taxon supérieur',
1464
			'description' => "Pour chaque enregistrement représentant un taxon doit posséder un taxon supérieur sauf la racine de la classification.",
1468
			'description' => "Chaque enregistrement représentant un taxon doit posséder un taxon supérieur sauf la racine de la classification.",
Line 1465... Line 1469...
1465
			'resultat' => false);
1469
			'resultat' => false);
1466
		
1470
		
1467
		// Réalisation du test
1471
		// Réalisation du test
Line 1484... Line 1488...
1484
		$this->traiterResultatTest($info);
1488
		$this->traiterResultatTest($info);
1485
	}
1489
	}
Line 1486... Line 1490...
1486
	
1490
	
1487
	private function testerClassificationRang() {
1491
	private function testerClassificationRang() {
1488
		$info = array('nom' => 'Classification -> taxon supérieur avec rang inférieur',
1492
		$info = array('nom' => 'Classification -> taxon supérieur avec rang inférieur',
1489
			'description' => "Pour chaque enregistrement représentant un taxon, chaque taxon supérieur doit avoir un rang inférieur au taxon courant.",
1493
			'description' => "Pour chaque enregistrement représentant un taxon, le taxon supérieur doit avoir un rang inférieur au taxon courant.",
Line 1490... Line 1494...
1490
			'resultat' => false);
1494
			'resultat' => false);
1491
		
1495
		
1492
		// Réalisation du test
1496
		// Réalisation du test
Line 1512... Line 1516...
1512
		$this->traiterResultatTest($info);
1516
		$this->traiterResultatTest($info);
1513
	}
1517
	}
Line 1514... Line 1518...
1514
	
1518
	
1515
	private function testerClassification() {
1519
	private function testerClassification() {
1516
		$info = array('nom' => 'Classification -> racine liée à chaque noeud',
1520
		$info = array('nom' => 'Classification -> racine liée à chaque noeud',
1517
			'description' => "Pour chaque enregistrement, la classification doit pouvoir être remonté jusqu'à un même nom unique possédant une valeur num_tax_sup de 0.",
1521
			'description' => "Pour chaque enregistrement, la classification doit pouvoir être remontée jusqu'à un nom unique possédant une valeur num_tax_sup de 0.",
Line 1518... Line 1522...
1518
			'resultat' => false);
1522
			'resultat' => false);
1519
		
1523
		
1520
		// Réalisation du test
1524
		// Réalisation du test
Line 1574... Line 1578...
1574
		}
1578
		}
1575
	}
1579
	}
Line 1576... Line 1580...
1576
	
1580
	
1577
	private function testerRang() {
1581
	private function testerRang() {
1578
		$info = array('nom' => 'rang',
1582
		$info = array('nom' => 'rang',
1579
			'description' => "Le rang doit correspondre à un valeur numérique définit dans le manuel.",
1583
			'description' => "Le rang doit correspondre à une valeur numérique définie dans le manuel.",
Line 1580... Line 1584...
1580
			'resultat' => false);
1584
			'resultat' => false);
Line 1581... Line 1585...
1581
		
1585
		
Line 1599... Line 1603...
1599
		$this->traiterResultatTest($info);
1603
		$this->traiterResultatTest($info);
1600
	}
1604
	}
Line 1601... Line 1605...
1601
	
1605
	
1602
	private function testerNomCompletSupraGenerique() {
1606
	private function testerNomCompletSupraGenerique() {
1603
		$info = array('nom' => 'nom_sci -> noms supra-génériques',
1607
		$info = array('nom' => 'nom_sci -> noms supra-génériques',
1604
			'description' => "Si le rang est < à {$this->manuel['rang_genre']} le nom_sci doit correspondre à la valeur du champ nom_supra_generique. ".
1608
			'description' => "Si le rang est < à {$this->manuel['rang_genre']}, le nom_sci doit correspondre à la valeur du champ nom_supra_generique. ".
1605
				"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.",
1609
				"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.",
Line 1606... Line 1610...
1606
			'resultat' => false);
1610
			'resultat' => false);
1607
		
1611
		
Line 1630... Line 1634...
1630
		$this->traiterResultatTest($info);
1634
		$this->traiterResultatTest($info);
1631
	}
1635
	}
Line 1632... Line 1636...
1632
	
1636
	
1633
	private function testerNomCompletGenre() {
1637
	private function testerNomCompletGenre() {
1634
		$info = array('nom' => 'nom_sci -> noms de genres',
1638
		$info = array('nom' => 'nom_sci -> noms de genres',
1635
			'description' => "Si le rang est = à {$this->manuel['rang_genre']} le nom_sci doit correspondre à la valeur du champ genre. ".
1639
			'description' => "Si le rang est = à {$this->manuel['rang_genre']}, le nom_sci doit correspondre à la valeur du champ genre. ".
1636
				"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.",
1640
				"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.",
Line 1637... Line 1641...
1637
			'resultat' => false);
1641
			'resultat' => false);
1638
		
1642
		
Line 1661... Line 1665...
1661
		$this->traiterResultatTest($info);
1665
		$this->traiterResultatTest($info);
1662
	}
1666
	}
Line 1663... Line 1667...
1663
	
1667
	
1664
	private function testerNomCompletInfraGenre() {
1668
	private function testerNomCompletInfraGenre() {
1665
		$info = array('nom' => 'nom_sci -> noms infra-génériques',
1669
		$info = array('nom' => 'nom_sci -> noms infra-génériques',
-
 
1670
			'description' => "Si le rang est > à {$this->manuel['rang_genre']} et < à {$this->manuel['rang_sp']},".
1666
			'description' => "Si le rang est > à {$this->manuel['rang_genre']} et < à {$this->manuel['rang_sp']} le nom_sci doit correspondre à une des formules suivantes : \n".
1671
			" le nom_sci doit correspondre à une des formules suivantes : \n".
1667
			" genre + ' ' + type_epithete + ' ' + epithete_infra_generique \n".
1672
			" genre + ' ' + type_epithete + ' ' + epithete_infra_generique \n".
1668
			" genre + ' ' + epithete_infra_generique + ' ' + type_epithete=agg. \n".
1673
			" genre + ' ' + epithete_infra_generique + ' ' + type_epithete=agg. \n".
1669
			"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.",
1674
			"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.",
Line 1704... Line 1709...
1704
		$this->traiterResultatTest($info);
1709
		$this->traiterResultatTest($info);
1705
	}
1710
	}
Line 1706... Line 1711...
1706
	
1711
	
1707
	private function testerNomCompletEspece() {
1712
	private function testerNomCompletEspece() {
1708
		$info = array('nom' => "nom_sci -> noms d'espèce",
1713
		$info = array('nom' => "nom_sci -> noms d'espèce",
1709
			'description' => "Si le rang est = à {$this->manuel['rang_sp']} le nom_sci doit correspondre à la formule : \n".
1714
			'description' => "Si le rang est = à {$this->manuel['rang_sp']}, le nom_sci doit correspondre à la formule : \n".
1710
				" genre + ' ' + epithete_sp \n".
1715
				" genre + ' ' + epithete_sp \n".
1711
				"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.",
1716
				"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.",
Line 1712... Line 1717...
1712
			'resultat' => false);
1717
			'resultat' => false);
Line 1738... Line 1743...
1738
		$this->traiterResultatTest($info);
1743
		$this->traiterResultatTest($info);
1739
	}
1744
	}
Line 1740... Line 1745...
1740
	
1745
	
1741
	private function testerNomCompletInfraSpecifique() {
1746
	private function testerNomCompletInfraSpecifique() {
1742
		$info = array('nom' => 'nom_sci -> noms infra-spécifiques',
1747
		$info = array('nom' => 'nom_sci -> noms infra-spécifiques',
1743
			'description' => "Si le rang est > à {$this->manuel['rang_sp']} le nom_sci doit correspondre à la formule : \n".
1748
			'description' => "Si le rang est > à {$this->manuel['rang_sp']}, le nom_sci doit correspondre à la formule : \n".
1744
				" genre + ' ' + epithete_sp + ' ' + type_epithete + ' ' + epithete_infra_generique\n".	
1749
				" genre + ' ' + epithete_sp + ' ' + type_epithete + ' ' + epithete_infra_generique\n".	
1745
				"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.",
1750
				"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.",
Line 1746... Line 1751...
1746
			'resultat' => false);
1751
			'resultat' => false);
Line 1774... Line 1779...
1774
		$this->traiterResultatTest($info);
1779
		$this->traiterResultatTest($info);
1775
	}
1780
	}
Line 1776... Line 1781...
1776
	
1781
	
1777
	private function testerNomSupraGeneriqueEspaces() {
1782
	private function testerNomSupraGeneriqueEspaces() {
1778
		$info = array('nom' => 'nom_supra_generique -> espaces en trop',
1783
		$info = array('nom' => 'nom_supra_generique -> espaces en trop',
1779
			'description' => "Le champ nom_supra_generique ne doit pas contenir d'espace avant ou aprés le nom.",
1784
			'description' => "Le champ nom_supra_generique ne doit pas contenir d'espace avant ou après le nom.",
Line 1780... Line 1785...
1780
			'resultat' => false);
1785
			'resultat' => false);
1781
		
1786
		
1782
		// Réalisation du test
1787
		// Réalisation du test
Line 1802... Line 1807...
1802
		$this->traiterResultatTest($info);
1807
		$this->traiterResultatTest($info);
1803
	}
1808
	}
Line 1804... Line 1809...
1804
	
1809
	
1805
	private function testerNomSupraGeneriqueSyntaxe() {
1810
	private function testerNomSupraGeneriqueSyntaxe() {
1806
		$info = array('nom' => 'nom_supra_generique -> syntaxe',
1811
		$info = array('nom' => 'nom_supra_generique -> syntaxe',
-
 
1812
			'description' => "Le champ nom_supra_generique contient un mot composé de lettres minuscules, avec ou ".
1807
			'description' => "Le champ nom_supra_generique contient un mot composé de lettres minuscules avec ou sans tréma (¨) et de tirets (-). \n".
1813
				"sans tréma (¨), et de tirets (-). \n".
1808
				"La première lettre (avec ou sans tréma) du mot doit être en majuscule.",
1814
				"La première lettre (avec ou sans tréma) du mot doit être en majuscule.",
Line 1809... Line 1815...
1809
			'resultat' => false);
1815
			'resultat' => false);
1810
		
1816
		
Line 1858... Line 1864...
1858
		$this->traiterResultatTest($info);
1864
		$this->traiterResultatTest($info);
1859
	}
1865
	}
Line 1860... Line 1866...
1860
	
1866
	
1861
	private function testerGenreEspaces() {
1867
	private function testerGenreEspaces() {
1862
		$info = array('nom' => 'genre -> espaces en trop',
1868
		$info = array('nom' => 'genre -> espaces en trop',
1863
			'description' => "Le champ genre ne doit pas contenir d'espace avant ou aprés le nom.\n".
1869
			'description' => "Le champ genre ne doit pas contenir d'espace avant ou après le nom.\n".
1864
				"Si des espaces sont compris dans la valeur du champ, il ne doit pas y avoir plusieurs espaces consécutifs.",
1870
				"Si des espaces sont compris dans la valeur du champ, il ne doit pas en avoir plusieurs consécutifs.",
Line 1865... Line 1871...
1865
			'resultat' => false);
1871
			'resultat' => false);
1866
		
1872
		
1867
		// Réalisation du test
1873
		// Réalisation du test
Line 1888... Line 1894...
1888
	}
1894
	}
Line 1889... Line 1895...
1889
	
1895
	
1890
	private function testerGenreSyntaxe() {
1896
	private function testerGenreSyntaxe() {
1891
		$info = array('nom' => 'genre -> syntaxe',
1897
		$info = array('nom' => 'genre -> syntaxe',
1892
			'description' => "Le champ genre peut contenir :\n".
1898
			'description' => "Le champ genre peut contenir :\n".
1893
			 	" - un mot unique composé de lettres minuscules avec ou sans tréma (¨) et de tirets (-). \n".
1899
			 	" - un mot unique composé de lettres minuscules, avec ou sans tréma (¨), et de tirets (-). \n".
1894
				"	Il commence par une lettre majuscule (avec ou sans tréma).". 
1900
				"	Il commence par une lettre majuscule (avec ou sans tréma) et peut être précédé par \n".
1895
				"	Il peut être précédé par le signe + ou la lettre x suivi d'un espace.\n".
1901
				"   le signe + ou la lettre x suivi d'un espace.\n".
1896
				" - une formule d'hybridité composée d'une série de noms de genre (au moins 2) séparés entre eux \n".
1902
				" - une formule d'hybridité composée d'une série de noms de genre (au moins 2) séparés\n ".
1897
				"	par la lettre x entourée de caractères espaces.",
1903
				"	entre eux par la lettre x entourée de caractères espaces.",
Line 1898... Line 1904...
1898
			'resultat' => false);
1904
			'resultat' => false);
1899
		
1905
		
1900
		// Réalisation du test
1906
		// Réalisation du test
Line 1950... Line 1956...
1950
		$this->traiterResultatTest($info);
1956
		$this->traiterResultatTest($info);
1951
	}
1957
	}
Line 1952... Line 1958...
1952
		
1958
		
1953
	private function testerEpitheteInfraGeneriqueSyntaxe() {
1959
	private function testerEpitheteInfraGeneriqueSyntaxe() {
1954
		$info = array('nom' => 'epithete_infra_generique -> syntaxe',
1960
		$info = array('nom' => 'epithete_infra_generique -> syntaxe',
1955
			'description' => "Le champ epithete_infra_generique est composé de lettres minuscules avec ou sans tréma (¨) et de tirets (-). \n".
1961
			'description' => "Le champ epithete_infra_generique est composé de lettres minuscules, avec ou sans tréma (¨), et de tirets (-). \n".
1956
				"La première lettre (avec ou sans tréma) doit être en majuscule.",
1962
				"La première lettre (avec ou sans tréma) doit être en majuscule.",
Line 1957... Line 1963...
1957
			'resultat' => false);
1963
			'resultat' => false);
1958
		
1964
		
Line 1979... Line 1985...
1979
		$this->traiterResultatTest($info);
1985
		$this->traiterResultatTest($info);
1980
	}
1986
	}
Line 1981... Line 1987...
1981
	
1987
	
1982
	private function testerEpitheteInfraGeneriqueRang() {
1988
	private function testerEpitheteInfraGeneriqueRang() {
1983
		$info = array('nom' => "epithete_infra_generique -> {$this->manuel['rang_genre']} < rang < {$this->manuel['rang_sp']}",
1989
		$info = array('nom' => "epithete_infra_generique -> {$this->manuel['rang_genre']} < rang < {$this->manuel['rang_sp']}",
1984
			'description' => "Si le champ epithete_infra_generique n'est pas vide alors le rang du nom doit être compris \n".
1990
			'description' => "Si le champ epithete_infra_generique n'est pas vide alors le rang du nom doit être compris ".
1985
				"entre {$this->manuel['rang_genre']} et {$this->manuel['rang_sp']}.",
1991
				"entre {$this->manuel['rang_genre']} et {$this->manuel['rang_sp']}.",
Line 1986... Line 1992...
1986
			'resultat' => false);
1992
			'resultat' => false);
1987
		
1993
		
Line 2007... Line 2013...
2007
		$this->traiterResultatTest($info);
2013
		$this->traiterResultatTest($info);
2008
	}
2014
	}
Line 2009... Line 2015...
2009
	
2015
	
2010
	private function testerEpitheteInfraGeneriqueEspaces() {
2016
	private function testerEpitheteInfraGeneriqueEspaces() {
2011
		$info = array('nom' => 'epithete_infra_generique -> espaces en trop',
2017
		$info = array('nom' => 'epithete_infra_generique -> espaces en trop',
2012
			'description' => "Le champ epithete_infra_generique ne doit pas contenir d'espace avant ou aprés sa valeur.",
2018
			'description' => "Le champ epithete_infra_generique ne doit pas contenir d'espace avant ou après sa valeur.",
Line 2013... Line 2019...
2013
			'resultat' => false);
2019
			'resultat' => false);
2014
		
2020
		
2015
		// Réalisation du test
2021
		// Réalisation du test
Line 2035... Line 2041...
2035
		$this->traiterResultatTest($info);
2041
		$this->traiterResultatTest($info);
2036
	}
2042
	}
Line 2037... Line 2043...
2037
	
2043
	
2038
	private function testerEpitheteSpEspaces() {
2044
	private function testerEpitheteSpEspaces() {
2039
		$info = array('nom' => 'epithete_sp -> espaces en trop',
2045
		$info = array('nom' => 'epithete_sp -> espaces en trop',
2040
			'description' => "Le champ epithete_sp ne doit pas contenir d'espace avant ou aprés le nom.\n".
2046
			'description' => "Le champ epithete_sp ne doit pas contenir d'espace avant ou après le nom.\n".
2041
				"Si des espaces sont compris dans la valeur du champ, il ne doit pas y avoir plusieurs espaces consécutifs.",
2047
				"Si des espaces sont compris dans la valeur du champ, il ne doit pas en avoir plusieurs consécutifs.",
Line 2042... Line 2048...
2042
			'resultat' => false);
2048
			'resultat' => false);
2043
		
2049
		
2044
		// Réalisation du test
2050
		// Réalisation du test
Line 2068... Line 2074...
2068
		$info = array('nom' => 'epithete_sp -> syntaxe',
2074
		$info = array('nom' => 'epithete_sp -> syntaxe',
2069
			'description' => "Le champ epithete_sp peut contenir :\n".
2075
			'description' => "Le champ epithete_sp peut contenir :\n".
2070
			 	" - un mot unique composé de lettres minuscules [a-z] incluant les caractères [ëï-]. \n".
2076
			 	" - un mot unique composé de lettres minuscules [a-z] incluant les caractères [ëï-]. \n".
2071
				"	Il commence par une lettre minuscule [a-zëï].\n". 
2077
				"	Il commence par une lettre minuscule [a-zëï].\n". 
2072
				"	Il peut être précédé par le signe + ou la lettre x suivi d'un espace.\n".
2078
				"	Il peut être précédé par le signe + ou la lettre x suivi d'un espace.\n".
2073
				" - un mot contenant sp. suivi d'un ou plusieurs caractères numériques (1-9) ou d'un seul caractère majuscule (A-Z) \n".
2079
				" - un mot contenant sp. suivi d'un ou plusieurs caractères numériques (1-9) \n".
-
 
2080
				"   ou d'un seul caractère majuscule (A-Z) \n".
2074
				" - une formule d'hybridité composée d'une série de noms d'espèce (au moins 2) séparés entre eux \n".
2081
				" - une formule d'hybridité composée d'une série de noms d'espèce (au moins 2) \n".
2075
				"	par la lettre x entourée de caractères espaces.",
2082
				"	séparés entre eux par la lettre x entourée de caractères espaces.",
2076
			'resultat' => false);
2083
			'resultat' => false);
Line 2077... Line 2084...
2077
		
2084
		
2078
		// Réalisation du test
2085
		// Réalisation du test
2079
		$noms_erreur = array();
2086
		$noms_erreur = array();