Added negative tests, tests for the input language and adjusted the
simulator to throw exceptions for invalid and infeasible input