|
15 | 15 | _possibly_convert_objects,
|
16 | 16 | _infer_dtype_from_scalar,
|
17 | 17 | _maybe_convert_string_to_object,
|
18 |
| - _maybe_convert_scalar) |
| 18 | + _maybe_convert_scalar, |
| 19 | + _find_common_type) |
| 20 | +from pandas.types.dtypes import (CategoricalDtype, |
| 21 | + DatetimeTZDtype) |
19 | 22 | from pandas.util import testing as tm
|
20 | 23 |
|
21 | 24 | _multiprocess_can_split_ = True
|
@@ -188,6 +191,42 @@ def test_possibly_convert_objects_copy(self):
|
188 | 191 | self.assertTrue(values is not out)
|
189 | 192 |
|
190 | 193 |
|
| 194 | +class TestCommonTypes(tm.TestCase): |
| 195 | + def setUp(self): |
| 196 | + super(TestCommonTypes, self).setUp() |
| 197 | + |
| 198 | + def test_numpy_dtypes(self): |
| 199 | + self.assertEqual(_find_common_type([np.int64]), np.int64) |
| 200 | + self.assertEqual(_find_common_type([np.uint64]), np.uint64) |
| 201 | + self.assertEqual(_find_common_type([np.float32]), np.float32) |
| 202 | + self.assertEqual(_find_common_type([np.object]), np.object) |
| 203 | + |
| 204 | + self.assertEqual(_find_common_type([np.int16, np.int64]), |
| 205 | + np.int64) |
| 206 | + self.assertEqual(_find_common_type([np.int32, np.uint32]), |
| 207 | + np.int64) |
| 208 | + self.assertEqual(_find_common_type([np.object, np.float32]), |
| 209 | + np.object) |
| 210 | + self.assertEqual(_find_common_type([np.object, np.int16]), |
| 211 | + np.object) |
| 212 | + self.assertEqual(_find_common_type([np.int16, np.float64]), |
| 213 | + np.float64) |
| 214 | + self.assertEqual(_find_common_type([np.float16, np.int16]), |
| 215 | + np.float32) |
| 216 | + self.assertEqual(_find_common_type([np.float16, np.int64]), |
| 217 | + np.float64) |
| 218 | + self.assertEqual(_find_common_type([np.complex128, np.int32]), |
| 219 | + np.complex128) |
| 220 | + self.assertEqual(_find_common_type([np.uint64, np.int64]), |
| 221 | + np.float64) |
| 222 | + |
| 223 | + def test_pandas_dtypes(self): |
| 224 | + with self.assertRaises(TypeError): |
| 225 | + self.assertEqual(_find_common_type([CategoricalDtype]), |
| 226 | + CategoricalDtype) |
| 227 | + self.assertEqual(_find_common_type([DatetimeTZDtype]), |
| 228 | + DatetimeTZDtype) |
| 229 | + |
191 | 230 | if __name__ == '__main__':
|
192 | 231 | nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'],
|
193 | 232 | exit=False)
|
0 commit comments