Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
package com.marginallyclever.makelangelo.plotter.plottercontrols;
import com.marginallyclever.makelangelo.Translator;
import com.marginallyclever.makelangelo.plotter.Plotter;
import com.marginallyclever.makelangelo.plotter.plottersettings.PlotterSettings;
import com.marginallyclever.util.PreferencesHelper;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class MarlinPlotterInterfaceTest {
@BeforeAll
public static void init() {
PreferencesHelper.start();
Translator.start();
}
@Test
public void onHearM114_OK() {
Plotter plotter = new Plotter();
plotter.setPos(23,45);
MarlinPlotterPanel mpi = new MarlinPlotterPanel(plotter, new ChooseConnection());
String message = "X:10.00 Y:-186.00 Z:200.00 Count X:72290 Y:72290 Z:32000";
mpi.onHearM114(message);
assertEquals(10, plotter.getPos().x);
assertEquals(-186, plotter.getPos().y);
}
@Test
public void onHearM114_KO() {
Plotter plotter = new Plotter();
plotter.setPos(23,45);
MarlinPlotterPanel mpi = new MarlinPlotterPanel(plotter, new ChooseConnection());
String message = "X:inva Y:-186.00 Z:200.00 Count X:72290 Y:72290 Z:32000";
mpi.onHearM114(message);
// original values
assertEquals(23, plotter.getPos().x);
assertEquals(45, plotter.getPos().y);
}
@Test
public void onHearAcceleration_OK() {
Plotter plotter = new Plotter();
PlotterSettings ps = new PlotterSettings();
ps.setDouble(PlotterSettings.MAX_ACCELERATION,42);
plotter.setSettings(ps);
MarlinPlotterPanel mpi = new MarlinPlotterPanel(plotter, new ChooseConnection());
String message = "echo: M201 X300.00 Y300.00 Z300.00";
mpi.onHearAcceleration(message);
assertEquals(300, plotter.getSettings().getDouble(PlotterSettings.MAX_ACCELERATION));
}
@Test
public void onHearAcceleration_KO() {
Plotter plotter = new Plotter();
PlotterSettings ps = new PlotterSettings();
ps.setDouble(PlotterSettings.MAX_ACCELERATION,42);
plotter.setSettings(ps);
MarlinPlotterPanel mpi = new MarlinPlotterPanel(plotter, new ChooseConnection());
String message = "echo: M201 X300.00 Yinvalid";
mpi.onHearAcceleration(message);
// original values
assertEquals(42, plotter.getSettings().getDouble(PlotterSettings.MAX_ACCELERATION));
}
@Test
public void onHearFeedrate_OK() {
Plotter plotter = new Plotter();
PlotterSettings ps = new PlotterSettings();
ps.setDouble(PlotterSettings.FEED_RATE_DRAW,42);
plotter.setSettings(ps);
MarlinPlotterPanel mpi = new MarlinPlotterPanel(plotter, new ChooseConnection());
String message = "echo: M203 X200.00 Y200.00 Z200.00";
mpi.onHearFeedrate(message);
assertEquals(200, plotter.getSettings().getDouble(PlotterSettings.FEED_RATE_DRAW));
}
@Test
public void onHearFeedrate_KO() {
Plotter plotter = new Plotter();
PlotterSettings ps = new PlotterSettings();
ps.setDouble(PlotterSettings.FEED_RATE_DRAW,42);
plotter.setSettings(ps);
MarlinPlotterPanel mpi = new MarlinPlotterPanel(plotter, new ChooseConnection());
String message = "echo: M203 X200.00 Yinvalid";
mpi.onHearFeedrate(message);
// original values
assertEquals(42, plotter.getSettings().getDouble(PlotterSettings.FEED_RATE_DRAW));
}
@Test
public void removeComment() {
Plotter plotter = new Plotter();
PlotterSettings ps = new PlotterSettings();
ps.setDouble(PlotterSettings.FEED_RATE_DRAW,42);
plotter.setSettings(ps);
MarlinPlotterPanel mpi = new MarlinPlotterPanel(plotter, new ChooseConnection());
assertEquals("G0 X20 Y30",mpi.removeComment("G0 X20 Y30 ; this is a comment"));
assertEquals("G0 X40 Y50",mpi.removeComment("G0 X40 Y50"));
assertEquals("G0 Y60",mpi.removeComment(" G0 Y60"));
assertEquals("G0 F600",mpi.removeComment(" G0 F600 ; ;;;"));
}
@Test
public void testZAxisGcode() {
testZAxisGcode("M280 P0 S%1 T%2","M280 P0 S%1 T%2","M280 P0 S45.0 T50.0","M280 P0 S90.0 T150.0");
testZAxisGcode("G1 Z%1 F%2","G0 Z%1 F%2","G1 Z45.0 F50.0","G0 Z90.0 F150.0");
}
private void testZAxisGcode(String setDown,String setUp,String matchDown,String matchUp) {
Plotter plotter = new Plotter();
PlotterSettings ps = plotter.getSettings();
ps.setString(PlotterSettings.PEN_UP_GCODE,setUp);
ps.setString(PlotterSettings.PEN_DOWN_GCODE,setDown);
ps.setDouble(PlotterSettings.PEN_ANGLE_DOWN,45);
ps.setDouble(PlotterSettings.PEN_ANGLE_UP,90);
ps.setDouble(PlotterSettings.PEN_ANGLE_DOWN_TIME,50);
ps.setDouble(PlotterSettings.PEN_ANGLE_UP_TIME,150);
plotter.setSettings(ps);
Assertions.assertEquals(matchDown, plotter.getSettings().getPenDownString());
Assertions.assertEquals(matchUp, plotter.getSettings().getPenUpString());
}
}
f1d2d2224This file is pinned to the selected release. Download the original to open it in your design tool.