/iaLib/ia_examples/ia/Math/Math_example.php
<?php
$ia_example = [
'title' => 'ia\Math\Math', // fully qualified className
'summary' => '', // class summary
'full_example' => '', // full usage example, relative path from ia_examples, blank '' not shown.
'example_file' => 'code/ia/Math/Math_example_code.php', // method by method example, blank '' not shown.
];
include( __DIR__ . '/../../template/ia_example_class.php');
/iaLib/ia_examples/code/ia/Math/Math_example_code.php
use ia\Math\Math;
use ia\DocumentIt\DocumentIt;
echo '<h3>Disclaimer: Auto generated file.
Please help us setting parameters to useful values and extending the examples.
</h3>';
try {
echo '<ul class="usage">';
///////// Math::factorial(3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_factorial'><b>Math::factorial(<span class="type">int</span> \$number) <span>: int</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Math\Math", "factorial")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>Math::factorial(3); ->
DOCUMENT_EXAMPLE;
/// run ///
echo Math::factorial(3);
echo '</ol>';
///////// Math::getPercentageChange(2.7172, 2.7172); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_getPercentageChange'><b>Math::getPercentageChange(<span class="type">float</span> \$oldNumber, <span class="type">float</span> \$newNumber) <span>: float</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Math\Math", "getPercentageChange")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>Math::getPercentageChange(2.7172, 2.7172); ->
DOCUMENT_EXAMPLE;
/// run ///
echo Math::getPercentageChange(2.7172, 2.7172);
echo '</ol>';
///////// Math::Quartile(['a' => '1', 'b' => '2', 'c' => 3], 2.7172); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_Quartile'><b>Math::Quartile(<span class="type">array</span> \$array, <span class="type">float</span> \$Quartile) <span>: </span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Math\Math", "Quartile")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>Math::Quartile(['a' => '1', 'b' => '2', 'c' => 3], 2.7172);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
Math::Quartile(['a' => '1', 'b' => '2', 'c' => 3], 2.7172)
);
echo "</pre>";
echo '</ol>';
///////// Math::median(['a' => '1', 'b' => '2', 'c' => 3]); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_median'><b>Math::median(<span class="type">array</span> \$array) <span>: mixed</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Math\Math", "median")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>Math::median(['a' => '1', 'b' => '2', 'c' => 3]);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
Math::median(['a' => '1', 'b' => '2', 'c' => 3])
);
echo "</pre>";
echo '</ol>';
///////// Math::average(['a' => '1', 'b' => '2', 'c' => 3]); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_average'><b>Math::average(<span class="type">array</span> \$array) <span>: float</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Math\Math", "average")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>Math::average(['a' => '1', 'b' => '2', 'c' => 3]); ->
DOCUMENT_EXAMPLE;
/// run ///
echo Math::average(['a' => '1', 'b' => '2', 'c' => 3]);
echo '</ol>';
///////// Math::gcd(3, 3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_gcd'><b>Math::gcd(<span class="type">int</span> \$a, <span class="type">int</span> \$b) <span>: int</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Math\Math", "gcd")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>Math::gcd(3, 3); ->
DOCUMENT_EXAMPLE;
/// run ///
echo Math::gcd(3, 3);
echo '</ol>';
///////// Math::lcm(3, 3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_lcm'><b>Math::lcm(<span class="type">int</span> \$a, <span class="type">int</span> \$b) <span>: int</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Math\Math", "lcm")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>Math::lcm(3, 3); ->
DOCUMENT_EXAMPLE;
/// run ///
echo Math::lcm(3, 3);
echo '</ol>';
///////// Math::primeFactors(3); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_primeFactors'><b>Math::primeFactors(<span class="type">int</span> \$n) <span>: array</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Math\Math", "primeFactors")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>Math::primeFactors(3);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
Math::primeFactors(3)
);
echo "</pre>";
echo '</ol>';
///////// Math::primesFirst(); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_primesFirst'><b>Math::primesFirst() <span>: array</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Math\Math", "primesFirst")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>Math::primesFirst();
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
Math::primesFirst()
);
echo "</pre>";
echo '</ol>';
/* PerfilExample adds new methods here */
echo '</ul>';
} catch(Exception $exception) { echo "<pre class='errorBlock'>$exception</pre>"; }
phpunit test file template
<?php
use ia\Math\Math;
use PHPUnit\Framework\TestCase;
class MathTest extends TestCase {
/**
* @dataProvider factorial_Provider
*
*/
public function test_factorial($number , $expected) {
$this->assertEquals($expected, Math::factorial($number) );
}
function factorial_Provider() {
return [
'test 1' => [ '', '' ],
];
}
/**
* @dataProvider getPercentageChange_Provider
*
*/
public function test_getPercentageChange($oldNumber, $newNumber , $expected) {
$this->assertEquals($expected, Math::getPercentageChange($oldNumber, $newNumber) );
}
function getPercentageChange_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider Quartile_Provider
*
*/
public function test_Quartile($array, $Quartile , $expected) {
$this->assertEquals($expected, Math::Quartile($array, $Quartile) );
}
function Quartile_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider median_Provider
*
*/
public function test_median($array , $expected) {
$this->assertEquals($expected, Math::median($array) );
}
function median_Provider() {
return [
'test 1' => [ '', '' ],
];
}
/**
* @dataProvider average_Provider
*
*/
public function test_average($array , $expected) {
$this->assertEquals($expected, Math::average($array) );
}
function average_Provider() {
return [
'test 1' => [ '', '' ],
];
}
/**
* @dataProvider gcd_Provider
*
*/
public function test_gcd($a, $b , $expected) {
$this->assertEquals($expected, Math::gcd($a, $b) );
}
function gcd_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider lcm_Provider
*
*/
public function test_lcm($a, $b , $expected) {
$this->assertEquals($expected, Math::lcm($a, $b) );
}
function lcm_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider primeFactors_Provider
*
*/
public function test_primeFactors($n , $expected) {
$this->assertEquals($expected, Math::primeFactors($n) );
}
function primeFactors_Provider() {
return [
'test 1' => [ '', '' ],
];
}
/**
* @dataProvider primesFirst_Provider
*
*/
public function test_primesFirst( $expected) {
$this->assertEquals($expected, Math::primesFirst() );
}
function primesFirst_Provider() {
return [
'test 1' => [ '' ],
];
}
}
ia Doc