|
7 | 7 | import numpy as np
|
8 | 8 |
|
9 | 9 | from pandas import _np_version_under1p8
|
10 |
| -from pandas.sparse.api import SparseArray |
| 10 | +from pandas.sparse.api import SparseArray, SparseSeries |
11 | 11 | from pandas._sparse import IntIndex
|
12 | 12 | from pandas.util.testing import assert_almost_equal, assertRaisesRegexp
|
13 | 13 | import pandas.util.testing as tm
|
@@ -102,6 +102,32 @@ def test_constructor_spindex_dtype(self):
|
102 | 102 | self.assertEqual(arr.dtype, np.int64)
|
103 | 103 | self.assertEqual(arr.fill_value, 0)
|
104 | 104 |
|
| 105 | + def test_sparseseries_roundtrip(self): |
| 106 | + # GH 13999 |
| 107 | + for kind in ['integer', 'block']: |
| 108 | + for fill in [1, np.nan, 0]: |
| 109 | + arr = SparseArray([np.nan, 1, np.nan, 2, 3], kind=kind, |
| 110 | + fill_value=fill) |
| 111 | + res = SparseArray(SparseSeries(arr)) |
| 112 | + tm.assert_sp_array_equal(arr, res) |
| 113 | + |
| 114 | + arr = SparseArray([0, 0, 0, 1, 1, 2], dtype=np.int64, |
| 115 | + kind=kind, fill_value=fill) |
| 116 | + res = SparseArray(SparseSeries(arr), dtype=np.int64) |
| 117 | + tm.assert_sp_array_equal(arr, res) |
| 118 | + |
| 119 | + res = SparseArray(SparseSeries(arr)) |
| 120 | + tm.assert_sp_array_equal(arr, res) |
| 121 | + |
| 122 | + for fill in [True, False, np.nan]: |
| 123 | + arr = SparseArray([True, False, True, True], dtype=np.bool, |
| 124 | + kind=kind, fill_value=fill) |
| 125 | + res = SparseArray(SparseSeries(arr)) |
| 126 | + tm.assert_sp_array_equal(arr, res) |
| 127 | + |
| 128 | + res = SparseArray(SparseSeries(arr)) |
| 129 | + tm.assert_sp_array_equal(arr, res) |
| 130 | + |
105 | 131 | def test_get_item(self):
|
106 | 132 |
|
107 | 133 | self.assertTrue(np.isnan(self.arr[1]))
|
|
0 commit comments