package test.parser.pst;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.text.ParseException;
import net.sf.latexdraw.models.interfaces.shape.DotStyle;
import net.sf.latexdraw.models.interfaces.shape.IDot;
import net.sf.latexdraw.models.interfaces.shape.IGroup;
import net.sf.latexdraw.models.interfaces.shape.IShape;
import net.sf.latexdraw.view.latex.DviPsColors;
import net.sf.latexdraw.parsers.pst.parser.PSTParser;
import org.junit.Test;
public class TestParsingPsdots extends TestParsingPSdot {
@Override
@Test
public void testDotStyleo() throws ParseException {
IGroup group = parser.parsePSTCode("\\" + getCommandName() + "[dotstyle=o]" + getBasicCoordinates()).get(); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(2, group.size());
assertEquals(DotStyle.O, ((IDot)group.getShapeAt(0)).getDotStyle());
assertEquals(DotStyle.O, ((IDot)group.getShapeAt(1)).getDotStyle());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Override
@Test
public void testDotStyleDot() throws ParseException {
IGroup group = parser.parsePSTCode("\\" + getCommandName() + "[dotstyle=*]" + getBasicCoordinates()).get(); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(2, group.size());
assertEquals(DotStyle.DOT, ((IDot)group.getShapeAt(0)).getDotStyle());
assertEquals(DotStyle.DOT, ((IDot)group.getShapeAt(1)).getDotStyle());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Override
@Test
public void testNoDotStyle() throws ParseException {
IGroup group = parser.parsePSTCode("\\" + getCommandName() + getBasicCoordinates()).get(); //$NON-NLS-1$
assertEquals(2, group.size());
assertEquals(DotStyle.DOT, ((IDot)group.getShapeAt(0)).getDotStyle());
assertEquals(DotStyle.DOT, ((IDot)group.getShapeAt(1)).getDotStyle());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Override
@Test(expected = ParseException.class)
public void testNoCoordinate() throws ParseException {
parser.parsePSTCode("\\" + getCommandName()).get().isEmpty(); //$NON-NLS-1$
}
@Override
@Test
public void test1Coordinates() throws ParseException {
IGroup group = parser.parsePSTCode("\\" + getCommandName() + "(5,10)").get(); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(1, group.size());
assertEquals(5. * IShape.PPC, group.getShapeAt(0).getPtAt(0).getX(), 0.0001);
assertEquals(-10. * IShape.PPC, group.getShapeAt(0).getPtAt(0).getY(), 0.0001);
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Override
@Test
public void testFloatSigns() throws ParseException {
IGroup group = parser.parsePSTCode("\\" + getCommandName() + "(+++35.5,--50.5)(+-++35.5,---50.5)").get(); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(35.5 * IShape.PPC, group.getShapeAt(0).getPtAt(0).getX(), 0.0001);
assertEquals(-50.5 * IShape.PPC, group.getShapeAt(0).getPtAt(0).getY(), 0.0001);
assertEquals(-35.5 * IShape.PPC, group.getShapeAt(1).getPtAt(0).getX(), 0.0001);
assertEquals(50.5 * IShape.PPC, group.getShapeAt(1).getPtAt(0).getY(), 0.0001);
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Override
@Test
public void testStarFillingParametershaveNoEffect() throws ParseException {
//
}
@Override
@Test
public void testStarLineColourIsFillingColour() throws ParseException {
IGroup group = parser.parsePSTCode("\\" + getCommandName() + "*[" + "linecolor=green, dotstyle=o]" + getBasicCoordinates()).get(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals(DviPsColors.GREEN, group.getShapeAt(0).getFillingCol());
assertEquals(DviPsColors.GREEN, group.getShapeAt(0).getLineColour());
assertEquals(DviPsColors.GREEN, group.getShapeAt(1).getFillingCol());
assertEquals(DviPsColors.GREEN, group.getShapeAt(1).getLineColour());
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Override
@Test
public void testCoordinatesFloat2() throws ParseException {
IDot dot = (IDot)parser.parsePSTCode("\\" + getCommandName() + "(35.5,50.5)").get().getShapeAt(0); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(35.5 * IShape.PPC, dot.getPtAt(0).getX(), 0.0001);
assertEquals(-50.5 * IShape.PPC, dot.getPtAt(0).getY(), 0.0001);
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Test
public void test2Points() throws ParseException {
IGroup group = parser.parsePSTCode("\\" + getCommandName() + "(35.5,50.5)(2,2)").get(); //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(2, group.size());
assertTrue(group.getShapeAt(0) instanceof IDot);
assertTrue(group.getShapeAt(1) instanceof IDot);
assertEquals(35.5 * IShape.PPC, group.getShapeAt(0).getPtAt(0).getX(), 0.0001);
assertEquals(-50.5 * IShape.PPC, group.getShapeAt(0).getPtAt(0).getY(), 0.0001);
assertEquals(2. * IShape.PPC, group.getShapeAt(1).getPtAt(0).getX(), 0.0001);
assertEquals(-2. * IShape.PPC, group.getShapeAt(1).getPtAt(0).getY(), 0.0001);
assertTrue(PSTParser.errorLogs().isEmpty());
}
@Override
public String getCommandName() {
return "psdots"; //$NON-NLS-1$
}
@Override
public String getBasicCoordinates() {
return "(1,1)(2,2)"; //$NON-NLS-1$
}
}