Assume constraints on events, when they fail, should raise an exception that is caught by the tester and suppressed. The error should not propagate to the user. See here.
We should also move the checks to the runtime and not do them in the Machine class. This is related to #303.