/**
*
*/
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.Length;
import org.goko.core.common.measure.quantity.LengthUnit;
import org.goko.core.gcode.rs274ngcv3.context.EnumPlane;
import org.goko.core.gcode.rs274ngcv3.context.GCodeContext;
import org.goko.core.gcode.rs274ngcv3.instruction.ArcFeedInstruction;
import org.junit.Test;
/**
* @author Psyko
* @date 2 juil. 2016
*/
public class ArcFeedInstructionTest {
@Test
public void contextXyPlaneUpdate() throws GkException{
ArcFeedInstruction instr = new ArcFeedInstruction( Length.valueOf("10", LengthUnit.MILLIMETRE),
Length.valueOf("12", LengthUnit.MILLIMETRE),
Length.valueOf("-8.32", LengthUnit.MILLIMETRE),
Length.valueOf("5", LengthUnit.MILLIMETRE),
Length.valueOf("6", LengthUnit.MILLIMETRE),
null,
null,
null,
null,
1,
true);
GCodeContext context = new GCodeContext();
context.setPlane(EnumPlane.XY_PLANE);
assertEquals(Angle.ZERO, context.getA());
assertEquals(Angle.ZERO, context.getB());
assertEquals(Angle.ZERO, context.getC());
instr.apply(context);
assertEquals(Length.valueOf("10", LengthUnit.MILLIMETRE), context.getX());
assertEquals(Length.valueOf("12", LengthUnit.MILLIMETRE), context.getY());
assertEquals(Length.valueOf("-8.32", LengthUnit.MILLIMETRE), context.getZ());
assertEquals(Angle.ZERO, context.getA());
assertEquals(Angle.ZERO, context.getB());
assertEquals(Angle.ZERO, context.getC());
}
@Test
public void contextYzPlaneUpdate() throws GkException{
ArcFeedInstruction instr = new ArcFeedInstruction( Length.valueOf("-8.32", LengthUnit.MILLIMETRE),
Length.valueOf("12", LengthUnit.MILLIMETRE),
Length.valueOf("10", LengthUnit.MILLIMETRE),
null,
Length.valueOf("5", LengthUnit.MILLIMETRE),
Length.valueOf("6", LengthUnit.MILLIMETRE),
null,
null,
null,
1,
true);
GCodeContext context = new GCodeContext();
context.setPlane(EnumPlane.YZ_PLANE);
assertEquals(Angle.ZERO, context.getA());
assertEquals(Angle.ZERO, context.getB());
assertEquals(Angle.ZERO, context.getC());
instr.apply(context);
assertEquals(Length.valueOf("-8.32", LengthUnit.MILLIMETRE), context.getX());
assertEquals(Length.valueOf("12", LengthUnit.MILLIMETRE), context.getY());
assertEquals(Length.valueOf("10", LengthUnit.MILLIMETRE), context.getZ());
assertEquals(Angle.ZERO, context.getA());
assertEquals(Angle.ZERO, context.getB());
assertEquals(Angle.ZERO, context.getC());
}
@Test
public void contextXzPlaneUpdate() throws GkException{
ArcFeedInstruction instr = new ArcFeedInstruction( Length.valueOf("12", LengthUnit.MILLIMETRE),
Length.valueOf("-8.32", LengthUnit.MILLIMETRE),
Length.valueOf("10", LengthUnit.MILLIMETRE),
Length.valueOf("6", LengthUnit.MILLIMETRE),
null,
Length.valueOf("5", LengthUnit.MILLIMETRE),
null,
null,
null,
1,
true);
GCodeContext context = new GCodeContext();
context.setPlane(EnumPlane.XZ_PLANE);
assertEquals(Angle.ZERO, context.getA());
assertEquals(Angle.ZERO, context.getB());
assertEquals(Angle.ZERO, context.getC());
instr.apply(context);
assertEquals(Length.valueOf("12", LengthUnit.MILLIMETRE), context.getX());
assertEquals(Length.valueOf("-8.32", LengthUnit.MILLIMETRE), context.getY());
assertEquals(Length.valueOf("10", LengthUnit.MILLIMETRE), context.getZ());
assertEquals(Angle.ZERO, context.getA());
assertEquals(Angle.ZERO, context.getB());
assertEquals(Angle.ZERO, context.getC());
}
}