package test.parser.pst;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.text.ParseException;
import net.sf.latexdraw.models.interfaces.shape.IGrid;
import net.sf.latexdraw.models.interfaces.shape.IShape;
import net.sf.latexdraw.view.latex.DviPsColors;
import net.sf.latexdraw.view.pst.PSTricksConstants;
import net.sf.latexdraw.parsers.pst.parser.PSTParser;
import org.junit.Test;
public class TestParsingPsgrid extends TestPSTParser {
@Test
public void testGridXUnit() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[xunit=20in]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(1., grid.getUnit(), 0.00001);
grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[xunit=0.3]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(1., grid.getUnit(), 0.00001);
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void testGridYUnit() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[yunit=20in]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(1., grid.getUnit(), 0.00001);
grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[yunit=0.3]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(1., grid.getUnit(), 0.00001);
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void testGridUnit() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[unit=20in]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(20. / PSTricksConstants.INCH_VAL_CM, grid.getUnit(), 0.00001);
grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[unit=0.3]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(0.3, grid.getUnit(), 0.00001);
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void testGridSubGridWidth() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[subgridwidth=20in]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(20. * IShape.PPC / PSTricksConstants.INCH_VAL_CM, grid.getSubGridWidth(), 0.00001);
grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[subgridwidth=0.3]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(0.3 * IShape.PPC, grid.getSubGridWidth(), 0.00001);
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void testGridLabels() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[gridlabels=20in]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals((int)(20. * IShape.PPC / PSTricksConstants.INCH_VAL_CM), grid.getLabelsSize());
grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[gridlabels=0.3]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals((int)(0.3 * IShape.PPC), grid.getLabelsSize());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void testGridSubGridDiv() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[subgriddiv=3]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(3, grid.getSubGridDiv());
grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[subgriddiv=0]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(0, grid.getSubGridDiv());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void testSubGridDots() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[subgriddots=3]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(3, grid.getSubGridDots());
grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[subgriddots=0]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(0, grid.getSubGridDots());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void testGridDots() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[griddots=3]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(3, grid.getGridDots());
grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[griddots=0]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(0, grid.getGridDots());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void testSubGridLabelColor() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[subgridcolor=green]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(DviPsColors.GREEN, grid.getSubGridColour());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void testGridLabelColor() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[gridlabelcolor=green]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(DviPsColors.GREEN, grid.getGridLabelsColour());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void testGridColor() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[gridcolor=green]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(DviPsColors.GREEN, grid.getLineColour());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void testGridWidth() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[gridwidth=1.3cm]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(1.3 * IShape.PPC, grid.getGridWidth(), 0.001);
grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "[gridwidth=.3in]" + getBasicCoordinates()).get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(.3 * IShape.PPC / PSTricksConstants.INCH_VAL_CM, grid.getGridWidth(), 0.001);
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void test0CoordDoubleValue() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\begin{pspicture}(2.1,2.6)(5.6,5.5)\\" + getCommandName() + "\\end{pspicture}").get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(0., grid.getOriginX(), 0.0001);
assertEquals(0., grid.getOriginY(), 0.0001);
assertEquals(2., grid.getGridMinX(), 0.0001);
assertEquals(3., grid.getGridMinY(), 0.0001);
assertEquals(6., grid.getGridMaxX(), 0.0001);
assertEquals(6., grid.getGridMaxY(), 0.0001);
assertTrue(grid.isXLabelSouth());
assertTrue(grid.isYLabelWest());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void test0Coord() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\begin{pspicture}(2,2)(5,5)\\" + getCommandName() + "\\end{pspicture}").get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(0., grid.getOriginX(), 0.0001);
assertEquals(0., grid.getOriginY(), 0.0001);
assertEquals(2., grid.getGridMinX(), 0.0001);
assertEquals(2., grid.getGridMinY(), 0.0001);
assertEquals(5., grid.getGridMaxX(), 0.0001);
assertEquals(5., grid.getGridMaxY(), 0.0001);
assertTrue(grid.isXLabelSouth());
assertTrue(grid.isYLabelWest());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void test1Coord() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "(1,2)").get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(0., grid.getOriginX(), 0.0001);
assertEquals(0., grid.getOriginY(), 0.0001);
assertEquals(0., grid.getGridMinX(), 0.0001);
assertEquals(0., grid.getGridMinY(), 0.0001);
assertEquals(1., grid.getGridMaxX(), 0.0001);
assertEquals(2., grid.getGridMaxY(), 0.0001);
assertTrue(grid.isXLabelSouth());
assertTrue(grid.isYLabelWest());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void test2CoordInverted() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "(3,4)(1,2)").get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(3., grid.getOriginX(), 0.0001);
assertEquals(4., grid.getOriginY(), 0.0001);
assertEquals(1., grid.getGridMinX(), 0.0001);
assertEquals(2., grid.getGridMinY(), 0.0001);
assertEquals(3., grid.getGridMaxX(), 0.0001);
assertEquals(4., grid.getGridMaxY(), 0.0001);
assertFalse(grid.isXLabelSouth());
assertFalse(grid.isYLabelWest());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void test2Coord() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "(1,2)(3,4)").get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(1., grid.getOriginX(), 0.0001);
assertEquals(2., grid.getOriginY(), 0.0001);
assertEquals(1., grid.getGridMinX(), 0.0001);
assertEquals(2., grid.getGridMinY(), 0.0001);
assertEquals(3., grid.getGridMaxX(), 0.0001);
assertEquals(4., grid.getGridMaxY(), 0.0001);
assertTrue(grid.isXLabelSouth());
assertTrue(grid.isYLabelWest());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void test3CoordInverted() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "(0,-1)(3,4)(1,2)").get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(0., grid.getOriginX(), 0.0001);
assertEquals(-1., grid.getOriginY(), 0.0001);
assertEquals(1., grid.getGridStartX(), 0.0001);
assertEquals(2., grid.getGridStartY(), 0.0001);
assertEquals(3., grid.getGridEndX(), 0.0001);
assertEquals(4., grid.getGridEndY(), 0.0001);
assertFalse(grid.isXLabelSouth());
assertFalse(grid.isYLabelWest());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void test3Coord() throws ParseException {
IGrid grid = (IGrid)parser.parsePSTCode("\\" + getCommandName() + "(0,-1)(1,2)(3,4)").get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(0., grid.getOriginX(), 0.0001);
assertEquals(-1., grid.getOriginY(), 0.0001);
assertEquals(1., grid.getGridStartX(), 0.0001);
assertEquals(2., grid.getGridStartY(), 0.0001);
assertEquals(3., grid.getGridEndX(), 0.0001);
assertEquals(4., grid.getGridEndY(), 0.0001);
assertTrue(grid.isXLabelSouth());
assertTrue(grid.isYLabelWest());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Override
public String getCommandName() {
return "psgrid"; //$NON-NLS-1$
}
@Override
public String getBasicCoordinates() {
return "(0,0)(0,0)(1,1)"; //$NON-NLS-1$
}
}