@@ -905,3 +905,62 @@ def test_factorize_values_outside_bins():
905905 actual = vals [0 ]
906906 expected = np .array ([[- 1 , - 1 ], [- 1 , 0 ], [6 , 12 ], [18 , 24 ], [- 1 , - 1 ]])
907907 assert_equal (expected , actual )
908+
909+
910+ def test_multiple_groupers ():
911+ actual , * _ = groupby_reduce (
912+ np .ones ((5 , 2 )),
913+ np .arange (10 ).reshape (5 , 2 ),
914+ np .arange (10 ).reshape (5 , 2 ),
915+ axis = (0 , 1 ),
916+ expected_groups = (
917+ pd .IntervalIndex .from_breaks (np .arange (2 , 8 , 1 )),
918+ pd .IntervalIndex .from_breaks (np .arange (2 , 8 , 1 )),
919+ ),
920+ reindex = True ,
921+ func = "count" ,
922+ )
923+ expected = np .eye (5 , 5 )
924+ assert_equal (expected , actual )
925+
926+
927+ def test_factorize_reindex_sorting_strings ():
928+ kwargs = dict (
929+ by = (np .array (["El-Nino" , "La-Nina" , "boo" , "Neutral" ]),),
930+ axis = - 1 ,
931+ expected_groups = (np .array (["El-Nino" , "Neutral" , "foo" , "La-Nina" ]),),
932+ )
933+
934+ expected = factorize_ (** kwargs , reindex = True , sort = True )[0 ]
935+ assert_equal (expected , [0 , 1 , 4 , 2 ])
936+
937+ expected = factorize_ (** kwargs , reindex = True , sort = False )[0 ]
938+ assert_equal (expected , [0 , 3 , 4 , 1 ])
939+
940+ expected = factorize_ (** kwargs , reindex = False , sort = False )[0 ]
941+ assert_equal (expected , [0 , 1 , 2 , 3 ])
942+
943+ expected = factorize_ (** kwargs , reindex = False , sort = True )[0 ]
944+ assert_equal (expected , [0 , 1 , 3 , 2 ])
945+
946+
947+ def test_factorize_reindex_sorting_ints ():
948+ kwargs = dict (
949+ by = (np .array ([- 10 , 1 , 10 , 2 , 3 , 5 ]),),
950+ axis = - 1 ,
951+ expected_groups = (np .array ([0 , 1 , 2 , 3 , 4 , 5 ]),),
952+ )
953+
954+ expected = factorize_ (** kwargs , reindex = True , sort = True )[0 ]
955+ assert_equal (expected , [6 , 1 , 6 , 2 , 3 , 5 ])
956+
957+ expected = factorize_ (** kwargs , reindex = True , sort = False )[0 ]
958+ assert_equal (expected , [6 , 1 , 6 , 2 , 3 , 5 ])
959+
960+ kwargs ["expected_groups" ] = (np .arange (5 , - 1 , - 1 ),)
961+
962+ expected = factorize_ (** kwargs , reindex = True , sort = True )[0 ]
963+ assert_equal (expected , [6 , 1 , 6 , 2 , 3 , 5 ])
964+
965+ expected = factorize_ (** kwargs , reindex = True , sort = False )[0 ]
966+ assert_equal (expected , [6 , 4 , 6 , 3 , 2 , 0 ])
0 commit comments