/* Provides methods to evaluate a variety of kinds of assertions. B. Sanders, July 1997. If boolean expression is false, program will throw an AssertionException, aborting in the default case. The versions with string parameters will print the string when aborting program. If the boolean expression is true, program execution continues. To use this class: 1. Save this source in a file called Assertions.java in your working directory 2. Compile (javac Assertsion.java) 3. Your program may then contain commands such as Assertions.assert(x>0); Assertions.inputCheck(-100 <= x <= 100); etc. */ class Assertions { public static void assert(boolean Q) { assert(Q,"Assertion Error"); } public static void assert(boolean Q, String s) { if (!Q) { throw new AssertionException(s); } else return; } public static void inputCheck(boolean Q) { assert(Q,"Input Error"); } public static void inputCheck(boolean Q, String s) { assert(Q,"Input Error: " + s); } public static void precondition(boolean Q) { assert(Q, "Precondition violated"); } public static void precondition(boolean Q, String s) { assert(Q, "Precondition violated: " + s); } public static void main(String[] args) { System.out.print("Enter true or false: "); System.out.flush(); boolean b = Input.readBoolean(); assert(b); System.out.print("Enter true or false, and a word: "); System.out.flush(); b = Input.readBoolean(); String s = Input.readString(); assert(b,s); } } class AssertionException extends RuntimeException { AssertionException(String s) { super(s); } }