123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- import numpy as np
- import pytest
- from pandas import Series, SparseSeries
- from pandas.util import testing as tm
- pytestmark = pytest.mark.skip("Wrong SparseBlock initialization (GH 17386)")
- @pytest.mark.parametrize('data', [
- [1, 1, 2, 2, 3, 3, 4, 4, 0, 0],
- [1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, np.nan, np.nan],
- [
- 1.0, 1.0 + 1.0j,
- 2.0 + 2.0j, 2.0,
- 3.0, 3.0 + 3.0j,
- 4.0 + 4.0j, 4.0,
- np.nan, np.nan
- ]
- ])
- @pytest.mark.xfail(reason='Wrong SparseBlock initialization (GH#17386)')
- def test_where_with_numeric_data(data):
- # GH 17386
- lower_bound = 1.5
- sparse = SparseSeries(data)
- result = sparse.where(sparse > lower_bound)
- dense = Series(data)
- dense_expected = dense.where(dense > lower_bound)
- sparse_expected = SparseSeries(dense_expected)
- tm.assert_series_equal(result, dense_expected)
- tm.assert_sp_series_equal(result, sparse_expected)
- @pytest.mark.parametrize('data', [
- [1, 1, 2, 2, 3, 3, 4, 4, 0, 0],
- [1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, np.nan, np.nan],
- [
- 1.0, 1.0 + 1.0j,
- 2.0 + 2.0j, 2.0,
- 3.0, 3.0 + 3.0j,
- 4.0 + 4.0j, 4.0,
- np.nan, np.nan
- ]
- ])
- @pytest.mark.parametrize('other', [
- True,
- -100,
- 0.1,
- 100.0 + 100.0j
- ])
- @pytest.mark.skip(reason='Wrong SparseBlock initialization '
- '(Segfault) '
- '(GH 17386)')
- def test_where_with_numeric_data_and_other(data, other):
- # GH 17386
- lower_bound = 1.5
- sparse = SparseSeries(data)
- result = sparse.where(sparse > lower_bound, other)
- dense = Series(data)
- dense_expected = dense.where(dense > lower_bound, other)
- sparse_expected = SparseSeries(dense_expected, fill_value=other)
- tm.assert_series_equal(result, dense_expected)
- tm.assert_sp_series_equal(result, sparse_expected)
- @pytest.mark.xfail(reason='Wrong SparseBlock initialization (GH#17386)')
- def test_where_with_bool_data():
- # GH 17386
- data = [False, False, True, True, False, False]
- cond = True
- sparse = SparseSeries(data)
- result = sparse.where(sparse == cond)
- dense = Series(data)
- dense_expected = dense.where(dense == cond)
- sparse_expected = SparseSeries(dense_expected)
- tm.assert_series_equal(result, dense_expected)
- tm.assert_sp_series_equal(result, sparse_expected)
- @pytest.mark.parametrize('other', [
- True,
- 0,
- 0.1,
- 100.0 + 100.0j
- ])
- @pytest.mark.skip(reason='Wrong SparseBlock initialization '
- '(Segfault) '
- '(GH 17386)')
- def test_where_with_bool_data_and_other(other):
- # GH 17386
- data = [False, False, True, True, False, False]
- cond = True
- sparse = SparseSeries(data)
- result = sparse.where(sparse == cond, other)
- dense = Series(data)
- dense_expected = dense.where(dense == cond, other)
- sparse_expected = SparseSeries(dense_expected, fill_value=other)
- tm.assert_series_equal(result, dense_expected)
- tm.assert_sp_series_equal(result, sparse_expected)
|