Update substate properly and test that shading actually works when the bound is not an x-intercept

Test plan:
./app.py
http://localhost:5001/#37

Auditors: jack