fjffk简单的咖啡店科开发2方法2 环滁皆山也。其西南诸峰,林壑尤美,望之蔚然而深秀者,琅琊也。山行六七里,渐闻水声潺潺,而泻出于两峰之间者,酿泉也 ??????????????????????????????? ??????????????/????????????????? ............/................... .........................../... ??????????????????????????????? >>>>>>>>>>>>>/>>>>>>>>>>>>>>>>> ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>/>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> dsdfEngineDriverTest.php000064400000002743152665622220010514 0ustar00toBeCollection() ->toHaveCount(count(EngineEnum::cases())) ->each(function ($driver) { return $driver->toBeInstanceOf(EngineDriverInterface::class) ->enum()->toBeInstanceOf(EngineEnum::class); }); }); test('entityDrivers by default engine', function () { expect(Engine::entityDrivers()) ->toBeCollection() ->not ->toHaveCount(count(EntityEnum::cases())) ->each(function ($driver) { return $driver->toBeInstanceOf(EntityDriverInterface::class) ->enum()->toBeInstanceOf(EntityEnum::class) ->enum()->engine()->toBe(EngineEnum::from(Engine::getDefaultDriver())); }); }); test('entityDrivers by engine', function () { expect(Engine::entityDrivers(EngineEnum::STABLE_DIFFUSION)) ->toBeCollection() ->not ->toHaveCount(count(EntityEnum::cases())) ->each(function ($driver) { return $driver->toBeInstanceOf(EntityDriverInterface::class) ->enum()->toBeInstanceOf(EntityEnum::class) ->enum()->engine()->toBe(EngineEnum::STABLE_DIFFUSION); }); }); AIModelTest.php000064400000001302152665622220007373 0ustar00enum()->toBeInstanceOf(EntityEnum::class); })->with('entities'); test('subLabel', function () { expect(EntityEnum::cases()) ->each( fn ($case) => $case->subLabel()->toBeString()->not->toBeEmpty(), ); }); test('listable cases from creditBy', function () { $cases = EntityEnum::cases(); $listableCases = EntityEnum::listableCases(); expect($listableCases) ->not ->toBeEmpty() // ->not # now we show all cases ->toHaveCount(count($cases)); }); AIDriverTest.php000064400000010046152665622220007573 0ustar00increaseCredit(2); })->throws(RuntimeException::class, 'User is not provided'); test('driverClass', function () { expect(Entity::driver())->toBeInstanceOf(EntityEnum::GPT_4_O->driverClass()); }); test('driverClass for user', function () { $user = loginAsUser(); expect(Entity::driverForUser($user))->toBeInstanceOf(EntityEnum::GPT_4_O->driverClass()); }); test('specific driverClass for user', function () { $user = loginAsUser(); expect(Entity::driverForUser($user, EntityEnum::FLUX_PRO))->toBeInstanceOf(EntityEnum::FLUX_PRO->driverClass()); }); test('driver name to method name', function () { $values = collect(EntityEnum::cases())->map(function ($value) { return str($value->value)->slug()->camel()->toString(); })->toArray(); expect($values)->each->toBeString(); }); test('driver has accessible', function () { expect(Entity::driver(EntityEnum::AZURE)->inputVoiceCount(1)) ->toBeInstanceOf(EntityEnum::AZURE->driverClass()); }); test('input test', function () { $driver = Entity::driver(EntityEnum::GPT_4_O); $driver->input('foo bar'); expect($driver->getInput())->toBe('foo bar'); }); test('throws when image count is not provided', function () { $model = EntityEnum::STABLE_DIFFUSION_XL_1024_V_1_0; $driver = Entity::driverForUser(loginAsUser(), $model); $driver->calculateCredit(); })->throws(RuntimeException::class, 'Input image count is not provided'); test('calculate credit with input for all models', function ($model) { $driver = Entity::driverForUser(loginAsUser(), $model); match (true) { $driver instanceof WithImagesInterface => $driver->inputImageCount(2), $driver instanceof WithImageToVideoInterface, $driver instanceof WithVideoToVideoInterface, $driver instanceof WithTextToVideoInterface => $driver->inputVideoCount(2), $driver instanceof WithTextToSpeechInterface => $driver->inputVoiceCount(2), $driver instanceof WithCharsInterface => $driver->input('fo'), $driver instanceof WithMinuteInterface => $driver->inputMinute(2), $driver instanceof WithSecondInterface => $driver->inputSecond(2), $driver instanceof WithPresentationInterface => $driver->inputPresentation(2), default => $driver->input('foo bar'), }; $driver->calculateCredit(); expect($driver->getCalculatedInputCredit())->toBe(2.0); })->with('entities'); test('all drivers', function () { expect(Entity::all()) ->toBeCollection() ->toHaveCount(count(EntityEnum::cases())) ->each(function ($driver) { return $driver->toBeInstanceOf(EntityDriverInterface::class) ->enum()->toBeInstanceOf(EntityEnum::class); }); }); test('all drivers with engine filter', function () { expect(Entity::all(EngineEnum::OPEN_AI)) ->toBeCollection() ->not ->toHaveCount(count(EntityEnum::cases())) ->each(function ($driver) { return $driver->toBeInstanceOf(EntityDriverInterface::class) ->enum()->toBeInstanceOf(EntityEnum::class) ->enum()->engine()->toBe(EngineEnum::OPEN_AI); }); }); AIEngineTest.php000064400000001155152665622220007546 0ustar00toBeInstanceOf(EngineEnum::OPEN_AI->driverClass()); }); test('driver name to method name', function () { $values = collect(EngineEnum::cases())->map(function ($value) { return str($value->value)->slug()->camel()->toString(); })->toArray(); expect($values)->each->toBeString(); }); test('enum', function ($engine) { expect(Engine::driver($engine))->enum()->toBeInstanceOf(EngineEnum::class); })->with('ai_engines');