import java.awt.image.BufferedImage; import java.io.IOException; import javax.swing.Action; import javax.swing.Icon; import org.junit.Assert; import org.junit.Test; import org.openpnp.CameraListener; import org.openpnp.gui.support.Wizard; import org.openpnp.model.LengthUnit; import org.openpnp.model.Location; import org.openpnp.spi.Camera; import org.openpnp.spi.Head; import org.openpnp.spi.PropertySheetHolder; import org.openpnp.spi.VisionProvider; import org.openpnp.util.VisionUtils; public class VisionUtilsTest { @Test public void testOffsets() { Camera camera = new TestCamera(); Location location = camera.getLocation(); Assert.assertEquals(location, new Location(LengthUnit.Millimeters, 0, 0, 0, 0)); Assert.assertEquals(camera.getWidth(), 640); Assert.assertEquals(camera.getHeight(), 480); Location pixelOffsets = VisionUtils.getPixelCenterOffsets(camera, 100, 100); Assert.assertEquals(pixelOffsets, new Location(LengthUnit.Millimeters, -220, 140, 0, 0)); Location pixelLocation = VisionUtils.getPixelLocation(camera, 100, 100); Assert.assertEquals(pixelLocation, new Location(LengthUnit.Millimeters, -220, 140, 0, 0)); } static class TestCamera implements Camera { protected Head head; @Override public String getId() { // TODO Auto-generated method stub return null; } @Override public Head getHead() { return head; } @Override public void setHead(Head head) { this.head = head; } @Override public void moveTo(Location location, double speed) throws Exception { // TODO Auto-generated method stub } @Override public void moveToSafeZ(double speed) throws Exception { // TODO Auto-generated method stub } @Override public Location getLocation() { return new Location(LengthUnit.Millimeters, 0, 0, 0, 0); } @Override public Wizard getConfigurationWizard() { // TODO Auto-generated method stub return null; } @Override public String getPropertySheetHolderTitle() { // TODO Auto-generated method stub return null; } @Override public PropertySheetHolder[] getChildPropertySheetHolders() { // TODO Auto-generated method stub return null; } @Override public PropertySheet[] getPropertySheets() { // TODO Auto-generated method stub return null; } @Override public Action[] getPropertySheetHolderActions() { // TODO Auto-generated method stub return null; } @Override public String getName() { // TODO Auto-generated method stub return null; } @Override public void setName(String name) { // TODO Auto-generated method stub } @Override public Looking getLooking() { // TODO Auto-generated method stub return null; } @Override public void setLooking(Looking looking) { // TODO Auto-generated method stub } @Override public Location getUnitsPerPixel() { return new Location(LengthUnit.Millimeters, 1, 1, 0, 0); } @Override public void setUnitsPerPixel(Location unitsPerPixel) { // TODO Auto-generated method stub } @Override public BufferedImage capture() { // TODO Auto-generated method stub return null; } @Override public void startContinuousCapture(CameraListener listener, int maximumFps) { // TODO Auto-generated method stub } @Override public void stopContinuousCapture(CameraListener listener) { // TODO Auto-generated method stub } @Override public void setVisionProvider(VisionProvider visionProvider) { // TODO Auto-generated method stub } @Override public VisionProvider getVisionProvider() { // TODO Auto-generated method stub return null; } @Override public int getWidth() { return 640; } @Override public int getHeight() { return 480; } @Override public Icon getPropertySheetHolderIcon() { // TODO Auto-generated method stub return null; } @Override public void close() throws IOException { // TODO Auto-generated method stub } @Override public BufferedImage settleAndCapture() { // TODO Auto-generated method stub return null; } @Override public long getSettleTimeMs() { // TODO Auto-generated method stub return 0; } @Override public void setSettleTimeMs(long settleTimeMs) { // TODO Auto-generated method stub } @Override public void moveTo(Location location) throws Exception { moveTo(location, getHead().getMachine().getSpeed()); } @Override public void moveToSafeZ() throws Exception { moveToSafeZ(getHead().getMachine().getSpeed()); } } }