diff --git a/src/Providers/Models/DTO/ModelConfig.php b/src/Providers/Models/DTO/ModelConfig.php index ce45993c..20166520 100644 --- a/src/Providers/Models/DTO/ModelConfig.php +++ b/src/Providers/Models/DTO/ModelConfig.php @@ -521,17 +521,17 @@ public function getTopLogprobs(): ?int * * @since 0.1.0 * - * @param list $function_declarations The function declarations. + * @param list $functionDeclarations The function declarations. * * @throws InvalidArgumentException If the array is not a list. */ - public function setFunctionDeclarations(array $function_declarations): void + public function setFunctionDeclarations(array $functionDeclarations): void { - if (!array_is_list($function_declarations)) { + if (!array_is_list($functionDeclarations)) { throw new InvalidArgumentException('Function declarations must be a list array.'); } - $this->functionDeclarations = $function_declarations; + $this->functionDeclarations = $functionDeclarations; } /** @@ -551,11 +551,11 @@ public function getFunctionDeclarations(): ?array * * @since 0.1.0 * - * @param WebSearch $web_search The web search configuration. + * @param WebSearch $webSearch The web search configuration. */ - public function setWebSearch(WebSearch $web_search): void + public function setWebSearch(WebSearch $webSearch): void { - $this->webSearch = $web_search; + $this->webSearch = $webSearch; } /** @@ -729,12 +729,12 @@ protected function validateMediaOrientationAspectRatioCompatibility( MediaOrientationEnum $orientation, string $aspectRatio ): void { - if ($orientation->isSquare() && $aspectRatio !== '1:1') { + $aspectRatioParts = explode(':', $aspectRatio); + if ($orientation->isSquare() && $aspectRatioParts[0] !== $aspectRatioParts[1]) { throw new InvalidArgumentException( 'The aspect ratio "' . $aspectRatio . '" is not compatible with the square orientation.' ); } - $aspectRatioParts = explode(':', $aspectRatio); if ($orientation->isLandscape() && $aspectRatioParts[0] <= $aspectRatioParts[1]) { throw new InvalidArgumentException( 'The aspect ratio "' . $aspectRatio . '" is not compatible with the landscape orientation.' @@ -991,8 +991,8 @@ static function (ModalityEnum $modality): string { if ($this->functionDeclarations !== null) { $data[self::KEY_FUNCTION_DECLARATIONS] = array_map( - static function (FunctionDeclaration $function_declaration): array { - return $function_declaration->toArray(); + static function (FunctionDeclaration $functionDeclaration): array { + return $functionDeclaration->toArray(); }, $this->functionDeclarations ); @@ -1096,8 +1096,8 @@ public static function fromArray(array $array): self if (isset($array[self::KEY_FUNCTION_DECLARATIONS])) { $config->setFunctionDeclarations(array_map( - static function (array $function_declaration_data): FunctionDeclaration { - return FunctionDeclaration::fromArray($function_declaration_data); + static function (array $functionDeclarationData): FunctionDeclaration { + return FunctionDeclaration::fromArray($functionDeclarationData); }, $array[self::KEY_FUNCTION_DECLARATIONS] )); diff --git a/src/Providers/Models/DTO/ModelRequirements.php b/src/Providers/Models/DTO/ModelRequirements.php index 12577e3c..7b92d804 100644 --- a/src/Providers/Models/DTO/ModelRequirements.php +++ b/src/Providers/Models/DTO/ModelRequirements.php @@ -4,8 +4,8 @@ namespace WordPress\AiClient\Providers\Models\DTO; -use InvalidArgumentException; use WordPress\AiClient\Common\AbstractDataTransferObject; +use WordPress\AiClient\Common\Exception\InvalidArgumentException; use WordPress\AiClient\Messages\DTO\Message; use WordPress\AiClient\Messages\Enums\ModalityEnum; use WordPress\AiClient\Providers\Models\Enums\CapabilityEnum; diff --git a/tests/unit/Providers/Models/DTO/ModelConfigTest.php b/tests/unit/Providers/Models/DTO/ModelConfigTest.php index dd0c31c3..578e10e9 100644 --- a/tests/unit/Providers/Models/DTO/ModelConfigTest.php +++ b/tests/unit/Providers/Models/DTO/ModelConfigTest.php @@ -715,6 +715,15 @@ public function testMediaOrientationAspectRatioCompatibilitySquare(): void $config->setOutputMediaOrientation(MediaOrientationEnum::square()); } + public function testMediaOrientationAspectRatioCompatibilitySquareNonNormalized(): void + { + $config = new ModelConfig(); + $config->setOutputMediaOrientation(MediaOrientationEnum::square()); + $config->setOutputMediaAspectRatio('16:16'); + + $this->assertSame('16:16', $config->getOutputMediaAspectRatio()); + } + public function testMediaOrientationAspectRatioCompatibilityLandscape(): void { $config = new ModelConfig();