@@ -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