mirror of
https://github.com/Karaka-Management/phpOMS.git
synced 2026-02-11 06:28:40 +00:00
move some functions to array utils
This commit is contained in:
parent
b8ca685473
commit
e8ecfce4fd
|
|
@ -124,26 +124,6 @@ final class Functions
|
||||||
return self::ackermann($m - 1, self::ackermann($m, $n - 1));
|
return self::ackermann($m - 1, self::ackermann($m, $n - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Applying abs to every array value
|
|
||||||
*
|
|
||||||
* @param array<float|int> $values Numeric values
|
|
||||||
*
|
|
||||||
* @return array<float|int>
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public static function abs(array $values) : array
|
|
||||||
{
|
|
||||||
$abs = [];
|
|
||||||
|
|
||||||
foreach ($values as $value) {
|
|
||||||
$abs[] = \abs($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $abs;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculate inverse modular.
|
* Calculate inverse modular.
|
||||||
*
|
*
|
||||||
|
|
@ -237,68 +217,6 @@ final class Functions
|
||||||
return !((bool) ($a & 1));
|
return !((bool) ($a & 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Power all values in array.
|
|
||||||
*
|
|
||||||
* @param array<float|int> $values Values to square
|
|
||||||
* @param float $exp Exponent
|
|
||||||
*
|
|
||||||
* @return array<float>
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public static function powerFloat(array $values, float $exp = 2.0) : array
|
|
||||||
{
|
|
||||||
$squared = [];
|
|
||||||
|
|
||||||
foreach ($values as $value) {
|
|
||||||
$squared[] = $value ** $exp;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $squared;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Power all values in array.
|
|
||||||
*
|
|
||||||
* @param array<float|int> $values Values to square
|
|
||||||
* @param int $exp Exponent
|
|
||||||
*
|
|
||||||
* @return array<float|int>
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public static function powerInt(array $values, int $exp = 2) : array
|
|
||||||
{
|
|
||||||
$squared = [];
|
|
||||||
|
|
||||||
foreach ($values as $value) {
|
|
||||||
$squared[] = $value ** $exp;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $squared;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sqrt all values in array.
|
|
||||||
*
|
|
||||||
* @param array<float|int> $values Values to sqrt
|
|
||||||
*
|
|
||||||
* @return array<float|int>
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public static function sqrt(array $values) : array
|
|
||||||
{
|
|
||||||
$squared = [];
|
|
||||||
|
|
||||||
foreach ($values as $value) {
|
|
||||||
$squared[] = \sqrt($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $squared;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the relative position on a circular construct.
|
* Gets the relative position on a circular construct.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -404,4 +404,86 @@ final class ArrayUtils
|
||||||
{
|
{
|
||||||
return \array_sum(self::arrayFlatten($array));
|
return \array_sum(self::arrayFlatten($array));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Applying abs to every array value
|
||||||
|
*
|
||||||
|
* @param array<float|int> $values Numeric values
|
||||||
|
*
|
||||||
|
* @return array<float|int>
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public static function abs(array $values) : array
|
||||||
|
{
|
||||||
|
$abs = [];
|
||||||
|
|
||||||
|
foreach ($values as $value) {
|
||||||
|
$abs[] = \abs($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $abs;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Power all values in array.
|
||||||
|
*
|
||||||
|
* @param array<float|int> $values Values to square
|
||||||
|
* @param float $exp Exponent
|
||||||
|
*
|
||||||
|
* @return array<float>
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public static function powerFloat(array $values, float $exp = 2.0) : array
|
||||||
|
{
|
||||||
|
$squared = [];
|
||||||
|
|
||||||
|
foreach ($values as $value) {
|
||||||
|
$squared[] = $value ** $exp;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $squared;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Power all values in array.
|
||||||
|
*
|
||||||
|
* @param array<float|int> $values Values to square
|
||||||
|
* @param int $exp Exponent
|
||||||
|
*
|
||||||
|
* @return array<float|int>
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public static function powerInt(array $values, int $exp = 2) : array
|
||||||
|
{
|
||||||
|
$squared = [];
|
||||||
|
|
||||||
|
foreach ($values as $value) {
|
||||||
|
$squared[] = $value ** $exp;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $squared;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sqrt all values in array.
|
||||||
|
*
|
||||||
|
* @param array<float|int> $values Values to sqrt
|
||||||
|
*
|
||||||
|
* @return array<float|int>
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public static function sqrt(array $values) : array
|
||||||
|
{
|
||||||
|
$squared = [];
|
||||||
|
|
||||||
|
foreach ($values as $value) {
|
||||||
|
$squared[] = \sqrt($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $squared;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,11 +46,6 @@ class FunctionsTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals(5, Functions::invMod(-10, 17));
|
self::assertEquals(5, Functions::invMod(-10, 17));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testAbs() : void
|
|
||||||
{
|
|
||||||
self::assertEquals([1, 3, 4], Functions::abs([-1, 3, -4]));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testProperties() : void
|
public function testProperties() : void
|
||||||
{
|
{
|
||||||
self::assertTrue(Functions::isOdd(3));
|
self::assertTrue(Functions::isOdd(3));
|
||||||
|
|
@ -70,13 +65,4 @@ class FunctionsTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals(5, Functions::getRelativeDegree(12, 12, 7));
|
self::assertEquals(5, Functions::getRelativeDegree(12, 12, 7));
|
||||||
self::assertEquals(11, Functions::getRelativeDegree(6, 12, 7));
|
self::assertEquals(11, Functions::getRelativeDegree(6, 12, 7));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testPower() : void
|
|
||||||
{
|
|
||||||
self::assertEquals([4, 9, 16], Functions::powerInt([2, 3, 4], 2));
|
|
||||||
self::assertEquals([8, 27, 64], Functions::powerInt([2, 3, 4], 3));
|
|
||||||
|
|
||||||
self::assertEqualsWithDelta([2.0, 3.0, 4.0], Functions::powerFloat([4, 9, 16], 1 / 2), 0.0);
|
|
||||||
self::assertEqualsWithDelta([2.0, 3.0, 4.0], Functions::powerFloat([8, 27, 64], 1 / 3), 0.0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -144,4 +144,23 @@ class ArrayUtilsTest extends \PHPUnit\Framework\TestCase
|
||||||
|
|
||||||
ArrayUtils::stringify([new class() {}]);
|
ArrayUtils::stringify([new class() {}]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testPower() : void
|
||||||
|
{
|
||||||
|
self::assertEquals([4, 9, 16], ArrayUtils::powerInt([2, 3, 4], 2));
|
||||||
|
self::assertEquals([8, 27, 64], ArrayUtils::powerInt([2, 3, 4], 3));
|
||||||
|
|
||||||
|
self::assertEqualsWithDelta([2.0, 3.0, 4.0], ArrayUtils::powerFloat([4, 9, 16], 1 / 2), 0.0);
|
||||||
|
self::assertEqualsWithDelta([2.0, 3.0, 4.0], ArrayUtils::powerFloat([8, 27, 64], 1 / 3), 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testSqrt() : void
|
||||||
|
{
|
||||||
|
self::assertEqualsWithDelta([2, 3, 4], ArrayUtils::sqrt([4, 9, 16]), 0.01);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testAbs() : void
|
||||||
|
{
|
||||||
|
self::assertEquals([1, 3, 4], ArrayUtils::abs([-1, 3, -4]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user