@@ -48,3 +48,35 @@ def test_python_values_to_proto_values_bool(values):
4848 converted = feast_value_type_to_python_type (protos [0 ])
4949
5050 assert converted is bool (values [0 ])
51+
52+
53+ @pytest .mark .parametrize (
54+ "values, value_type, expected" ,
55+ (
56+ (np .array ([b'[1,2,3]' ]), ValueType .INT64_LIST , [1 , 2 , 3 ]),
57+ (np .array ([b'[1,2,3]' ]), ValueType .INT32_LIST , [1 , 2 , 3 ]),
58+ (np .array ([b'[1.5,2.5,3.5]' ]), ValueType .FLOAT_LIST , [1.5 , 2.5 , 3.5 ]),
59+ (np .array ([b'[1.5,2.5,3.5]' ]), ValueType .DOUBLE_LIST , [1.5 , 2.5 , 3.5 ]),
60+ (np .array ([b'["a","b","c"]' ]), ValueType .STRING_LIST , ["a" , "b" , "c" ]),
61+ (np .array ([b'[true,false]' ]), ValueType .BOOL_LIST , [True , False ]),
62+ (np .array ([b'[1,0]' ]), ValueType .BOOL_LIST , [True , False ]),
63+ (np .array ([None ]), ValueType .STRING_LIST , None ),
64+ ([b'[1,2,3]' ], ValueType .INT64_LIST , [1 , 2 , 3 ]),
65+ ([b'[1,2,3]' ], ValueType .INT32_LIST , [1 , 2 , 3 ]),
66+ ([b'[1.5,2.5,3.5]' ], ValueType .FLOAT_LIST , [1.5 , 2.5 , 3.5 ]),
67+ ([b'[1.5,2.5,3.5]' ], ValueType .DOUBLE_LIST , [1.5 , 2.5 , 3.5 ]),
68+ ([b'["a","b","c"]' ], ValueType .STRING_LIST , ["a" , "b" , "c" ]),
69+ ([b'[true,false]' ], ValueType .BOOL_LIST , [True , False ]),
70+ ([b'[1,0]' ], ValueType .BOOL_LIST , [True , False ]),
71+ ([None ], ValueType .STRING_LIST , None ),
72+ ),
73+ )
74+ def test_python_values_to_proto_values_bytes_to_list (values , value_type , expected ):
75+ protos = python_values_to_proto_values (values , value_type )
76+ converted = feast_value_type_to_python_type (protos [0 ])
77+ assert converted == expected
78+
79+
80+ def test_python_values_to_proto_values_bytes_to_list_not_supported ():
81+ with pytest .raises (TypeError ):
82+ _ = python_values_to_proto_values ([b"[]" ], ValueType .BYTES_LIST )
0 commit comments