<?php declare(strict_types=1); namespace Distantmagic\Resonance; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\TestCase; use Swoole\Event; /** * @internal */ #[CoversClass(LlamaCppClient::class)] #[Group('llamacpp')] final class LlamaCppClientTest extends TestCase { use TestsDependencyInectionContainerTrait; protected function tearDown(): void { Event::wait(); } public function test_completion_is_generated(): void { $llamaCppClient = self::$container->make(LlamaCppClient::class); SwooleCoroutineHelper::mustRun(static function () use ($llamaCppClient) { $completion = $llamaCppClient->generateCompletion(new LlamaCppCompletionRequest( llmChatHistory: new LlmChatHistory([ new LlmChatMessage('user', 'Who are you? Answer in exactly two words.'), ]), )); $ret = ''; foreach ($completion as $token) { $ret .= (string) $token; } self::assertNotEmpty($ret); }); } public function test_health_status_is_checked(): void { $llamaCppClient = self::$container->make(LlamaCppClient::class); self::assertSame(LlamaCppHealthStatus::Ok, $llamaCppClient->getHealth()); } }