@@ -116,3 +116,43 @@ def test_array_schema_enumeration_nullable(self, sparse, pass_df):
116
116
expected_validity = [False , False , True , False , False ]
117
117
assert_array_equal (A [:]["a" ].mask , expected_validity )
118
118
assert_array_equal (A .df [:]["a" ].isna (), expected_validity )
119
+
120
+ @pytest .mark .parametrize (
121
+ "dtype, values" ,
122
+ [
123
+ (np .int8 , np .array ([1 , 2 , 3 ], np .int8 )),
124
+ (np .uint8 , np .array ([1 , 2 , 3 ], np .uint8 )),
125
+ (np .int16 , np .array ([1 , 2 , 3 ], np .int16 )),
126
+ (np .uint16 , np .array ([1 , 2 , 3 ], np .uint16 )),
127
+ (np .int32 , np .array ([1 , 2 , 3 ], np .int32 )),
128
+ (np .uint32 , np .array ([1 , 2 , 3 ], np .uint32 )),
129
+ (np .int64 , np .array ([1 , 2 , 3 ], np .int64 )),
130
+ (np .uint64 , np .array ([1 , 2 , 3 ], np .uint64 )),
131
+ (np .dtype ("S" ), np .array (["a" , "b" , "c" ], np .dtype ("S" ))),
132
+ (np .dtype ("U" ), np .array (["a" , "b" , "c" ], np .dtype ("U" ))),
133
+ ],
134
+ )
135
+ def test_enum_dtypes (self , dtype , values ):
136
+ # create empty
137
+ enmr = tiledb .Enumeration ("e" , False , dtype = dtype )
138
+ if dtype in (np .dtype ("S" ), np .dtype ("U" )):
139
+ assert enmr .dtype .kind == enmr .values ().dtype .kind == dtype .kind
140
+ else :
141
+ assert enmr .dtype == enmr .values ().dtype == dtype
142
+ assert_array_equal (enmr .values (), [])
143
+
144
+ # then extend with values
145
+ enmr = enmr .extend (values )
146
+ if dtype in (np .dtype ("S" ), np .dtype ("U" )):
147
+ assert enmr .dtype .kind == enmr .values ().dtype .kind == dtype .kind
148
+ else :
149
+ assert enmr .dtype == enmr .values ().dtype == dtype
150
+ assert_array_equal (enmr .values (), values )
151
+
152
+ # create with values
153
+ enmr = tiledb .Enumeration ("e" , False , values = values )
154
+ if dtype in (np .dtype ("S" ), np .dtype ("U" )):
155
+ assert enmr .dtype .kind == enmr .values ().dtype .kind == dtype .kind
156
+ else :
157
+ assert enmr .dtype == enmr .values ().dtype == dtype
158
+ assert_array_equal (enmr .values (), values )
0 commit comments