Skip to content

Commit 136df6b

Browse files
author
Michał Żarnecki
committed
test TextSplitter
1 parent 2fd610e commit 136df6b

File tree

3 files changed

+43
-1
lines changed

3 files changed

+43
-1
lines changed

app/src/test/PromptResolverTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
use PHPUnit\Framework\TestCase;
77
use service\PromptResolver;
88

9-
final class PromptResolverTest extends TestCase
9+
final class PromptResolverTest extends TestCase
1010
{
1111
public function testPrompt_isDefaultPromptProvided_whenNoInputIsSend(): void
1212
{

app/src/test/TextSplitterTest.php

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace test;
5+
6+
use service\TextSplitter;
7+
use PHPUnit\Framework\TestCase;
8+
9+
class TextSplitterTest extends TestCase
10+
{
11+
public function testTextSplitter_keepsCommonPartBetweenChunks(): void
12+
{
13+
$textSplitter = new TextSplitter();
14+
$chunks = $textSplitter->splitDocumentIntoChunks($this->getLoremIpsum(), 300, 100);
15+
$this->assertEquals(substr($chunks[0], strlen($chunks[0])-100), substr($chunks[1], 0, 100));
16+
}
17+
18+
public function testTextSplitter_splitsToExpectedNumberOfChunks(): void
19+
{
20+
$textSplitter = new TextSplitter();
21+
$text = $this->getLoremIpsum();
22+
$length = (int) ceil(strlen($text) / 190);
23+
$chunks = $textSplitter->splitDocumentIntoChunks($text, 200, 10);
24+
$this->assertEquals($length, count($chunks));
25+
}
26+
27+
public function getLoremIpsum(): string
28+
{
29+
return file_get_contents(__DIR__ . '/lorem-ipsum.txt');
30+
}
31+
}

app/src/test/lorem-ipsum.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
2+
3+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque viverra purus in arcu ultrices interdum. Maecenas egestas pharetra lorem, vel sagittis eros volutpat et. Nam hendrerit, tortor id pellentesque facilisis, risus ipsum pretium sem, vel tincidunt enim ante ut diam. Quisque mauris nunc, pretium vitae odio sed, sollicitudin suscipit metus. Donec sapien ante, sollicitudin quis justo sit amet, sollicitudin hendrerit nisi. Quisque eu purus dapibus, pulvinar est sit amet, rhoncus nisl. Vivamus sem sem, mattis sit amet sodales sit amet, volutpat ac turpis. Aenean vel elit sed odio interdum euismod et at orci. Donec vitae sapien eu neque tincidunt finibus ut ut massa. Etiam consectetur lectus vel lorem rhoncus sollicitudin. Nullam porttitor nisl vel quam tincidunt luctus. Quisque vulputate est lacinia velit laoreet, vel blandit magna mattis. Duis vestibulum eros eget vestibulum mattis.
4+
5+
Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In sit amet justo in turpis finibus consequat. Maecenas nec lectus a lorem commodo accumsan. In porttitor nulla odio, fermentum tempus diam gravida sed. In laoreet non libero eu euismod. Etiam ac erat ac eros porttitor egestas. Nulla fringilla dignissim tortor mollis sagittis. Curabitur ex metus, placerat id lobortis iaculis, maximus at turpis. Praesent facilisis vulputate neque, ac tincidunt dui cursus ac. Curabitur metus mi, tristique at aliquet ac, semper non ex. Vestibulum eleifend magna non tellus dignissim facilisis. Suspendisse libero nunc, lobortis vel consectetur et, commodo nec sem. Etiam consectetur ex et sem sagittis, in auctor metus fringilla. Phasellus tempor diam eu vehicula fringilla.
6+
7+
Nunc est tortor, consequat sit amet mauris vitae, pulvinar commodo est. Phasellus sed vulputate lorem. Proin non lectus eu eros dictum tempus eget id justo. Nunc at dapibus nisl. Praesent ac tellus sit amet nunc dictum accumsan at at velit. Curabitur at aliquet massa. Duis nec erat in massa condimentum imperdiet sed et leo. Duis non venenatis ligula, nec finibus sapien. Proin neque ligula, mattis at arcu at, consectetur tincidunt lacus. Aenean sit amet magna pharetra sem aliquet cursus. Aenean nec magna lectus. Quisque ut ipsum maximus, ullamcorper elit eu, accumsan tellus. Ut egestas quam vel lectus tempor, vitae interdum nisi imperdiet. Donec porttitor elit quis massa varius, eget commodo enim euismod. Sed sed rhoncus odio. Morbi vitae arcu ut ipsum tempor pharetra lacinia sit amet nisi.
8+
9+
Nam mollis mauris sit amet finibus rhoncus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Aenean fringilla mattis quam eu placerat. Suspendisse ac dolor at turpis hendrerit lobortis. Sed enim erat, sodales sed lectus luctus, fermentum ullamcorper quam. Nam a enim vitae elit fermentum condimentum. Praesent sit amet consequat nunc. Integer ac ultricies leo. Morbi dignissim, sapien at fringilla finibus, risus ligula tincidunt mi, non posuere lacus lorem id nulla. Cras tempor rhoncus tempor. Donec pretium facilisis nibh, in pellentesque enim interdum id.
10+
11+
Maecenas nec nunc mollis, malesuada tellus et, consectetur urna. Phasellus non mi vel justo euismod interdum vitae et magna. Quisque feugiat sed eros at elementum. Morbi gravida ut nulla nec feugiat. Phasellus eu ligula elit. Vestibulum quis rhoncus odio, vitae auctor ligula. Maecenas tortor purus, finibus vitae dui non, pulvinar malesuada est. Donec congue nisl eget sem consequat porta. Duis suscipit dolor et finibus ultrices. Vestibulum sit amet dolor ac purus luctus porttitor in eu ipsum. Etiam auctor id nunc eu accumsan. Duis arcu lacus, ultrices eu enim id, egestas posuere nisl. Pellentesque ut eleifend est. Sed nec magna vitae mi aliquam accumsan. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

0 commit comments

Comments
 (0)