Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions src/Providers/Models/DTO/ModelConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -521,17 +521,17 @@ public function getTopLogprobs(): ?int
*
* @since 0.1.0
*
* @param list<FunctionDeclaration> $function_declarations The function declarations.
* @param list<FunctionDeclaration> $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;
}

/**
Expand All @@ -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;
}

/**
Expand Down Expand Up @@ -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.'
Expand Down Expand Up @@ -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
);
Expand Down Expand Up @@ -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]
));
Expand Down
2 changes: 1 addition & 1 deletion src/Providers/Models/DTO/ModelRequirements.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
9 changes: 9 additions & 0 deletions tests/unit/Providers/Models/DTO/ModelConfigTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down