@@ -505,37 +505,80 @@ def _check_numeric_ops(self, a, b, a_dense, b_dense):
505
505
def test_float_scalar (self ):
506
506
values = np .array ([np .nan , 1 , 2 , 0 , np .nan , 0 , 1 , 2 , 1 , np .nan ])
507
507
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 )
511
540
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 ] )
515
544
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 )
519
550
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 ):
521
564
values = np .array ([np .nan , 1 , 2 , 0 , np .nan , 0 , 1 , 2 , 1 , np .nan ])
522
565
rvalues = np .array ([2 , np .nan , 2 , 3 , np .nan , 0 , 1 , 5 , 2 , np .nan ])
523
566
524
- a = SparseArray (values )
525
- b = SparseArray (rvalues )
567
+ a = SparseArray (values , kind = 'integer' )
568
+ b = SparseArray (rvalues , kind = 'block' )
526
569
self ._check_numeric_ops (a , b , values , rvalues )
527
570
self ._check_numeric_ops (a , b * 0 , values , rvalues * 0 )
528
571
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' )
531
574
self ._check_numeric_ops (a , b , values , rvalues )
532
575
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 )
535
578
self ._check_numeric_ops (a , b , values , rvalues )
536
579
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 )
539
582
self ._check_numeric_ops (a , b , values , rvalues )
540
583
541
584
0 commit comments