@@ -759,6 +759,98 @@ def test_expanding_corr_pairwise(self):
759
759
for i in result .items :
760
760
assert_almost_equal (result [i ], rolling_result [i ])
761
761
762
+ def test_expanding_cov_diff_index (self ):
763
+ # GH 7512
764
+ s1 = Series ([1 , 2 , 3 ], index = [0 , 1 , 2 ])
765
+ s2 = Series ([1 , 3 ], index = [0 , 2 ])
766
+ result = mom .expanding_cov (s1 , s2 )
767
+ expected = Series ([None , None , 2.0 ])
768
+ assert_series_equal (result , expected )
769
+
770
+ s2a = Series ([1 , None , 3 ], index = [0 , 1 , 2 ])
771
+ result = mom .expanding_cov (s1 , s2a )
772
+ assert_series_equal (result , expected )
773
+
774
+ s1 = Series ([7 , 8 , 10 ], index = [0 , 1 , 3 ])
775
+ s2 = Series ([7 , 9 , 10 ], index = [0 , 2 , 3 ])
776
+ result = mom .expanding_cov (s1 , s2 )
777
+ expected = Series ([None , None , None , 4.5 ])
778
+ assert_series_equal (result , expected )
779
+
780
+ def test_expanding_corr_diff_index (self ):
781
+ # GH 7512
782
+ s1 = Series ([1 , 2 , 3 ], index = [0 , 1 , 2 ])
783
+ s2 = Series ([1 , 3 ], index = [0 , 2 ])
784
+ result = mom .expanding_corr (s1 , s2 )
785
+ expected = Series ([None , None , 1.0 ])
786
+ assert_series_equal (result , expected )
787
+
788
+ s2a = Series ([1 , None , 3 ], index = [0 , 1 , 2 ])
789
+ result = mom .expanding_corr (s1 , s2a )
790
+ assert_series_equal (result , expected )
791
+
792
+ s1 = Series ([7 , 8 , 10 ], index = [0 , 1 , 3 ])
793
+ s2 = Series ([7 , 9 , 10 ], index = [0 , 2 , 3 ])
794
+ result = mom .expanding_corr (s1 , s2 )
795
+ expected = Series ([None , None , None , 1. ])
796
+ assert_series_equal (result , expected )
797
+
798
+ def test_rolling_cov_diff_length (self ):
799
+ # GH 7512
800
+ s1 = Series ([1 , 2 , 3 ], index = [0 , 1 , 2 ])
801
+ s2 = Series ([1 , 3 ], index = [0 , 2 ])
802
+ result = mom .rolling_cov (s1 , s2 , window = 3 , min_periods = 2 )
803
+ expected = Series ([None , None , 2.0 ])
804
+ assert_series_equal (result , expected )
805
+
806
+ s2a = Series ([1 , None , 3 ], index = [0 , 1 , 2 ])
807
+ result = mom .rolling_cov (s1 , s2a , window = 3 , min_periods = 2 )
808
+ assert_series_equal (result , expected )
809
+
810
+ def test_rolling_corr_diff_length (self ):
811
+ # GH 7512
812
+ s1 = Series ([1 , 2 , 3 ], index = [0 , 1 , 2 ])
813
+ s2 = Series ([1 , 3 ], index = [0 , 2 ])
814
+ result = mom .rolling_corr (s1 , s2 , window = 3 , min_periods = 2 )
815
+ expected = Series ([None , None , 1.0 ])
816
+ assert_series_equal (result , expected )
817
+
818
+ s2a = Series ([1 , None , 3 ], index = [0 , 1 , 2 ])
819
+ result = mom .rolling_corr (s1 , s2a , window = 3 , min_periods = 2 )
820
+ assert_series_equal (result , expected )
821
+
822
+ def test_expanding_cov_pairwise_diff_length (self ):
823
+ # GH 7512
824
+ df1 = DataFrame ([[1 ,5 ], [3 , 2 ], [3 ,9 ]], columns = ['A' ,'B' ])
825
+ df1a = DataFrame ([[1 ,5 ], [3 ,9 ]], index = [0 ,2 ], columns = ['A' ,'B' ])
826
+ df2 = DataFrame ([[5 ,6 ], [None ,None ], [2 ,1 ]], columns = ['X' ,'Y' ])
827
+ df2a = DataFrame ([[5 ,6 ], [2 ,1 ]], index = [0 ,2 ], columns = ['X' ,'Y' ])
828
+ result1 = mom .expanding_cov (df1 , df2 , pairwise = True )[2 ]
829
+ result2 = mom .expanding_cov (df1 , df2a , pairwise = True )[2 ]
830
+ result3 = mom .expanding_cov (df1a , df2 , pairwise = True )[2 ]
831
+ result4 = mom .expanding_cov (df1a , df2a , pairwise = True )[2 ]
832
+ expected = DataFrame ([[- 3. , - 5. ], [- 6. , - 10. ]], index = ['A' ,'B' ], columns = ['X' ,'Y' ])
833
+ assert_frame_equal (result1 , expected )
834
+ assert_frame_equal (result2 , expected )
835
+ assert_frame_equal (result3 , expected )
836
+ assert_frame_equal (result4 , expected )
837
+
838
+ def test_expanding_corr_pairwise_diff_length (self ):
839
+ # GH 7512
840
+ df1 = DataFrame ([[1 ,2 ], [3 , 2 ], [3 ,4 ]], columns = ['A' ,'B' ])
841
+ df1a = DataFrame ([[1 ,2 ], [3 ,4 ]], index = [0 ,2 ], columns = ['A' ,'B' ])
842
+ df2 = DataFrame ([[5 ,6 ], [None ,None ], [2 ,1 ]], columns = ['X' ,'Y' ])
843
+ df2a = DataFrame ([[5 ,6 ], [2 ,1 ]], index = [0 ,2 ], columns = ['X' ,'Y' ])
844
+ result1 = mom .expanding_corr (df1 , df2 , pairwise = True )[2 ]
845
+ result2 = mom .expanding_corr (df1 , df2a , pairwise = True )[2 ]
846
+ result3 = mom .expanding_corr (df1a , df2 , pairwise = True )[2 ]
847
+ result4 = mom .expanding_corr (df1a , df2a , pairwise = True )[2 ]
848
+ expected = DataFrame ([[- 1.0 , - 1.0 ], [- 1.0 , - 1.0 ]], index = ['A' ,'B' ], columns = ['X' ,'Y' ])
849
+ assert_frame_equal (result1 , expected )
850
+ assert_frame_equal (result2 , expected )
851
+ assert_frame_equal (result3 , expected )
852
+ assert_frame_equal (result4 , expected )
853
+
762
854
def test_rolling_skew_edge_cases (self ):
763
855
764
856
all_nan = Series ([np .NaN ] * 5 )
0 commit comments