package org.goko.core.rs274ngcv3.junits; import org.goko.core.gcode.bean.GCodeCommand; import org.goko.core.gcode.bean.GCodeContext; import org.goko.core.gcode.service.IGCodeService; import org.goko.core.rs274ngcv3.RS274GCodeService; import org.goko.core.rs274ngcv3.assertion.AssertGCode; import org.goko.core.rs274ngcv3.config.RS274Preference; import junit.framework.TestCase; public class RS274GCodeServiceTestCase extends TestCase{ private IGCodeService gcodeService; @Override protected void setUp() throws Exception { super.setUp(); this.gcodeService = new RS274GCodeService(); this.gcodeService.start(); RS274Preference.getInstance().setDecimalTruncateEnabled(false); } public void testCommands() throws Exception{ AssertGCode.assertEquals("G90X12.5Y36.8Z45.3F100", "G90F100Y36.8Z45.3X12.5"); } public void testTruncateHalfDownCommands() throws Exception{ RS274Preference.getInstance().setDecimalTruncateEnabled(true); RS274Preference.getInstance().setDecimalCount(3); GCodeCommand comm = gcodeService.parseCommand("G90 X12.53642", new GCodeContext()); String converted = new String(gcodeService.convert(comm)); AssertGCode.assertEquals("G90 X12.536", converted); RS274Preference.getInstance().setDecimalTruncateEnabled(false); } public void testTruncateHalfUpCommands() throws Exception{ RS274Preference.getInstance().setDecimalTruncateEnabled(true); RS274Preference.getInstance().setDecimalCount(3); GCodeCommand comm = gcodeService.parseCommand("G90 X12.53672", new GCodeContext()); String converted = new String(gcodeService.convert(comm)); AssertGCode.assertEquals("G90 X12.536", converted); RS274Preference.getInstance().setDecimalTruncateEnabled(false); } public void testCommandPartialNumber() throws Exception{ GCodeCommand comm = gcodeService.parseCommand("N12 G90 X.5 Y.8 Z45.3 F100", new GCodeContext()); String converted = new String(gcodeService.convert(comm)); AssertGCode.assertEquals("N12 G90 X0.5 Y0.8 Z45.3 F100", converted); } public void testCommandParserOk() throws Exception{ AssertGCode.assertParseEquals(gcodeService, "( TEST )"); AssertGCode.assertParseEquals(gcodeService, "( T0 M6 )"); AssertGCode.assertParseEquals(gcodeService, "N12G90X12.5Y36.8Z45.3F100"); AssertGCode.assertParseEquals(gcodeService, "N12 G90 X12.5 Y36.8 Z45.3 F100"); AssertGCode.assertParseEquals(gcodeService, "G1 X12.5 Y36.8 Z45.3 F100"); AssertGCode.assertParseEquals(gcodeService, "G3 X0.5 Y36.8 Z45.3 F100 I14.56 J32.23 K12.5"); AssertGCode.assertParseEquals(gcodeService, "G21 G17 G55"); AssertGCode.assertParseEquals(gcodeService, "G54"); AssertGCode.assertParseEquals(gcodeService, "G55"); AssertGCode.assertParseEquals(gcodeService, "G58 S1200"); AssertGCode.assertParseEquals(gcodeService, "G57 M3"); AssertGCode.assertParseEquals(gcodeService, "N12G90X12.5Y36.8Z45.3F100;M3"); AssertGCode.assertParseEquals(gcodeService, "N12G90X12.5Y36.8Z45.3F100(M3)"); AssertGCode.assertParseEquals(gcodeService, "N12G90X12.5Y36.8Z45.3F100.00(M3)"); AssertGCode.assertParseEquals(gcodeService, "N12G90X12.5Y36.8Z45.3F100.00;M3"); AssertGCode.assertParseEquals(gcodeService, "N12G90X12.5Y36.8Z45.3F100.00;Test"); AssertGCode.assertParseEquals(gcodeService, "N12G90X12.5Y36.8Z-100.00;Test"); AssertGCode.assertParseEquals(gcodeService, "N12G90X12.5Y36.8Z0.05;Test"); AssertGCode.assertParseEquals(gcodeService, "N12G90X12.5Y36.8Z-0.05;Test"); } @Override protected void tearDown() throws Exception { super.tearDown(); this.gcodeService.stop(); } }