
public class EvalSimpleTests {
	
	public static void main(String[] args) {
		byte xVarByte = -5;
		char xVarChar = (char)-5;
		short xVarShort = -5;
		int xVarInt = -5;
		long xVarLong = -5;
		float xVarFloat = (float)-5.3;
		double xVarDouble = -5.3;
		String xVarString = "minus five";
		boolean xVarBoolean = true;
//		Object xVarNull = null;

		byte yVarByte = 7;
		char yVarChar = 7;
		short yVarShort = 7;
		int yVarInt = 7;
		long yVarLong = 7;
		float yVarFloat = (float)6.9;
		double yVarDouble = 6.9;
		String yVarString = "seven";
		boolean yVarBoolean = false;
//		Object yVarNull = null;
		
		System.out.println("tests ...");
	}//3+3

}
