JordanRL/Fermat

View on GitHub

Showing 50 of 52 total issues

Similar blocks of code found in 2 locations. Consider refactoring.
Open

protected function cschScale(int $scale = null): string
{
 
$scale = $scale ?? $this->getScale();
 
 
src/Samsara/Fermat/Core/Types/Base/Traits/TrigonometryScaleTrait.php on lines 208..220

Similar blocks of code found in 2 locations. Consider refactoring.
Open

protected function sechScale(int $scale = null): string
{
 
$scale = $scale ?? $this->getScale();
 
 
src/Samsara/Fermat/Core/Types/Base/Traits/TrigonometryScaleTrait.php on lines 159..171

Similar blocks of code found in 2 locations. Consider refactoring.
Open

<?php
 
namespace Samsara\Fermat\Core\Provider\RoundingModeAdapters\Modes;
 
/**
src/Samsara/Fermat/Core/Provider/RoundingModeAdapters/Modes/HalfOddAdapter.php on lines 1..25

Similar blocks of code found in 5 locations. Consider refactoring.
Open

if ($this instanceof Decimal) {
$value = Numbers::makeOrDont(Numbers::IMMUTABLE, $value, $this->getScale());
 
if ($this->compare($value) > -1) {
return true;
Severity: Major
Found in src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php and 4 other locations - About 40 mins to fix
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 28..44
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 58..78
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 144..164
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 178..199

Similar blocks of code found in 5 locations. Consider refactoring.
Open

if ($this instanceof Decimal) {
$value = Numbers::makeOrDont(Numbers::IMMUTABLE, $value, $this->getScale());
 
if ($this->compare($value) === -1) {
return true;
Severity: Major
Found in src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php and 4 other locations - About 40 mins to fix
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 28..44
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 58..78
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 92..112
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 178..199

Similar blocks of code found in 2 locations. Consider refactoring.
Open

$realPart = match (true) {
$partThis instanceof Fraction => match (true) {
$compareTo instanceof Fraction => self::normalizeObject($partThis, $mode, $scale),
default => self::normalizeObject($partThis->asDecimal(), $mode, $scale)
},
src/Samsara/Fermat/Core/Types/Traits/NumberNormalizationTrait.php on lines 164..170

Similar blocks of code found in 2 locations. Consider refactoring.
Open

$imaginaryPart = match (true) {
$partThis instanceof Fraction => match (true) {
$compareTo instanceof Fraction => self::normalizeObject($partThis, $mode, $scale),
default => self::normalizeObject($partThis->asDecimal(), $mode, $scale)
},
src/Samsara/Fermat/Core/Types/Traits/NumberNormalizationTrait.php on lines 122..128

Similar blocks of code found in 5 locations. Consider refactoring.
Open

if ($this instanceof Decimal) {
$value = Numbers::makeOrDont(Numbers::IMMUTABLE, $value, $this->getScale());
 
return $this->isEqualDecimal($value);
} else {
Severity: Major
Found in src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php and 4 other locations - About 40 mins to fix
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 58..78
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 92..112
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 144..164
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 178..199

Similar blocks of code found in 5 locations. Consider refactoring.
Open

if ($this instanceof Decimal) {
$value = Numbers::makeOrDont(Numbers::IMMUTABLE, $value, $this->getScale());
 
if ($this->compare($value) === 1) {
return true;
Severity: Major
Found in src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php and 4 other locations - About 40 mins to fix
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 28..44
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 92..112
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 144..164
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 178..199

Similar blocks of code found in 5 locations. Consider refactoring.
Open

if ($this instanceof Decimal) {
/** @var ImmutableDecimal $value */
$value = Numbers::makeOrDont(Numbers::IMMUTABLE, $value, $this->getScale());
 
if ($this->compare($value) < 1) {
Severity: Major
Found in src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php and 4 other locations - About 40 mins to fix
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 28..44
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 58..78
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 92..112
src/Samsara/Fermat/Core/Types/Traits/ComparisonTrait.php on lines 144..164

The class NumberCollection has a coupling between objects value of 14. Consider to reduce the number of dependencies under 13.
Open

class NumberCollection implements NumberCollectionInterface, ArrayAccess, IteratorAggregate
{
 
/**
* @var Vector

Consider simplifying this complex logical expression.
Open

if (
is_string($num) ||
is_float($num) ||
is_int($num) ||
$num instanceof MutableDecimal ||
Severity: Major
Found in src/Samsara/Fermat/Core/Types/Traits/SimpleArithmeticTrait.php - About 40 mins to fix

Consider simplifying this complex logical expression.
Open

if (
is_string($num) ||
is_float($num) ||
is_int($num) ||
$num instanceof MutableDecimal ||
Severity: Major
Found in src/Samsara/Fermat/Core/Types/Traits/SimpleArithmeticTrait.php - About 40 mins to fix

The class RandomProvider has a coupling between objects value of 14. Consider to reduce the number of dependencies under 13.
Open

class RandomProvider
{
 
/**
* @param int $scale

Consider simplifying this complex logical expression.
Open

if (
is_string($num) ||
is_float($num) ||
is_int($num) ||
$num instanceof MutableDecimal ||
Severity: Major
Found in src/Samsara/Fermat/Core/Types/Traits/SimpleArithmeticTrait.php - About 40 mins to fix

Consider simplifying this complex logical expression.
Open

if (
is_string($num) ||
is_float($num) ||
is_int($num) ||
$num instanceof MutableDecimal ||
Severity: Major
Found in src/Samsara/Fermat/Core/Types/Traits/SimpleArithmeticTrait.php - About 40 mins to fix

The class Matrix has a coupling between objects value of 13. Consider to reduce the number of dependencies under 13.
Open

abstract class Matrix implements MatrixInterface
{
public const MODE_ROWS_INPUT = 'rows';
public const MODE_COLUMNS_INPUT = 'columns';
 
 

The class ModeAdapterFactory has a coupling between objects value of 14. Consider to reduce the number of dependencies under 13.
Open

class ModeAdapterFactory
{
/** @var BaseAdapter[] */
private static array $modeAdapters = [];
 
 

The method randomInt() has an NPath complexity of 648. The configured NPath complexity threshold is 200.
Open

public static function randomInt(
int|float|string|Decimal $min,
int|float|string|Decimal $max,
RandomMode $mode = RandomMode::Entropy,
?int $seed = null

The method lnScale() has an NPath complexity of 216. The configured NPath complexity threshold is 200.
Open

protected function lnScale(int $scale = null): string
{
$internalScale = $scale ?? $this->getScale();
$internalScale += 3 + $this->numberOfLeadingZeros();
 
 
Severity
Category
Status
Source
Language