MCPcopy Index your code
hub / github.com/mongodb/mongo-python-driver / test_vector_from_numpy

Method test_vector_from_numpy

test/test_bson.py:874–930  ·  view source on GitHub ↗

Follows test_vector except for input type numpy.ndarray

(self)

Source from the content-addressed store, hash-verified

872
873 @unittest.skipIf(not _NUMPY_AVAILABLE, "numpy optional-dependency not installed.")
874 def test_vector_from_numpy(self):
875 """Follows test_vector except for input type numpy.ndarray"""
876 # Simple data values could be treated as any of our BinaryVectorDtypes
877 import numpy as np
878
879 arr = np.array([2, 3])
880 # INT8
881 binary_vector_int8 = Binary.from_vector(arr, BinaryVectorDtype.INT8)
882 # as_vector
883 vector = binary_vector_int8.as_vector()
884 assert isinstance(vector, BinaryVector)
885 assert vector.data == arr.tolist()
886 # as_numpy_vector
887 vector_np = binary_vector_int8.as_vector(return_numpy=True)
888 assert isinstance(vector_np, BinaryVector)
889 assert isinstance(vector_np.data, np.ndarray)
890 assert np.all(vector.data == arr)
891 # PACKED_BIT
892 binary_vector_uint8 = Binary.from_vector(arr, BinaryVectorDtype.PACKED_BIT)
893 # as_vector
894 vector = binary_vector_uint8.as_vector()
895 assert isinstance(vector, BinaryVector)
896 assert vector.data == arr.tolist()
897 # as_numpy_vector
898 vector_np = binary_vector_uint8.as_vector(return_numpy=True)
899 assert isinstance(vector_np, BinaryVector)
900 assert isinstance(vector_np.data, np.ndarray)
901 assert np.all(vector_np.data == arr)
902 # FLOAT32
903 binary_vector_float32 = Binary.from_vector(arr, BinaryVectorDtype.FLOAT32)
904 # as_vector
905 vector = binary_vector_float32.as_vector()
906 assert isinstance(vector, BinaryVector)
907 assert vector.data == arr.tolist()
908 # as_numpy_vector
909 vector_np = binary_vector_float32.as_vector(return_numpy=True)
910 assert isinstance(vector_np, BinaryVector)
911 assert isinstance(vector_np.data, np.ndarray)
912 assert np.all(vector_np.data == arr)
913
914 # Invalid cases
915 with self.assertRaises(ValueError):
916 Binary.from_vector(np.array([-1]), BinaryVectorDtype.PACKED_BIT)
917 with self.assertRaises(ValueError):
918 Binary.from_vector(np.array([128]), BinaryVectorDtype.PACKED_BIT)
919 with self.assertRaises(ValueError):
920 Binary.from_vector(np.array([-198]), BinaryVectorDtype.INT8)
921
922 # Unexpected cases
923 # Creating a vector of INT8 from a list of doubles will be caught by struct.pack
924 # Numpy's default behavior is to cast to the type requested.
925 list_floats = [-1.1, 1.1]
926 cast_bin = Binary.from_vector(np.array(list_floats), BinaryVectorDtype.INT8)
927 vector = cast_bin.as_vector()
928 vector_np = cast_bin.as_vector(return_numpy=True)
929 assert vector.data != list_floats
930 assert vector.data == vector_np.data.tolist() == [-1, 1]
931

Callers

nothing calls this directly

Calls 2

from_vectorMethod · 0.80
as_vectorMethod · 0.80

Tested by

no test coverage detected