Exemplo n.º 1
0
class testAggShockConsumerType(unittest.TestCase):

    def setUp(self):
        self.agent = AggShockConsumerType()
        self.agent.cycles = 0

        self.economy = EconomyExample = CobbDouglasEconomy(
            agents=[self.agent])

    def test_economy(self):
        # Make a Cobb-Douglas economy for the agents
        self.economy.makeAggShkHist()  # Simulate a history of aggregate shocks

        # Have the consumers inherit relevant objects from the economy
        self.agent.getEconomyData(self.economy)

        self.agent.solve()
if solve_agg_shocks_micro or solve_agg_shocks_market:
    # Make an aggregate shocks consumer type
    AggShockExample = AggShockConsumerType()
    AggShockExample.cycles = 0

    # Make a Cobb-Douglas economy for the agents
    EconomyExample = CobbDouglasEconomy(agents=[AggShockExample])
    EconomyExample.makeAggShkHist()  # Simulate a history of aggregate shocks

    # Have the consumers inherit relevant objects from the economy
    AggShockExample.getEconomyData(EconomyExample)

if solve_agg_shocks_micro:
    # Solve the microeconomic model for the aggregate shocks example type (and display results)
    t_start = process_time()
    AggShockExample.solve()
    t_end = process_time()
    print("Solving an aggregate shocks consumer took " +
          mystr(t_end - t_start) + " seconds.")
    print(
        "Consumption function at each aggregate market resources-to-labor ratio gridpoint:"
    )
    m_grid = np.linspace(0, 10, 200)
    AggShockExample.unpack('cFunc')
    for M in AggShockExample.Mgrid.tolist():
        mMin = AggShockExample.solution[0].mNrmMin(M)
        c_at_this_M = AggShockExample.cFunc[0](m_grid + mMin,
                                               M * np.ones_like(m_grid))
        plt.plot(m_grid + mMin, c_at_this_M)
    plt.ylim(0.0, None)
    plt.show()