Skip to content

Commit 051afa6

Browse files
committed
TST: Add more sparse arithmetics tests
1 parent 8a9e643 commit 051afa6

File tree

1 file changed

+61
-18
lines changed

1 file changed

+61
-18
lines changed

pandas/sparse/tests/test_array.py

+61-18
Original file line numberDiff line numberDiff line change
@@ -505,37 +505,80 @@ def _check_numeric_ops(self, a, b, a_dense, b_dense):
505505
def test_float_scalar(self):
506506
values = np.array([np.nan, 1, 2, 0, np.nan, 0, 1, 2, 1, np.nan])
507507

508-
a = SparseArray(values)
509-
self._check_numeric_ops(a, 1, values, 1)
510-
self._check_numeric_ops(a, 0, values, 0)
508+
for kind in ['integer', 'block']:
509+
a = SparseArray(values, kind=kind)
510+
self._check_numeric_ops(a, 1, values, 1)
511+
self._check_numeric_ops(a, 0, values, 0)
512+
self._check_numeric_ops(a, 3, values, 3)
513+
514+
a = SparseArray(values, kind=kind, fill_value=0)
515+
self._check_numeric_ops(a, 1, values, 1)
516+
self._check_numeric_ops(a, 0, values, 0)
517+
self._check_numeric_ops(a, 3, values, 3)
518+
519+
a = SparseArray(values, kind=kind, fill_value=2)
520+
self._check_numeric_ops(a, 1, values, 1)
521+
self._check_numeric_ops(a, 0, values, 0)
522+
self._check_numeric_ops(a, 3, values, 3)
523+
524+
def test_float_same_index(self):
525+
# when sp_index are the same
526+
for kind in ['integer', 'block']:
527+
values = np.array([np.nan, 1, 2, 0, np.nan, 0, 1, 2, 1, np.nan])
528+
rvalues = np.array([np.nan, 2, 3, 4, np.nan, 0, 1, 3, 2, np.nan])
529+
530+
a = SparseArray(values, kind=kind)
531+
b = SparseArray(rvalues, kind=kind)
532+
self._check_numeric_ops(a, b, values, rvalues)
533+
534+
values = np.array([0., 1., 2., 6., 0., 0., 1., 2., 1., 0.])
535+
rvalues = np.array([0., 2., 3., 4., 0., 0., 1., 3., 2., 0.])
536+
537+
a = SparseArray(values, kind=kind, fill_value=0)
538+
b = SparseArray(rvalues, kind=kind, fill_value=0)
539+
self._check_numeric_ops(a, b, values, rvalues)
511540

512-
a = SparseArray(values, fill_value=0)
513-
self._check_numeric_ops(a, 1, values, 1)
514-
self._check_numeric_ops(a, 0, values, 0)
541+
def test_float_array(self):
542+
values = np.array([np.nan, 1, 2, 0, np.nan, 0, 1, 2, 1, np.nan])
543+
rvalues = np.array([2, np.nan, 2, 3, np.nan, 0, 1, 5, 2, np.nan])
515544

516-
a = SparseArray(values, fill_value=2)
517-
self._check_numeric_ops(a, 1, values, 1)
518-
self._check_numeric_ops(a, 0, values, 0)
545+
for kind in ['integer', 'block']:
546+
a = SparseArray(values, kind=kind)
547+
b = SparseArray(rvalues, kind=kind)
548+
self._check_numeric_ops(a, b, values, rvalues)
549+
self._check_numeric_ops(a, b * 0, values, rvalues * 0)
519550

520-
def test_float_array(self):
551+
a = SparseArray(values, kind=kind, fill_value=0)
552+
b = SparseArray(rvalues, kind=kind)
553+
self._check_numeric_ops(a, b, values, rvalues)
554+
555+
a = SparseArray(values, kind=kind, fill_value=0)
556+
b = SparseArray(rvalues, kind=kind, fill_value=0)
557+
self._check_numeric_ops(a, b, values, rvalues)
558+
559+
a = SparseArray(values, kind=kind, fill_value=1)
560+
b = SparseArray(rvalues, kind=kind, fill_value=2)
561+
self._check_numeric_ops(a, b, values, rvalues)
562+
563+
def test_float_array_different_kind(self):
521564
values = np.array([np.nan, 1, 2, 0, np.nan, 0, 1, 2, 1, np.nan])
522565
rvalues = np.array([2, np.nan, 2, 3, np.nan, 0, 1, 5, 2, np.nan])
523566

524-
a = SparseArray(values)
525-
b = SparseArray(rvalues)
567+
a = SparseArray(values, kind='integer')
568+
b = SparseArray(rvalues, kind='block')
526569
self._check_numeric_ops(a, b, values, rvalues)
527570
self._check_numeric_ops(a, b * 0, values, rvalues * 0)
528571

529-
a = SparseArray(values, fill_value=0)
530-
b = SparseArray(rvalues)
572+
a = SparseArray(values, kind='integer', fill_value=0)
573+
b = SparseArray(rvalues, kind='block')
531574
self._check_numeric_ops(a, b, values, rvalues)
532575

533-
a = SparseArray(values, fill_value=0)
534-
b = SparseArray(rvalues, fill_value=0)
576+
a = SparseArray(values, kind='integer', fill_value=0)
577+
b = SparseArray(rvalues, kind='block', fill_value=0)
535578
self._check_numeric_ops(a, b, values, rvalues)
536579

537-
a = SparseArray(values, fill_value=1)
538-
b = SparseArray(rvalues, fill_value=2)
580+
a = SparseArray(values, kind='integer', fill_value=1)
581+
b = SparseArray(rvalues, kind='block', fill_value=2)
539582
self._check_numeric_ops(a, b, values, rvalues)
540583

541584

0 commit comments

Comments
 (0)