// Path: Calculator/src/com/digipom/android/library/evaluator/NumberPrecision.java
// public enum NumberPrecision {
// 	FLOAT, DOUBLE, BIG_DECIMAL
// }
// 
// Path: Calculator/src/com/digipom/android/library/evaluator/exception/ParseException.java
// public class ParseException extends Exception {
// 	private static final long serialVersionUID = 1L;
// 	
// 	public ParseException() {
// 		super();
// 	}
// 
// 	public ParseException(String detailMessage, Throwable throwable) {
// 		super(detailMessage, throwable);
// 	}
// 
// 	public ParseException(String detailMessage) {
// 		super(detailMessage);
// 	}
// 
// 	public ParseException(Throwable throwable) {
// 		super(throwable);
// 	}
// }


import junit.framework.TestCase;
import com.digipom.android.library.evaluator.NumberPrecision;
import com.digipom.android.library.evaluator.exception.ParseException;
		assertEquals(lexer.nextToken(), PredefinedFunction.ABS);
		assertEquals(lexer.nextToken(), Parenthesis.OPEN);
		assertEquals(lexer.nextToken(), PredefinedFunction.COS);
		assertEquals(lexer.nextToken(), Parenthesis.OPEN);

		final Token x = lexer.nextToken();
		assertTrue(x instanceof Identifier);
		assertEquals(((Identifier) x).name, "x");

		assertEquals(lexer.nextToken(), Parenthesis.CLOSE);
		assertEquals(lexer.nextToken(), Operator.ADD);
		assertEquals(lexer.nextToken(), PredefinedFunction.COS);
		assertEquals(lexer.nextToken(), Parenthesis.OPEN);

		final Token y = lexer.nextToken();
		assertTrue(y instanceof Identifier);
		assertEquals(((Identifier) y).name, "y");

		assertEquals(lexer.nextToken(), Parenthesis.CLOSE);
		assertEquals(lexer.nextToken(), Parenthesis.CLOSE);
		assertEquals(lexer.nextToken(), Separator.COMMA);

		final Token literal = lexer.nextToken();
		assertTrue(literal instanceof NumberLiteral);
		assertEquals(((FloatNumberLiteral) literal).value, 0.5, 0.001);

		assertEquals(lexer.nextToken(), Parenthesis.CLOSE);
		assertEquals(lexer.nextToken(), Token.EOF);
	}

// Path: Calculator/src/com/digipom/android/library/evaluator/NumberPrecision.java
// public enum NumberPrecision {
// 	FLOAT, DOUBLE, BIG_DECIMAL
// }
// 
// Path: Calculator/src/com/digipom/android/library/evaluator/exception/ParseException.java
// public class ParseException extends Exception {
// 	private static final long serialVersionUID = 1L;
// 	
// 	public ParseException() {
// 		super();
// 	}
// 
// 	public ParseException(String detailMessage, Throwable throwable) {
// 		super(detailMessage, throwable);
// 	}
// 
// 	public ParseException(String detailMessage) {
// 		super(detailMessage);
// 	}
// 
// 	public ParseException(Throwable throwable) {
// 		super(throwable);
// 	}
// }


// Path: CalculatorTest/src/com/digipom/android/library/evaluator/lexer/TestLexer.java
import junit.framework.TestCase;
import com.digipom.android.library.evaluator.NumberPrecision;
import com.digipom.android.library.evaluator.exception.ParseException;

		assertEquals(lexer.nextToken(), PredefinedFunction.ABS);
		assertEquals(lexer.nextToken(), Parenthesis.OPEN);
		assertEquals(lexer.nextToken(), PredefinedFunction.COS);
		assertEquals(lexer.nextToken(), Parenthesis.OPEN);

		final Token x = lexer.nextToken();
		assertTrue(x instanceof Identifier);
		assertEquals(((Identifier) x).name, "x");

		assertEquals(lexer.nextToken(), Parenthesis.CLOSE);
		assertEquals(lexer.nextToken(), Operator.ADD);
		assertEquals(lexer.nextToken(), PredefinedFunction.COS);
		assertEquals(lexer.nextToken(), Parenthesis.OPEN);

		final Token y = lexer.nextToken();
		assertTrue(y instanceof Identifier);
		assertEquals(((Identifier) y).name, "y");

		assertEquals(lexer.nextToken(), Parenthesis.CLOSE);
		assertEquals(lexer.nextToken(), Parenthesis.CLOSE);
		assertEquals(lexer.nextToken(), Separator.COMMA);

		final Token literal = lexer.nextToken();
		assertTrue(literal instanceof NumberLiteral);
		assertEquals(((FloatNumberLiteral) literal).value, 0.5, 0.001);

		assertEquals(lexer.nextToken(), Parenthesis.CLOSE);
		assertEquals(lexer.nextToken(), Token.EOF);
	}

	public void testLexWithNegation() throws ParseException {