1+ <?php
2+ /**
3+ * @since Aug 2023
4+ * @author Haydar KULEKCI <haydarkulekci@gmail.com>
5+ */
6+
7+ namespace Qdrant \Tests \Unit \Models ;
8+
9+ use PHPUnit \Framework \TestCase ;
10+ use Qdrant \Exception \InvalidArgumentException ;
11+ use Qdrant \Models \MultiVectorStruct ;
12+ use Qdrant \Models \VectorStruct ;
13+
14+ class MultiVectorStructTest extends TestCase
15+ {
16+ public function testMultiVectorStruct (): void
17+ {
18+ $ vector = new MultiVectorStruct ([[1 , 2 , 3 ], [1 , 2 , 4 ]]);
19+
20+ $ this ->assertEquals (
21+ [[1 , 2 , 3 ], [1 , 2 , 4 ]],
22+ $ vector ->toArray ()
23+ );
24+ }
25+
26+ public function testNamedMultiVectorStruct (): void
27+ {
28+ $ vector = new MultiVectorStruct ([
29+ 'foo ' => [1 , 2 , 3 ],
30+ 'bar ' => [1 , 2 , 4 ],
31+ ]);
32+
33+ $ this ->assertEquals (
34+ [
35+ 'foo ' => [1 , 2 , 3 ],
36+ 'bar ' => [1 , 2 , 4 ],
37+ ],
38+ $ vector ->toArray ()
39+ );
40+
41+ $ this ->assertEquals (
42+ [
43+ 'name ' => 'foo ' ,
44+ 'vector ' => [1 , 2 , 3 ]
45+ ],
46+ $ vector ->toSearchArray ('foo ' )
47+ );
48+
49+ $ this ->assertEquals (
50+ [
51+ 'name ' => 'bar ' ,
52+ 'vector ' => [1 , 2 , 4 ]
53+ ],
54+ $ vector ->toSearchArray ('bar ' )
55+ );
56+ }
57+
58+ public function testNamedMultiVectorStructWithMissingName (): void
59+ {
60+ $ this ->expectException (InvalidArgumentException::class);
61+ $ this ->expectExceptionMessage ("Vector with name uber not found " );
62+
63+ $ vector = new MultiVectorStruct ([
64+ 'foo ' => [1 , 2 , 3 ],
65+ 'bar ' => [1 , 2 , 4 ],
66+ ]);
67+
68+ $ vector ->toSearchArray ('uber ' );
69+ }
70+
71+ public function testMultiVectorStructCount (): void
72+ {
73+ $ vector = new MultiVectorStruct ([
74+ 'foo ' => [1 , 2 , 3 ],
75+ 'bar ' => [1 , 2 , 4 ],
76+ ]);
77+
78+ $ this ->assertEquals (2 , $ vector ->count ());
79+ }
80+ }
0 commit comments