public class LameMath {
	public static int sum(int x, int y) {
		return x + y;
	}

	public static int diff(int x, int y) {
		return x - y;
	}

	public static int prod(int x, int y) {
		return x * y;
	}

	public static int quot(int x, int y) {
		return x / y;
	}

	public static boolean isEven(int x) {
		return x % 2 == 0;
	}

	public static boolean addWorks() {
		int expectedSum = 10;
		int actualSum = sum(2, 8);

		System.out.print("sum(2, 8): ");
		if (expectedSum != actualSum) {
			System.out.println("error: expected " + expectedSum + ", but found " + actualSum);
			return false;
		} else {
			System.out.println("ok");
		}

		expectedSum = -10;
		actualSum = sum(-2, -8);

		System.out.print("sum(-2, -8): ");
		if (expectedSum != actualSum) {
			System.out.println("error: expected " + expectedSum + ", but found " + actualSum);
			return false;
		} else {
			System.out.println("ok");
		}

		expectedSum = -6;
		actualSum = sum(2, -8);

		System.out.print("sum(2, -8): ");
		if (expectedSum != actualSum) {
			System.out.println("error: expected " + expectedSum + ", but found " + actualSum);
			return false;
		} else {
			System.out.println("ok");
		}
		return true;
	}

	public static boolean isEvenWorks() {
		boolean expected;
		boolean actual;
		int x;

		x = 2;
		expected = true;
		System.out.print("isEven(" + x + "): ");
		actual = isEven(x);
		if (expected != actual) {
			System.out.println("error: expected " + expected + ", but found " + actual);
			return false;
		} else {
			System.out.println("ok");
		}
		
		x = 42;
		expected = true;
		System.out.print("isEven(" + x + "): ");
		actual = isEven(x);
		if (expected != actual) {
			System.out.println("error: expected " + expected + ", but found " + actual);
			return false;
		} else {
			System.out.println("ok");
		}
		
		x = -16;
		expected = true;
		System.out.print("isEven(" + x + "): ");
		actual = isEven(x);
		if (expected != actual) {
			System.out.println("error: expected " + expected + ", but found " + actual);
			return false;
		} else {
			System.out.println("ok");
		}
		
		x = -1;
		expected = false;
		System.out.print("isEven(" + x + "): ");
		actual = isEven(x);
		if (expected != actual) {
			System.out.println("error: expected " + expected + ", but found " + actual);
			return false;
		} else {
			System.out.println("ok");
		}

		x = 11;
		expected = false;
		System.out.print("isEven(" + x + "): ");
		actual = isEven(x);
		if (expected != actual) {
			System.out.println("error: expected " + expected + ", but found " + actual);
			return false;
		} else {
			System.out.println("ok");
		}
		
		return true;
	}
	public static void main(String[] args) {
		System.out.println("testing add(): ");
		if (addWorks()) {
			System.out.println("add() ok");
		} else {
			System.out.println("add() failed");
		}

		System.out.println("testing isEven(): ");
		if (isEvenWorks()) {
			System.out.println("isEven() ok");
		} else {
			System.out.println("isEven() failed");
		}
	}
}
