@@ -905,3 +905,62 @@ def test_factorize_values_outside_bins():
905
905
actual = vals [0 ]
906
906
expected = np .array ([[- 1 , - 1 ], [- 1 , 0 ], [6 , 12 ], [18 , 24 ], [- 1 , - 1 ]])
907
907
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