package de.skuzzle.polly.test.core.parser.scanner;
import org.junit.Test;
import de.skuzzle.polly.core.parser.AbstractTokenStream;
import de.skuzzle.polly.core.parser.ParseException;
import de.skuzzle.polly.core.parser.Position;
import junit.framework.Assert;
public class TestPositioning extends AbstractScannerTest {
@Test
public void testPositioning1() throws ParseException {
final String input = "a abc";
final AbstractTokenStream scanner = this.obtain(input);
Assert.assertEquals(scanner.consume().getPosition(), new Position(0, 1));
Assert.assertEquals(scanner.consume().getPosition(), new Position(1, 2));
Assert.assertEquals(scanner.consume().getPosition(), new Position(2, 5));
Assert.assertEquals(scanner.consume().getPosition(), new Position(5, 6));
}
@Test
public void testPositioning2() throws ParseException {
final String input = "1.45 abc @bla";
final AbstractTokenStream scanner = this.obtain(input);
Assert.assertEquals(scanner.consume().getPosition(), new Position(0, 4));
Assert.assertEquals(scanner.consume().getPosition(), new Position(4, 5));
Assert.assertEquals(scanner.consume().getPosition(), new Position(5, 8));
Assert.assertEquals(scanner.consume().getPosition(), new Position(8, 9));
Assert.assertEquals(scanner.consume().getPosition(), new Position(9, 13));
Assert.assertEquals(scanner.consume().getPosition(), new Position(13, 14));
}
@Test
public void testPositioning3() throws ParseException {
final String input = "()>10m4h3s";
final AbstractTokenStream scanner = this.obtain(input);
Assert.assertEquals(scanner.consume().getPosition(), new Position(0, 1));
Assert.assertEquals(scanner.consume().getPosition(), new Position(1, 2));
Assert.assertEquals(scanner.consume().getPosition(), new Position(2, 3));
Assert.assertEquals(scanner.consume().getPosition(), new Position(3, 10));
Assert.assertEquals(scanner.consume().getPosition(), new Position(10, 11));
}
@Test
public void testPositioning4() throws ParseException {
final String input = "longid";
final AbstractTokenStream scanner = this.obtain(input);
Assert.assertEquals(scanner.consume().getPosition(), new Position(0, 6));
Assert.assertEquals(scanner.consume().getPosition(), new Position(6, 7));
}
@Test
public void testPositioning5() throws ParseException {
final String input = "10m4h 09.12.1987@13:37";
final AbstractTokenStream scanner = this.obtain(input);
Assert.assertEquals(scanner.consume().getPosition(), new Position(0, 5));
Assert.assertEquals(scanner.consume().getPosition(), new Position(5, 6));
Assert.assertEquals(scanner.consume().getPosition(), new Position(6, 22));
Assert.assertEquals(scanner.consume().getPosition(), new Position(22, 23));
}
@Test
public void testPositioning6() throws ParseException {
final String input = ".45 1 .1456";
final AbstractTokenStream scanner = this.obtain(input);
Assert.assertEquals(scanner.consume().getPosition(), new Position(0, 3));
Assert.assertEquals(scanner.consume().getPosition(), new Position(3, 4));
Assert.assertEquals(scanner.consume().getPosition(), new Position(4, 5));
Assert.assertEquals(scanner.consume().getPosition(), new Position(5, 6));
Assert.assertEquals(scanner.consume().getPosition(), new Position(6, 11));
Assert.assertEquals(scanner.consume().getPosition(), new Position(11, 12));
}
@Test
public void testPositioning7() throws ParseException {
final String input = "0x16:1234";
final AbstractTokenStream scanner = this.obtain(input);
Assert.assertEquals(scanner.consume().getPosition(), new Position(0, 5));
}
@Test
public void testPositioning8() throws ParseException {
final String input = "$";
final AbstractTokenStream scanner = this.obtain(input);
Assert.assertEquals(scanner.consume().getPosition(), new Position(0, 1));
Assert.assertEquals(scanner.consume().getPosition(), new Position(1, 2));
}
}