/** * */ package org.goko.gcode.rs274ngcv3; import static org.junit.Assert.assertEquals; import org.goko.core.common.exception.GkException; import org.goko.core.common.measure.quantity.Angle; import org.goko.core.common.measure.quantity.AngleUnit; import org.goko.core.common.measure.quantity.Length; import org.goko.core.common.measure.quantity.LengthUnit; import org.goko.core.gcode.rs274ngcv3.context.GCodeContext; import org.goko.core.gcode.rs274ngcv3.instruction.StraightFeedInstruction; import org.junit.Test; /** * @author Psyko * @date 2 juil. 2016 */ public class StraightInstructionTest { @Test public void testCompleteContextUpdate() throws GkException{ GCodeContext context = new GCodeContext(); assertEquals(Length.ZERO, context.getX()); assertEquals(Length.ZERO, context.getY()); assertEquals(Length.ZERO, context.getZ()); assertEquals(Angle.ZERO, context.getA()); assertEquals(Angle.ZERO, context.getB()); assertEquals(Angle.ZERO, context.getC()); StraightFeedInstruction instr = new StraightFeedInstruction(Length.valueOf("17.356", LengthUnit.MILLIMETRE), Length.valueOf("-21.36", LengthUnit.MILLIMETRE), Length.valueOf("100" , LengthUnit.MILLIMETRE), Angle.valueOf("0.356", AngleUnit.DEGREE_ANGLE) , Angle.valueOf("-7.6", AngleUnit.DEGREE_ANGLE) , Angle.valueOf("45.00", AngleUnit.DEGREE_ANGLE) ); instr.apply(context); // Make sure only the target coordinate updated assertEquals(Length.valueOf("17.356", LengthUnit.MILLIMETRE), context.getX()); assertEquals(Length.valueOf("-21.36", LengthUnit.MILLIMETRE), context.getY()); assertEquals(Length.valueOf("100" , LengthUnit.MILLIMETRE), context.getZ()); assertEquals(Angle.valueOf("0.356", AngleUnit.DEGREE_ANGLE) , context.getA()); assertEquals(Angle.valueOf("-7.6", AngleUnit.DEGREE_ANGLE) , context.getB()); assertEquals(Angle.valueOf("45.00", AngleUnit.DEGREE_ANGLE) , context.getC()); } @Test public void testPartialContextUpdateX() throws GkException{ GCodeContext context = new GCodeContext(); assertEquals(Length.ZERO, context.getX()); assertEquals(Length.ZERO, context.getY()); assertEquals(Length.ZERO, context.getZ()); assertEquals(Angle.ZERO, context.getA()); assertEquals(Angle.ZERO, context.getB()); assertEquals(Angle.ZERO, context.getC()); StraightFeedInstruction instr = new StraightFeedInstruction(Length.valueOf("17.356", LengthUnit.MILLIMETRE), null, null, null, null, null); instr.apply(context); // Make sure only the target coordinate updated assertEquals(Length.valueOf("17.356", LengthUnit.MILLIMETRE), context.getX()); assertEquals(Length.ZERO, context.getY()); assertEquals(Length.ZERO, context.getZ()); assertEquals(Angle.ZERO, context.getA()); assertEquals(Angle.ZERO, context.getB()); assertEquals(Angle.ZERO, context.getC()); } @Test public void testPartialContextUpdateY() throws GkException{ GCodeContext context = new GCodeContext(); assertEquals(Length.ZERO, context.getX()); assertEquals(Length.ZERO, context.getY()); assertEquals(Length.ZERO, context.getZ()); assertEquals(Angle.ZERO, context.getA()); assertEquals(Angle.ZERO, context.getB()); assertEquals(Angle.ZERO, context.getC()); StraightFeedInstruction instr = new StraightFeedInstruction(null, Length.valueOf("17.356", LengthUnit.MILLIMETRE), null, null, null, null); instr.apply(context); // Make sure only the target coordinate updated assertEquals(Length.ZERO, context.getX()); assertEquals(Length.valueOf("17.356", LengthUnit.MILLIMETRE), context.getY()); assertEquals(Length.ZERO, context.getZ()); assertEquals(Angle.ZERO, context.getA()); assertEquals(Angle.ZERO, context.getB()); assertEquals(Angle.ZERO, context.getC()); } @Test public void testPartialContextUpdateZ() throws GkException{ GCodeContext context = new GCodeContext(); assertEquals(Length.ZERO, context.getX()); assertEquals(Length.ZERO, context.getY()); assertEquals(Length.ZERO, context.getZ()); assertEquals(Angle.ZERO, context.getA()); assertEquals(Angle.ZERO, context.getB()); assertEquals(Angle.ZERO, context.getC()); StraightFeedInstruction instr = new StraightFeedInstruction(null, null, Length.valueOf("17.356", LengthUnit.MILLIMETRE), null, null, null); instr.apply(context); // Make sure only the target coordinate updated assertEquals(Length.ZERO, context.getX()); assertEquals(Length.ZERO, context.getY()); assertEquals(Length.valueOf("17.356", LengthUnit.MILLIMETRE), context.getZ()); assertEquals(Angle.ZERO, context.getA()); assertEquals(Angle.ZERO, context.getB()); assertEquals(Angle.ZERO, context.getC()); } @Test public void testPartialContextUpdateA() throws GkException{ GCodeContext context = new GCodeContext(); assertEquals(Length.ZERO, context.getX()); assertEquals(Length.ZERO, context.getY()); assertEquals(Length.ZERO, context.getZ()); assertEquals(Angle.ZERO, context.getA()); assertEquals(Angle.ZERO, context.getB()); assertEquals(Angle.ZERO, context.getC()); StraightFeedInstruction instr = new StraightFeedInstruction(null, null, null, Angle.valueOf("17.356", AngleUnit.DEGREE_ANGLE), null, null); instr.apply(context); // Make sure only the target coordinate updated assertEquals(Length.ZERO, context.getX()); assertEquals(Length.ZERO, context.getY()); assertEquals(Length.ZERO, context.getZ()); assertEquals(Angle.valueOf("17.356", AngleUnit.DEGREE_ANGLE), context.getA()); assertEquals(Angle.ZERO, context.getB()); assertEquals(Angle.ZERO, context.getC()); } @Test public void testPartialContextUpdateB() throws GkException{ GCodeContext context = new GCodeContext(); assertEquals(Length.ZERO, context.getX()); assertEquals(Length.ZERO, context.getY()); assertEquals(Length.ZERO, context.getZ()); assertEquals(Angle.ZERO, context.getA()); assertEquals(Angle.ZERO, context.getB()); assertEquals(Angle.ZERO, context.getC()); StraightFeedInstruction instr = new StraightFeedInstruction(null, null, null, null, Angle.valueOf("17.356", AngleUnit.DEGREE_ANGLE), null); instr.apply(context); // Make sure only the target coordinate updated assertEquals(Length.ZERO, context.getX()); assertEquals(Length.ZERO, context.getY()); assertEquals(Length.ZERO, context.getZ()); assertEquals(Angle.ZERO, context.getA()); assertEquals(Angle.valueOf("17.356", AngleUnit.DEGREE_ANGLE), context.getB()); assertEquals(Angle.ZERO, context.getC()); } @Test public void testPartialContextUpdateC() throws GkException{ GCodeContext context = new GCodeContext(); assertEquals(Length.ZERO, context.getX()); assertEquals(Length.ZERO, context.getY()); assertEquals(Length.ZERO, context.getZ()); assertEquals(Angle.ZERO, context.getA()); assertEquals(Angle.ZERO, context.getB()); assertEquals(Angle.ZERO, context.getC()); StraightFeedInstruction instr = new StraightFeedInstruction(null, null, null, null, null, Angle.valueOf("17.356", AngleUnit.DEGREE_ANGLE)); instr.apply(context); // Make sure only the target coordinate updated assertEquals(Length.ZERO, context.getX()); assertEquals(Length.ZERO, context.getY()); assertEquals(Length.ZERO, context.getZ()); assertEquals(Angle.ZERO, context.getA()); assertEquals(Angle.ZERO, context.getB()); assertEquals(Angle.valueOf("17.356", AngleUnit.DEGREE_ANGLE), context.getC()); } }