@@ -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
0 commit comments