first commit (dev ex not finished yet)
This commit is contained in:
commit
d5134163b2
108
EndUnit/EndUnit-v1.1.php
Normal file
108
EndUnit/EndUnit-v1.1.php
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
<?php
|
||||||
|
namespace endunit;
|
||||||
|
/**
|
||||||
|
* EndUnit
|
||||||
|
*
|
||||||
|
* Classe statique de permettant de faire des tests utilitaires
|
||||||
|
* pour vérifier le bon comportement de son code.
|
||||||
|
*
|
||||||
|
* @package endunit
|
||||||
|
*
|
||||||
|
* @version 1.1
|
||||||
|
* @author Jérémi N 'EndMove'
|
||||||
|
*/
|
||||||
|
class EndUnit {
|
||||||
|
/**
|
||||||
|
* Vérifier que deux string/int/double sont égaux.
|
||||||
|
*
|
||||||
|
* @return string Information sur le status du test 'Pass' ou 'Fail'
|
||||||
|
* Certaine informations complémentaires peuvent être
|
||||||
|
* jointes à la valeur de retour du test.
|
||||||
|
* @param string|int|float $expectedValue Valeur attendue par le programme.
|
||||||
|
* @param mixed $currentValue Valeur renvoyer par le programme.
|
||||||
|
*
|
||||||
|
* @since 1.0
|
||||||
|
* @version 1.1
|
||||||
|
*
|
||||||
|
* @author Jérémi N 'EndMove'
|
||||||
|
*/
|
||||||
|
public static function assertEquals(string|int|float $expectedValue, mixed $currentValue) : string
|
||||||
|
{
|
||||||
|
if ($expectedValue === $currentValue) return "<p><b class='pass'>Pass</b></p>";
|
||||||
|
else return sprintf("<p><b class='fail'>Fail</b> - expected: \"<code>%s</code>\"".
|
||||||
|
" <i>(type %s)</i>, but was: \"<code>%s</code>\" <i>(type %s)</i></p>",
|
||||||
|
$expectedValue, gettype($expectedValue), $currentValue, gettype($currentValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Vérifier que deux array sont égaux.
|
||||||
|
*
|
||||||
|
* @return string Information sur le status du test 'Pass' ou 'Fail'
|
||||||
|
* Certaine informations complémentaires peuvent être
|
||||||
|
* jointes à la valeur de retour du test.
|
||||||
|
* @param string|int|float $expectedValue Valeur attendue par le programme.
|
||||||
|
* @param mixed $currentValue Valeur renvoyer par le programme.
|
||||||
|
*
|
||||||
|
* @since 1.1
|
||||||
|
*
|
||||||
|
* @author Jérémi N 'EndMove'
|
||||||
|
*/
|
||||||
|
public static function assertArrayEquals(array $expectedValue, mixed $currentValue) : string
|
||||||
|
{
|
||||||
|
if ($expectedValue === $currentValue) return "<p><b class='pass'>Pass</b></p>";
|
||||||
|
else return sprintf("<p><b class='fail'>Fail</b> - expected: \"<code>%s</code>\"".
|
||||||
|
" <i>(type %s)</i>, but was: \"<code>%s</code>\" <i>(type %s)</i></p>",
|
||||||
|
self::getFormattedArray($expectedValue), gettype($expectedValue),
|
||||||
|
is_array($currentValue) ? self::getFormattedArray($currentValue) : $currentValue,
|
||||||
|
gettype($currentValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Vérifier que le résultat est bien un boolean de valeur true.
|
||||||
|
*
|
||||||
|
* @return string Information sur le status du test 'Pass' ou 'Fail'.
|
||||||
|
* @param bool $currentValue Un boolean.
|
||||||
|
*
|
||||||
|
* @since 1.0
|
||||||
|
*
|
||||||
|
* @author Jérémi N 'EndMove'
|
||||||
|
*/
|
||||||
|
public static function assertTrue(bool|null $currentValue) : string
|
||||||
|
{
|
||||||
|
return $currentValue === true ? "<p><b class='pass'>Pass</b></p>" : "<p><b class='fail'>Fail</b></p>";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Vérifier que le résultat est bien un boolean de valeur false.
|
||||||
|
*
|
||||||
|
* @return string Information sur le status du test 'Pass' ou 'Fail'.
|
||||||
|
* @param bool $currentValue Un boolean.
|
||||||
|
*
|
||||||
|
* @since 1.0
|
||||||
|
*
|
||||||
|
* @author Jérémi N 'EndMove'
|
||||||
|
*/
|
||||||
|
public static function assertFalse(bool|null $currentValue) : string
|
||||||
|
{
|
||||||
|
return $currentValue === false ? "<p><b class='pass'>Pass</b></p>" : "<p><b class='fail'>Fail</b></p>";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converti un tableau en string pour que celui-ci soit affichable.
|
||||||
|
*
|
||||||
|
* @return string Tableau sous forme d'un string.
|
||||||
|
* @param array $array Un tableau à converir en string.
|
||||||
|
*
|
||||||
|
* @since 1.1
|
||||||
|
*
|
||||||
|
* @author Jérémi N 'EndMove'
|
||||||
|
*/
|
||||||
|
public static function getFormattedArray(array $array) : string
|
||||||
|
{
|
||||||
|
$newArray = array();
|
||||||
|
foreach ($array as $key => $value) {
|
||||||
|
$newArray[] = $key.':'.(is_array($value) ? self::getFormattedArray($value) : $value);
|
||||||
|
}
|
||||||
|
return '['.implode(', ', $newArray).']';
|
||||||
|
}
|
||||||
|
}
|
79
functions.php
Normal file
79
functions.php
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
<?php
|
||||||
|
// Tips : ne pas oublier de compléter les fonctions en indiquant le
|
||||||
|
// type de données avec lesquels elles travaillent.
|
||||||
|
// testez vos fonctions avec le fichier de test unitaire fonctionTest.php.
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cette fonction ne prend rien en paramètre et doit renvoyer un tableau (array)
|
||||||
|
* dont les valeurs sont des integer (nombre) de 0 à 5. Vous pouvez soit
|
||||||
|
* hardcoder le tableau soit le générer via une boucle.
|
||||||
|
*
|
||||||
|
* Exemple :
|
||||||
|
* 0, 1, 2 ...
|
||||||
|
*/
|
||||||
|
function getArrayFrom0To5()
|
||||||
|
{
|
||||||
|
// code...
|
||||||
|
return array(0,1,2,3,4,5);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cette fonction ne prend rien en paramètre et doit renvoyer un tableau (array)
|
||||||
|
* dont l'index est un string et la valeur un integer, l'index va de
|
||||||
|
* zéro à cinq et la valeur de 0 à 5. Le tableau doit être hardcodé.
|
||||||
|
*
|
||||||
|
* Exemple :
|
||||||
|
* zéro:0, un:1, deux:2 ...
|
||||||
|
*/
|
||||||
|
function getArrayFrom0To5WithStringIndex()
|
||||||
|
{
|
||||||
|
// code...
|
||||||
|
return array('zéro'=>0, 'un'=>1, 'deux'=>2, 'trois'=>3, 'quatre'=>4, 'cinq'=>5);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** NIVEAU SUPÉRIEUR
|
||||||
|
* Cette fonction prend en paramètre un tableau et un nombre et elle retourn du texte
|
||||||
|
* Si l'élément du tableau à l'index X est un nombre (voir doc pour trouver fonction requise)
|
||||||
|
* alors on renvoie le texte : "L'élément à l'index X est le nombre Y.".
|
||||||
|
* |=> Ou X est l'index et Y le nombre à cette emplacement.
|
||||||
|
* Dans le cas contraire on renvoie : "L'élément sélectionné n'est pas un nombre."
|
||||||
|
*
|
||||||
|
* Exemple :
|
||||||
|
* ['d', 1, 5, 'salut', array(), 8] 0 => "L'élément sélectionné n'est pas un nombre."
|
||||||
|
* ['d', 1, 5, 'salut', array(), 8] 1 => "L'élément à l'index 1 est le nombre 1."
|
||||||
|
* ['d', 1, 5, 'salut', array(), 8] 2 => "L'élément à l'index 2 est le nombre 5."
|
||||||
|
* ['d', 1, 5, 'salut', array(), 8] 3 => "L'élément sélectionné n'est pas un nombre."
|
||||||
|
* ['d', 1, 5, 'salut', array(), 8] 4 => "L'élément sélectionné n'est pas un nombre."
|
||||||
|
* ['d', 1, 5, 'salut', array(), 8] 5 => "L'élément à l'index 5 est le nombre 8."
|
||||||
|
*
|
||||||
|
* Tips : Checker doc php pour fonction qui vérifier qu'un variable est de type integer.
|
||||||
|
*/
|
||||||
|
function presentTheElement($array, $indexElement)
|
||||||
|
{
|
||||||
|
// code...
|
||||||
|
}
|
||||||
|
|
||||||
|
/** BONUS NIVEAU SUPÉRIEUR
|
||||||
|
* Cette fonction prend un integer en paramètre et renvoie un integer ou un
|
||||||
|
* double (float) dont la valeur vaut : (( nombre exposant 4 ) divisé par 2).
|
||||||
|
*
|
||||||
|
* Exemple :
|
||||||
|
* 1 => 0.5
|
||||||
|
* 2 => 8
|
||||||
|
* 7 => 1200.5
|
||||||
|
* 12 => 10368
|
||||||
|
* 4 => 128
|
||||||
|
*
|
||||||
|
* Tips : - expossent => voir doc.
|
||||||
|
* - pour présiser deux type à utiliser simultanément [ | ]
|
||||||
|
* Exemple :
|
||||||
|
* function(string|bool $arg1) : float { return 0.1; }
|
||||||
|
* function(bool|null $arg1) : string { return "0.1"; }
|
||||||
|
*/
|
||||||
|
function getExponentFourDividedByTwo($number)
|
||||||
|
{
|
||||||
|
// code...
|
||||||
|
}
|
62
functionsTests.php
Normal file
62
functionsTests.php
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
<?php
|
||||||
|
// Fichier des tests unitaires de l'exercice 3
|
||||||
|
include 'functions.php';
|
||||||
|
require 'EndUnit/EndUnit-v1.1.php';
|
||||||
|
use endunit\EndUnit;
|
||||||
|
?>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="fr">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>Tests Unitaires</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body {
|
||||||
|
background-color: #3b3f42;
|
||||||
|
color: #c2c8cf;
|
||||||
|
}
|
||||||
|
i {
|
||||||
|
color: #F3C178;
|
||||||
|
}
|
||||||
|
code {
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
b.pass {
|
||||||
|
color: #00A878;
|
||||||
|
}
|
||||||
|
b.fail {
|
||||||
|
color: #FE5E41;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Tests Unitaires | Exercice 3</h1>
|
||||||
|
|
||||||
|
<h2>fonction : getArrayFrom0To5()</h2>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<h3>Test #1 avec : ()</h3>
|
||||||
|
<?= EndUnit::assertArrayEquals([0,1,2,3,4,5], getArrayFrom0To5()) ?>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>fonction : getArrayFrom0To5WithStringIndex()</h2>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<h3>Test #1 avec : ()</h3>
|
||||||
|
<?= EndUnit::assertArrayEquals(
|
||||||
|
['zéro'=>0,'un'=>1,'deux'=>2,'trois'=>3,'quatre'=>4,'cinq'=>5],
|
||||||
|
getArrayFrom0To5WithStringIndex()
|
||||||
|
) ?>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>fonction : presentTheElement()</h2>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<h3>Test #1 avec : ()</h3>
|
||||||
|
<?= EndUnit::assertArrayEquals([0,1,2,3,4,5], getArrayFrom0To5()) ?>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user