@@ -759,6 +759,98 @@ def test_expanding_corr_pairwise(self):
759759 for i in result .items :
760760 assert_almost_equal (result [i ], rolling_result [i ])
761761
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+
762854 def test_rolling_skew_edge_cases (self ):
763855
764856 all_nan = Series ([np .NaN ] * 5 )
0 commit comments