Exemple #1
0
    def test_calc_pe_ratio(self):
        historical_data = {"Adj Close": [3.0, 3.5, 4.2], "Close": [3.0, 5.0, 4.2]}
        historical_index = pd.to_datetime(["2012-01-01", "2012-01-03", "2012-01-05"])

        income_statement_data = {"EPS (Basic)": [1.2, 2.5, 3.5], "EPS (Diluted)": [6.0, 4.0, 8.0]}
        income_statement_index = pd.to_datetime(["2012-01-01", "2012-01-02", "2012-01-03"])

        dated_metric = DatedMetric(
            pd.Timestamp("2012-01-03"),
            historical=pd.DataFrame(historical_data, index=historical_index),
            income_statement=pd.DataFrame(income_statement_data, index=income_statement_index),
            financial_report_preparation_lag=np.timedelta64(1, 'D')
        )

        pe_ratios1 = dated_metric.calc_pe_ratio()
        pe_ratios2 = dated_metric.calc_pe_ratio("Close", "EPS (Diluted)")

        # because of 1 day financial_report_preparation_lag
        self.assertEqual(pe_ratios1, 1.4)
        self.assertEqual(pe_ratios2, 1.25)