(self)
| 131 | assert results[i] == doc.field("results")[i] |
| 132 | |
| 133 | def test_with_dense_vector_fields(self): |
| 134 | schema = CollectionSchema( |
| 135 | name="test_collection", |
| 136 | vectors=[ |
| 137 | VectorSchema( |
| 138 | name="embedding", |
| 139 | data_type=DataType.VECTOR_FP16, |
| 140 | dimension=4, |
| 141 | ), |
| 142 | VectorSchema( |
| 143 | name="image", |
| 144 | data_type=DataType.VECTOR_FP32, |
| 145 | dimension=8, |
| 146 | ), |
| 147 | VectorSchema( |
| 148 | name="text", |
| 149 | data_type=DataType.VECTOR_INT8, |
| 150 | dimension=32, |
| 151 | ), |
| 152 | ], |
| 153 | ) |
| 154 | |
| 155 | doc = Doc( |
| 156 | id="1", |
| 157 | vectors={ |
| 158 | "embedding": [1.1] * 4, |
| 159 | "image": [2.2] * 8, |
| 160 | "text": [4] * 32, |
| 161 | }, |
| 162 | ) |
| 163 | cpp_doc = convert_to_cpp_doc(doc, collection_schema=schema) |
| 164 | assert cpp_doc is not None |
| 165 | assert cpp_doc.pk() == doc.id |
| 166 | |
| 167 | embedding_vector = cpp_doc.get_any("embedding", DataType.VECTOR_FP16) |
| 168 | assert len(embedding_vector) == 4 |
| 169 | for i in range(4): |
| 170 | assert math.isclose( |
| 171 | embedding_vector[i], doc.vector("embedding")[i], rel_tol=1e-1 |
| 172 | ) |
| 173 | |
| 174 | image_vector = cpp_doc.get_any("image", DataType.VECTOR_FP32) |
| 175 | assert len(image_vector) == 8 |
| 176 | for i in range(8): |
| 177 | assert math.isclose(image_vector[i], doc.vector("image")[i], rel_tol=1e-1) |
| 178 | |
| 179 | text_vector = cpp_doc.get_any("text", DataType.VECTOR_INT8) |
| 180 | assert len(text_vector) == 32 |
| 181 | for i in range(32): |
| 182 | assert text_vector[i] == doc.vectors["text"][i] |
| 183 | |
| 184 | def test_with_sparse_vector_fields(self): |
| 185 | schema = CollectionSchema( |
nothing calls this directly
no test coverage detected