Subversion Repositories Applications.referentiel

Rev

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

Rev 173 Rev 174
Line 1310... Line 1310...
1310
	
1310
	
1311
	/**
1311
	/**
1312
	 * Test #37
1312
	 * Test #37
1313
	 */
1313
	 */
1314
	private function testerGroupeCultivarSyntaxe() {
1314
	private function testerGroupeCultivarSyntaxe() {
1315
		$info = array('nom' => 'cultivar_groupe -> syntaxe',
-
 
1316
			'description' => "Le champ cultivar_groupe doit contenir un nom de groupe de cultivar conforme aux règles ".
-
 
1317
				"du code des plantes cultivées, c.-à-d. composer de caractères alphanumériques (A-Z,a-z et 0-9) incluant ".
-
 
1318
				"signes diacritiques et marques de ponctuations.\n".
-
 
1319
				"Il ne doit pas contenir le mot Groupe, l'abbréviation «gp» ou des parenthèses.\n".
-
 
1320
				"Il peut se terminer par l'abréviation «gx» pour distinguer les groupes des grex.",
-
 
Line 1321... Line 1315...
1321
			'resultat' => false);
1315
		$info = $this->getInfosTest(37);
1322
		
1316
		
1323
		// Réalisation du test
1317
		// Réalisation du test
1324
		$noms_erreur = array();
1318
		$noms_erreur = array();
Line 1345... Line 1339...
1345
	
1339
	
1346
	/**
1340
	/**
1347
	 * Test #38
1341
	 * Test #38
1348
	 */
1342
	 */
1349
	private function testerGroupeCultivarRang() {
1343
	private function testerGroupeCultivarRang() {
1350
		$info = array('nom' => "cultivar_groupe -> rang >= {$this->manuel['rang_genre']}",
1344
		$info = $this->getInfosTest(38);
1351
			'description' => "Si le champ cultivar_groupe n'est pas vide alors le rang du nom doit être supérieur ou ".
1345
		$info['nom'] = sprintf($info['nom'], $this->manuel['rang_genre']);
1352
								"égal à {$this->manuel['rang_genre']}.",
-
 
Line 1353... Line 1346...
1353
			'resultat' => false);
1346
		$info['description'] = sprintf($info['description'], $this->manuel['rang_genre']);
1354
		
1347
		
1355
		// Réalisation du test
1348
		// Réalisation du test
1356
		$noms_erreur = array();
1349
		$noms_erreur = array();
Line 1376... Line 1369...
1376
	
1369
	
1377
	/**
1370
	/**
1378
	 * Test #39
1371
	 * Test #39
1379
	 */
1372
	 */
1380
	private function testerCultivarSyntaxe() {
1373
	private function testerCultivarSyntaxe() {
1381
		$info = array('nom' => 'cultivar -> syntaxe',
-
 
1382
			'description' => "Le champ cultivar_groupe doit contenir :\n".
-
 
1383
				" - un nom de cultivar conforme aux règles du Code Internationnal de Nomenclature \n".
-
 
1384
				"   des Plantes Cultivées (CINPC), c.-à-d. composer de caractères alphanumériques \n".
-
 
1385
				"   (A-Z,a-z et 0-9) incluant signes diacritiques et marques de ponctuations.\n".
-
 
1386
				" - un nom en alphabet latin, ce qui implique une translittération des noms d'alphabet \n".
-
 
1387
				"   cyrillique, arabe, chinois...\n".
-
 
1388
				" - une lettre majuscule obligatoire pour le premier caractère du premier mot et pour \n".
-
 
1389
				"   les autres mots importants mais pas pour les mots mineurs.\n".
-
 
1390
				"Ne doit pas contenir :\n".
-
 
1391
				" - cv., convar. ou de guillemets simples (').\n",
-
 
1392
			'resultat' => false);
1374
		$info = $this->getInfosTest(39);
1393
		
1375
 
1394
		// Réalisation du test
1376
		// Réalisation du test
1395
		$noms_erreur = array();
1377
		$noms_erreur = array();
1396
		foreach ($this->noms as &$nom) {
1378
		foreach ($this->noms as &$nom) {
1397
			if ($nom['cultivar'] != '') {
1379
			if ($nom['cultivar'] != '') {
Line 1416... Line 1398...
1416
	
1398
	
1417
	/**
1399
	/**
1418
	 * Test #40
1400
	 * Test #40
1419
	 */
1401
	 */
1420
	private function testerCultivarRang() {
1402
	private function testerCultivarRang() {
1421
		$info = array('nom' => "cultivar -> rang >= {$this->manuel['rang_genre']}",
1403
		$info = $this->getInfosTest(40);
1422
			'description' => "Si le champ cultivar n'est pas vide alors le rang du nom doit être supérieur ou égal à ". 
1404
		$info['nom'] = sprintf($info['nom'], $this->manuel['rang_genre']);
1423
								"{$this->manuel['rang_genre']}.",
-
 
Line 1424... Line 1405...
1424
			'resultat' => false);
1405
		$info['description'] = sprintf($info['description'], $this->manuel['rang_genre']);
1425
		
1406
		
1426
		// Réalisation du test
1407
		// Réalisation du test
1427
		$noms_erreur = array();
1408
		$noms_erreur = array();
Line 1447... Line 1428...
1447
	
1428
	
1448
	/**
1429
	/**
1449
	 * Test #41
1430
	 * Test #41
1450
	 */
1431
	 */
1451
	private function testerNomCommercialSyntaxe() {
1432
	private function testerNomCommercialSyntaxe() {
1452
		$info = array('nom' => 'nom_commercial -> syntaxe',
-
 
1453
			'description' => "Le champ nom_commercial doit contenir un nom commercial conforme aux règles du ".
-
 
1454
				"Code Internationnal de Nomenclature des Plantes Cultivées (CINPC) ".
-
 
1455
				"qui se compose de caractères majuscules (A-Z) incluant des signes diacritiques et des espaces.\n",
-
 
Line 1456... Line 1433...
1456
			'resultat' => false);
1433
		$info = $this->getInfosTest(41);
1457
		
1434
		
1458
		// Réalisation du test
1435
		// Réalisation du test
1459
		$noms_erreur = array();
1436
		$noms_erreur = array();
Line 1480... Line 1457...
1480
	
1457
	
1481
	/**
1458
	/**
1482
	 * Test #42
1459
	 * Test #42
1483
	 */
1460
	 */
1484
	private function testerNomCommercialPresenceCultivar() {
-
 
1485
		$info = array('nom' => 'nom_commercial -> groupe_cultivar OU cultivar non vide',
-
 
1486
			'description' => "Si le champ nom_commercial contient un nom commercial alors le champ cultivar OU ".
-
 
1487
				"cultivar_groupe ne doit pas être vide.",
1461
	private function testerNomCommercialPresenceCultivar() {
Line 1488... Line 1462...
1488
			'resultat' => false);
1462
		$info = $this->getInfosTest(42);
1489
		
1463
		
1490
		// Réalisation du test
1464
		// Réalisation du test
1491
		$noms_erreur = array();
1465
		$noms_erreur = array();
Line 1509... Line 1483...
1509
	
1483
	
1510
	/**
1484
	/**
1511
	 * Test #43
1485
	 * Test #43
1512
	 */
1486
	 */
1513
	private function testerAuteurSyntaxe() {
1487
	private function testerAuteurSyntaxe() {
1514
		$info = array('nom' => 'auteur -> syntaxe',
-
 
1515
			'description' => "Le champ auteur doit :\n".
-
 
1516
			" - contenir l'intitulé complet des noms de l'auteur, ou des auteurs, ayant publié à l'origine la combinaison latine courante.\n".
-
 
1517
    		" - OU débuter par le mot « sensu » et contenir l'intitulé complet des noms de l'auteur, ou des auteurs, ".
-
 
1518
			"ayant publié un nom dont la description ne correspond pas à celle de l'auteur, ou des auteurs, d'origine.\n".
-
 
1519
			" - 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".
-
 
1520
			" - contenir, si nécessaire, des abréviations de noms d'auteurs respectant les standards.\n".
-
 
1521
			" - contenir une translittération des noms d'alphabet cyrillique, arabe, chinois... en alphabet latin.\n".
-
 
1522
			" - inclure entre parenthèses l'intitulé des noms de l'auteur ou des auteurs ayant publié le basionyme.\n".
-
 
1523
			" - toujours utiliser l'esperluette (&) à la place du mot « et » pour séparer les noms d'auteurs.\n".
-
 
1524
			" - conformément à la recommandation 46C.2 du CINB, si une un citation comprend plus de deux auteurs, ".
-
 
1525
			"elle devrait être limitée au nom du premier, suivi de « & al.».\n",
-
 
Line 1526... Line 1488...
1526
			'resultat' => false);
1488
		$info = $this->getInfosTest(43);
1527
		
1489
		
1528
		// Réalisation du test
1490
		// Réalisation du test
1529
		$noms_erreur = array();
1491
		$noms_erreur = array();
Line 1550... Line 1512...
1550
	
1512
	
1551
	/**
1513
	/**
1552
	 * Test #44
1514
	 * Test #44
1553
	 */
1515
	 */
1554
	private function testerAnneeSyntaxe() {
1516
	private function testerAnneeSyntaxe() {
1555
		$info = array('nom' => 'annee -> syntaxe',
-
 
1556
			'description' => "Le champ annee doit :\n".
-
 
1557
			" - contenir un nombre de 4 chiffres,\n".
-
 
1558
			" - être supérieur ou égal à 1753.",
-
 
Line 1559... Line 1517...
1559
			'resultat' => false);
1517
		$info = $this->getInfosTest(44);
1560
		
1518
		
1561
		// Réalisation du test
1519
		// Réalisation du test
1562
		$noms_erreur = array();
1520
		$noms_erreur = array();
Line 1568... Line 1526...
1568
			}
1526
			}
1569
		}
1527
		}
Line 1570... Line 1528...
1570
		
1528
		
1571
		// Analyse des résultats
1529
		// Analyse des résultats
1572
		if (count($noms_erreur) > 0) {
1530
		if (count($noms_erreur) > 0) {
1573
			$info['message']['entete'] = array('num_nom', 'annee erroné');
1531
			$info['message']['entete'] = array('num_nom', 'annee erronée');
1574
			$info['message']['lignes'] = $noms_erreur;
1532
			$info['message']['lignes'] = $noms_erreur;
1575
		} else {
1533
		} else {
1576
			$info['resultat'] = true;
1534
			$info['resultat'] = true;
1577
		}
1535
		}
Line 1582... Line 1540...
1582
	
1540
	
1583
	/**
1541
	/**
1584
	 * Test #45
1542
	 * Test #45
1585
	 */
1543
	 */
1586
	private function testerBiblioOrigineSyntaxe() {
1544
	private function testerBiblioOrigineSyntaxe() {
1587
		$info = array('nom' => 'biblio_origine -> syntaxe',
-
 
1588
			'description' => "Le champ biblio_origine se compose de plusieurs parties séparées par des caractères ".
-
 
1589
			"précis qui sont dans l'ordre de gauche à droite :\n".
-
 
1590
			" - éventuellement, le mot « in » suivi d'un intitulé auteur (utilisé pour indiquer l'intitulé auteur de ".
-
 
1591
			"l'ouvrage dans lequel la publication est parue),\n".
-
 
1592
			" - point-virgule « ; » (si l'info précédent a été renseignée),\n".
-
 
1593
			" - abréviation, ou nom, de l'ouvrage ou de la revue selon le standard en vigueur dans le code du nom. ".
-
 
1594
			"Cette information ne doit pas contenir de caractère virgule « , »,\n".
-
 
1595
			" - virgule « , »,\n".
-
 
1596
			" - informations permettant d'identifier plus précisément le document contenant le nom... ".
-
 
1597
			"(par exemple, l'éditeur, le tome, le numéro d'édition, le volume...) séparées par des virgules ou d'autres ".
-
 
1598
			"caractères sauf deux points « : ».\n".
-
 
1599
			" - deux points « : »,\n".
-
 
1600
			" - numéro(s) de la page contenant la publication du nom ou de l'ensemble de pages (première et dernière ".
-
 
1601
			"pages de l'ensemble séparées par un tiret « - »). Quelques fois des numéros ou d'autres informations indiquant ".
-
 
1602
			"la position du nom dans le document. Le tiret « - » doit toujours servir à séparer un ensemble.",
-
 
Line 1603... Line 1545...
1603
			'resultat' => false);
1545
		$info = $this->getInfosTest(45);
1604
		
1546
		
1605
		// Réalisation du test
1547
		// Réalisation du test
1606
		$noms_erreur = array();
1548
		$noms_erreur = array();
Line 1627... Line 1569...
1627
	
1569
	
1628
	/**
1570
	/**
1629
	 * Test #46
1571
	 * Test #46
1630
	 */
1572
	 */
1631
	private function testerHomonymieSyntaxe() {
1573
	private function testerHomonymieSyntaxe() {
1632
		$info = array('nom' => 'homonyme -> syntaxe',
-
 
1633
			'description' => "Le champ homonyme contient :\n".
-
 
1634
				" - une valeur vide,\n".
-
 
1635
				" - le chiffre 1.",
-
 
Line 1636... Line 1574...
1636
			'resultat' => false);
1574
		$info = $this->getInfosTest(46);
1637
		
1575
		
1638
		// Réalisation du test
1576
		// Réalisation du test
1639
		$noms_erreur = array();
1577
		$noms_erreur = array();
Line 1659... Line 1597...
1659
	
1597
	
1660
	/**
1598
	/**
1661
	 * Test #47
1599
	 * Test #47
1662
	 */
1600
	 */
1663
	private function testerHomonymieExistence() {
1601
	private function testerHomonymieExistence() {
1664
		$info = array('nom' => 'homonyme -> existence',
-
 
1665
			'description' => "Si le champ homonyme contient «1» alors plusieurs noms doivent posséder la même valeur ".
-
 
1666
								"dans le champ nom_sci.",
-
 
Line 1667... Line 1602...
1667
			'resultat' => false);
1602
		$info = $this->getInfosTest(47);
Line 1668... Line 1603...
1668
		
1603
		
1669
		$noms_homonymie = $this->classerNomsParNomComplet();
1604
		$noms_homonymie = $this->classerNomsParNomComplet();
Line 1693... Line 1628...
1693
	
1628
	
1694
	/**
1629
	/**
1695
	 * Test #48
1630
	 * Test #48
1696
	 */
1631
	 */
1697
	private function testerBasionymeSyntaxe() {
1632
	private function testerBasionymeSyntaxe() {
1698
		$info = array('nom' => 'basionyme -> syntaxe',
-
 
1699
			'description' => "Le champ basionyme contient :\n".
-
 
1700
								" - une valeur vide,\n".
-
 
1701
								" - un nombre.",
-
 
Line 1702... Line 1633...
1702
			'resultat' => false);
1633
		$info = $this->getInfosTest(48);
1703
		
1634
		
1704
		// Réalisation du test
1635
		// Réalisation du test
1705
		$noms_erreur = array();
1636
		$noms_erreur = array();
Line 1725... Line 1656...
1725
 
1656
 
1726
	/**
1657
	/**
1727
	 * Test #49
1658
	 * Test #49
1728
	 */
1659
	 */
1729
	private function testerBasionymeExistence() {
1660
	private function testerBasionymeExistence() {
1730
		$info = array('nom' => 'basionyme -> existence',
-
 
1731
			'description' => "Si le champ basionyme contient un nombre alors il doit correspondre à une valeur du champ ".
-
 
1732
								"num_nom.",
-
 
Line 1733... Line 1661...
1733
			'resultat' => false);
1661
		$info = $this->getInfosTest(49);
1734
		
1662
		
1735
		// Réalisation du test
1663
		// Réalisation du test
1736
		$noms_erreur = array();
1664
		$noms_erreur = array();
Line 1756... Line 1684...
1756
	
1684
	
1757
	/**
1685
	/**
1758
	 * Test #50
1686
	 * Test #50
1759
	 */
1687
	 */
1760
	private function testerSynonymeProparteSyntaxe() {
-
 
1761
		$info = array('nom' => 'synonyme_proparte -> syntaxe',
-
 
1762
			'description' => "Le champ synonyme_proparte contient soit :\n".
-
 
1763
			" - une valeur vide,\n".
-
 
1764
			" - un nombre,\n".
-
 
1765
			" - une suite de nombres séparés par des virgules.",
1688
	private function testerSynonymeProparteSyntaxe() {
Line 1766... Line 1689...
1766
			'resultat' => false);
1689
		$info = $this->getInfosTest(50);
1767
		
1690
		
1768
		// Réalisation du test
1691
		// Réalisation du test
1769
		$noms_erreur = array();
1692
		$noms_erreur = array();