Skip to content

Commit a3bfa7f

Browse files
committed
TST: Corner case tests for maybe_convert_objects (GH #2845)
1 parent 13c5d72 commit a3bfa7f

File tree

2 files changed

+74
-0
lines changed

2 files changed

+74
-0
lines changed

pandas/tests/test_frame.py

+63
Original file line numberDiff line numberDiff line change
@@ -8099,6 +8099,69 @@ def test_as_matrix_lcd(self):
80998099
values = self.mixed_int.as_matrix(['C'])
81008100
self.assert_(values.dtype == np.uint8)
81018101

8102+
def test_constructor_with_convert(self):
8103+
# this is actually mostly a test of lib.maybe_convert_objects
8104+
# #2845
8105+
df = DataFrame({'A' : [2**63-1] })
8106+
result = df['A']
8107+
expected = Series(np.asarray([2**63-1], np.int64))
8108+
assert_series_equal(result, expected)
8109+
8110+
df = DataFrame({'A' : [2**63] })
8111+
result = df['A']
8112+
expected = Series(np.asarray([2**63], np.object_))
8113+
assert_series_equal(result, expected)
8114+
8115+
df = DataFrame({'A' : [datetime(2005, 1, 1), True] })
8116+
result = df['A']
8117+
expected = Series(np.asarray([datetime(2005, 1, 1), True], np.object_))
8118+
assert_series_equal(result, expected)
8119+
8120+
df = DataFrame({'A' : [None, 1] })
8121+
result = df['A']
8122+
expected = Series(np.asarray([np.nan, 1], np.float_))
8123+
assert_series_equal(result, expected)
8124+
8125+
df = DataFrame({'A' : [1.0, 2] })
8126+
result = df['A']
8127+
expected = Series(np.asarray([1.0, 2], np.float_))
8128+
assert_series_equal(result, expected)
8129+
8130+
df = DataFrame({'A' : [1.0+2.0j, 3] })
8131+
result = df['A']
8132+
expected = Series(np.asarray([1.0+2.0j, 3], np.complex_))
8133+
assert_series_equal(result, expected)
8134+
8135+
df = DataFrame({'A' : [1.0+2.0j, 3.0] })
8136+
result = df['A']
8137+
expected = Series(np.asarray([1.0+2.0j, 3.0], np.complex_))
8138+
assert_series_equal(result, expected)
8139+
8140+
df = DataFrame({'A' : [1.0+2.0j, True] })
8141+
result = df['A']
8142+
expected = Series(np.asarray([1.0+2.0j, True], np.object_))
8143+
assert_series_equal(result, expected)
8144+
8145+
df = DataFrame({'A' : [1.0, None] })
8146+
result = df['A']
8147+
expected = Series(np.asarray([1.0, np.nan], np.float_))
8148+
assert_series_equal(result, expected)
8149+
8150+
df = DataFrame({'A' : [1.0+2.0j, None] })
8151+
result = df['A']
8152+
expected = Series(np.asarray([1.0+2.0j, np.nan], np.complex_))
8153+
assert_series_equal(result, expected)
8154+
8155+
df = DataFrame({'A' : [2.0, 1, True, None] })
8156+
result = df['A']
8157+
expected = Series(np.asarray([2.0, 1, True, None], np.object_))
8158+
assert_series_equal(result, expected)
8159+
8160+
df = DataFrame({'A' : [2.0, 1, datetime(2006, 1, 1), None] })
8161+
result = df['A']
8162+
expected = Series(np.asarray([2.0, 1, datetime(2006, 1, 1),
8163+
None], np.object_))
8164+
assert_series_equal(result, expected)
81028165

81038166
def test_constructor_with_datetimes(self):
81048167
intname = np.dtype(np.int_).name

pandas/tests/test_index.py

+11
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,17 @@ def test_format(self):
348348
expected = [str(index[0])]
349349
self.assertEquals(formatted, expected)
350350

351+
# 2845
352+
index = Index([1, 2.0+3.0j, np.nan])
353+
formatted = index.format()
354+
expected = [str(index[0]), str(index[1]), str(index[2])]
355+
self.assertEquals(formatted, expected)
356+
357+
index = Index([1, 2.0+3.0j, None])
358+
formatted = index.format()
359+
expected = [str(index[0]), str(index[1]), '']
360+
self.assertEquals(formatted, expected)
361+
351362
self.strIndex[:0].format()
352363

353364
def test_format_with_name_time_info(self):

0 commit comments

Comments
 (0)