|
1 | 1 | import os |
2 | 2 |
|
| 3 | +import numpy as np |
3 | 4 | import pytest |
4 | 5 |
|
| 6 | +from redisvl.redis.utils import buffer_to_array |
5 | 7 | from redisvl.utils.vectorize import ( |
6 | 8 | AzureOpenAITextVectorizer, |
7 | 9 | BedrockTextVectorizer, |
@@ -238,6 +240,29 @@ def bad_return_type(text: str) -> str: |
238 | 240 | ) |
239 | 241 |
|
240 | 242 |
|
| 243 | +def test_dtypes(vectorizer): |
| 244 | + words = "hello" |
| 245 | + |
| 246 | + raw = vectorizer.embed(words, as_buffer=False) |
| 247 | + |
| 248 | + default = vectorizer.embed(words, as_buffer=True) |
| 249 | + assert buffer_to_array(default, dtype="float32") == raw |
| 250 | + |
| 251 | + float16 = vectorizer.embed(words, as_buffer=True, dtype="float16") |
| 252 | + # assert buffer_to_array(float16, dtype="float16") == raw # fails |
| 253 | + assert np.allclose(buffer_to_array(float16, dtype="float16"), raw, atol=1e-04) |
| 254 | + |
| 255 | + float32 = vectorizer.embed(words, as_buffer=True, dtype="float32") |
| 256 | + assert buffer_to_array(float32, dtype="float32") == raw |
| 257 | + |
| 258 | + float64 = vectorizer.embed(words, as_buffer=True, dtype="float64") |
| 259 | + assert buffer_to_array(float64, dtype="float64") == raw |
| 260 | + |
| 261 | + bfloat16 = vectorizer.embed(words, as_buffer=True, dtype="bfloat16") |
| 262 | + # assert buffer_to_array(bfloat16, dtype="bfloat16") == raw # fails |
| 263 | + assert np.allclose(buffer_to_array(bfloat16, dtype="bfloat16"), raw, atol=1e-03) |
| 264 | + |
| 265 | + |
241 | 266 | @pytest.fixture( |
242 | 267 | params=[ |
243 | 268 | OpenAITextVectorizer, |
|
0 commit comments