# Controller Tests ![Controller States](../controller_states.svg) The aim of these tests it to make sure that all transitions pictured in graph above work as expected. Unless noted otherwise, these procedures assume a test system with a single battery and no load (consumers) or PV (producers) connected. 1. [Charge to min SOC -> Forced EOC](Charge to min SOC -> Forced EOC.md) 2. [Charge to min SOC -> Hold min SOC](Charge to min SOC -> Hold min SOC.md) 3. [Charge to min SOC -> Optimize Self-Consumption](Charge to min SOC -> Optimize Self-Consumption.md) 4. [Optimize Self-Consumption -> Forced EOC](Optimize Self-Consumption -> Forced EOC.md) 5. [Optimize Self-Consumption -> Hold min SOC](Optimize Self-Consumption -> Hold min SOC.md) 6. [Hold min SOC -> Forced EOC](Hold min SOC -> Forced EOC.md) 7. [Forced EOC -> Optimize Self-Consumption (charging)](Forced EOC -> Optimize Self-Consumption \(charging\).md) 8. [Forced EOC -> Optimize Self-Consumption (discharging)](Forced EOC -> Optimize Self-Consumption \(discharging\).md) 9. [Hold min SOC -> Optimize Self-Consumption](Hold min SOC -> Optimize Self-Consumption.md) 10. [Forced EOC -> Bridge Grid Blackout -> Forced EOC](Forced EOC -> Bridge Grid Blackout -> Forced EOC.md) 11. [Optimize Self-Consumption -> Bridge Grid Blackout -> Charge to min SOC -> Hold min SOC](Optimize Self-Consumption -> Bridge Grid Blackout -> Charge to min SOC -> Hold min SOC.md) 12. [Disconnect Grid Meter](Disconnect Grid Meter.md) 13. [Optimize Self-Consumption -> Limit Discharge Power](Optimize Self-Consumption -> Limit Discharge Power.md) 14. [Limit Charge Power -> Optimize Self-Consumption](Limit Charge Power -> Optimize Self-Consumption.md)