Example #1
0
    def test_surplus_tax(self):
        """Practice problem 2.3
        """
        sp.var('x p W')
        benefit = et.benefit_from_demand(x, p, 100 - p)
        sp.plot(benefit, (x, 0, 100))

        cons = Consumer(x, p, benefit)
        cons_sub = Consumer(x, p, benefit, other=W - x*p/2)
        self.assertEqual(cons_sub.surplus().subs(p, 50) - cons.surplus().subs(p, 50),
                         1562.5)
Example #2
0
 def test_surplus(self):
     """Practice problem 2.2
     """
     sp.var('A x p')
     cons = Consumer(x, p, 2*A * sp.sqrt(x))
     self.assertEqual(sp.piecewise_fold(cons.surplus()),
                      sp.Piecewise((0, p < 0),
                                   (-A**2/p + 2*A*sp.sqrt(A**2/p**2), True)))
     self.assertEqual(sp.piecewise_fold(cons.surplus_at(p*2)),
                      sp.Piecewise((0, 2*p < 0),
                                   (-A**2/(2*p) + A*sp.sqrt(A**2/p**2), True)))
Example #3
0
 def test_surplus(self):
     """Practice problem 2.2
     """
     sp.var('A x p')
     cons = Consumer(x, p, 2 * A * sp.sqrt(x))
     self.assertEqual(
         sp.piecewise_fold(cons.surplus()),
         sp.Piecewise((0, p < 0),
                      (-A**2 / p + 2 * A * sp.sqrt(A**2 / p**2), True)))
     self.assertEqual(
         sp.piecewise_fold(cons.surplus_at(p * 2)),
         sp.Piecewise((0, 2 * p < 0),
                      (-A**2 / (2 * p) + A * sp.sqrt(A**2 / p**2), True)))
Example #4
0
    def test_surplus_tax(self):
        """Practice problem 2.3
        """
        sp.var('x p W')
        benefit = et.benefit_from_demand(x, p, 100 - p)
        sp.plot(benefit, (x, 0, 100))

        cons = Consumer(x, p, benefit)
        cons_sub = Consumer(x, p, benefit, other=W - x * p / 2)
        self.assertEqual(
            cons_sub.surplus().subs(p, 50) - cons.surplus().subs(p, 50),
            1562.5)