@@ -583,7 +583,9 @@ def test_union_noncomparable(self):
583
583
expected = Index (np .concatenate ((other , self .index )))
584
584
tm .assert_index_equal (result , expected )
585
585
586
- def test_union (self ):
586
+ @pytest .fixture
587
+ def union_inputs (self ):
588
+ """Inputs for RangeIndex.union tests"""
587
589
RI = RangeIndex
588
590
I64 = Int64Index
589
591
@@ -610,67 +612,73 @@ def test_union(self):
610
612
(RI (0 , 10 , 1 ), I64 ([])),
611
613
(RI (0 ), I64 ([1 , 5 , 6 ]))]
612
614
613
- expected_sorted = [RI (0 , 10 , 1 ),
614
- RI (0 , 20 , 1 ),
615
- RI (0 , 20 , 1 ),
616
- RI (0 , - 10 , - 1 ),
617
- RI (- 19 , 1 , 1 ),
618
- RI (0 , 10 , 1 ),
619
- RI (0 , 12 , 1 ),
620
- RI (- 2 , 24 , 2 ),
621
- RI (- 19 , 1 , 1 ),
622
- RI (0 , 100 , 5 ),
623
- RI (- 95 , 10 , 5 ),
624
- RI (- 11 , 2 , 1 ),
625
- RI (0 ),
626
- RI (0 , - 10 , - 2 ),
627
- RI (0 , 102 , 2 ),
628
- RI (- 100 , 4 , 2 ),
629
- RI (- 99 , 1 , 1 ),
630
- RI (0 , 6 , 5 ),
631
- RI (- 5 , 10 , 5 ),
632
- I64 ([0 , 1 , 2 , 4 ]),
633
- RI (0 , 10 , 1 ),
634
- I64 ([1 , 5 , 6 ])]
635
-
636
- for ((idx1 , idx2 ), expected ) in zip (inputs , expected_sorted ):
615
+ return inputs
616
+
617
+ def test_union_sorted (self , union_inputs ):
618
+ RI = RangeIndex
619
+ I64 = Int64Index
620
+
621
+ expected = [RI (0 , 10 , 1 ),
622
+ RI (0 , 20 , 1 ),
623
+ RI (0 , 20 , 1 ),
624
+ RI (0 , - 10 , - 1 ),
625
+ RI (- 19 , 1 , 1 ),
626
+ RI (0 , 10 , 1 ),
627
+ RI (0 , 12 , 1 ),
628
+ RI (- 2 , 24 , 2 ),
629
+ RI (- 19 , 1 , 1 ),
630
+ RI (0 , 100 , 5 ),
631
+ RI (- 95 , 10 , 5 ),
632
+ RI (- 11 , 2 , 1 ),
633
+ RI (0 ),
634
+ RI (0 , - 10 , - 2 ),
635
+ RI (0 , 102 , 2 ),
636
+ RI (- 100 , 4 , 2 ),
637
+ RI (- 99 , 1 , 1 ),
638
+ RI (0 , 6 , 5 ),
639
+ RI (- 5 , 10 , 5 ),
640
+ I64 ([0 , 1 , 2 , 4 ]),
641
+ RI (0 , 10 , 1 ),
642
+ I64 ([1 , 5 , 6 ])]
643
+
644
+ for ((idx1 , idx2 ), expected_sorted ) in zip (union_inputs , expected ):
637
645
res1 = idx1 .union (idx2 )
646
+ tm .assert_index_equal (res1 , expected_sorted , exact = True )
638
647
res2 = idx2 .union (idx1 )
639
648
res3 = idx1 ._int64index .union (idx2 )
640
- tm .assert_index_equal (res1 , expected , exact = True )
641
- tm .assert_index_equal (res2 , expected , exact = True )
642
- tm .assert_index_equal (res3 , expected )
643
-
644
- expected_notsorted = [RI (0 , 10 , 1 ),
645
- I64 (range (20 )),
646
- I64 (range (20 )),
647
- RI (0 , - 10 , - 1 ),
648
- I64 (range (0 , - 20 , - 1 )),
649
- I64 (list (range (0 , 10 , 2 )) +
650
- list (range (1 , 10 , 2 ))),
651
- I64 (list (range (0 , 11 , 2 )) +
652
- list (range (1 , 12 , 2 ))),
653
- I64 (list (range (0 , 21 , 4 )) +
654
- list (range (- 2 , 24 , 4 ))),
655
- I64 (list (range (0 , - 20 , - 2 )) +
656
- list (range (- 1 , - 21 , - 2 ))),
657
- I64 (range (0 , 100 , 5 )),
658
- I64 (list (range (0 , - 100 , - 5 )) + [5 ]),
659
- I64 (list (range (0 , - 11 , - 1 )) + [1 , - 11 ]),
660
- RI (0 ),
661
- RI (0 , - 10 , - 2 ),
662
- I64 (range (0 , 102 , 2 )),
663
- I64 (list (range (0 , - 100 , - 2 )) + [- 100 , 2 ]),
664
- I64 (list (range (0 , - 100 , - 1 ))),
665
- I64 ([0 , 5 ]),
666
- I64 ([0 , 5 , - 5 ]),
667
- I64 ([0 , 1 , 2 , 4 ]),
668
- RI (0 , 10 , 1 ),
669
- I64 ([1 , 5 , 6 ])]
670
-
671
- for ((idx1 , idx2 ), expected ) in zip (inputs , expected_notsorted ):
649
+ tm .assert_index_equal (res2 , expected_sorted , exact = True )
650
+ tm .assert_index_equal (res3 , expected_sorted )
651
+
652
+ def test_union_notsorted (self , union_inputs ):
653
+ RI = RangeIndex
654
+ I64 = Int64Index
655
+
656
+ expected = [RI (0 , 10 , 1 ),
657
+ I64 (range (20 )),
658
+ I64 (range (20 )),
659
+ RI (0 , - 10 , - 1 ),
660
+ I64 (range (0 , - 20 , - 1 )),
661
+ I64 (list (range (0 , 10 , 2 )) + list (range (1 , 10 , 2 ))),
662
+ I64 (list (range (0 , 11 , 2 )) + list (range (1 , 12 , 2 ))),
663
+ I64 (list (range (0 , 21 , 4 )) + list (range (- 2 , 24 , 4 ))),
664
+ I64 (list (range (0 , - 20 , - 2 )) + list (range (- 1 , - 21 , - 2 ))),
665
+ I64 (range (0 , 100 , 5 )),
666
+ I64 (list (range (0 , - 100 , - 5 )) + [5 ]),
667
+ I64 (list (range (0 , - 11 , - 1 )) + [1 , - 11 ]),
668
+ RI (0 ),
669
+ RI (0 , - 10 , - 2 ),
670
+ I64 (range (0 , 102 , 2 )),
671
+ I64 (list (range (0 , - 100 , - 2 )) + [- 100 , 2 ]),
672
+ I64 (list (range (0 , - 100 , - 1 ))),
673
+ I64 ([0 , 5 ]),
674
+ I64 ([0 , 5 , - 5 ]),
675
+ I64 ([0 , 1 , 2 , 4 ]),
676
+ RI (0 , 10 , 1 ),
677
+ I64 ([1 , 5 , 6 ])]
678
+
679
+ for ((idx1 , idx2 ), expected_notsorted ) in zip (union_inputs , expected ):
672
680
res1 = idx1 .union (idx2 , sort = False )
673
- tm .assert_index_equal (res1 , expected , exact = True )
681
+ tm .assert_index_equal (res1 , expected_notsorted , exact = True )
674
682
675
683
def test_nbytes (self ):
676
684
0 commit comments