mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-23 01:21:40 +00:00
Auto-generate packet dataclasses with Jinja (#1374)
This commit is contained in:
@@ -21,171 +21,31 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import edu.wpi.first.math.geometry.*;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.photonvision.common.dataflow.structures.Packet;
|
||||
import org.photonvision.targeting.MultiTargetPNPResult;
|
||||
import org.photonvision.targeting.PNPResult;
|
||||
import org.photonvision.targeting.PhotonPipelineResult;
|
||||
import org.photonvision.targeting.PhotonTrackedTarget;
|
||||
import org.photonvision.targeting.PnpResult;
|
||||
import org.photonvision.targeting.TargetCorner;
|
||||
import org.photonvision.utils.PacketUtils;
|
||||
|
||||
class PacketTest {
|
||||
@Test
|
||||
void rotation2dSerde() {
|
||||
var packet = new Packet(PacketUtils.ROTATION2D_BYTE_SIZE);
|
||||
var ret = new Rotation2d();
|
||||
PacketUtils.packRotation2d(packet, ret);
|
||||
var unpacked = PacketUtils.unpackRotation2d(packet);
|
||||
assertEquals(ret, unpacked);
|
||||
}
|
||||
public void testTargetCorner() {
|
||||
TargetCorner corner = new TargetCorner(1, 2);
|
||||
|
||||
@Test
|
||||
void quaternionSerde() {
|
||||
var packet = new Packet(PacketUtils.QUATERNION_BYTE_SIZE);
|
||||
var ret = new Quaternion();
|
||||
PacketUtils.packQuaternion(packet, ret);
|
||||
var unpacked = PacketUtils.unpackQuaternion(packet);
|
||||
assertEquals(ret, unpacked);
|
||||
}
|
||||
var packet = new Packet(0);
|
||||
|
||||
@Test
|
||||
void rotation3dSerde() {
|
||||
var packet = new Packet(PacketUtils.ROTATION3D_BYTE_SIZE);
|
||||
var ret = new Rotation3d();
|
||||
PacketUtils.packRotation3d(packet, ret);
|
||||
var unpacked = PacketUtils.unpackRotation3d(packet);
|
||||
assertEquals(ret, unpacked);
|
||||
}
|
||||
|
||||
@Test
|
||||
void translation2dSerde() {
|
||||
var packet = new Packet(PacketUtils.TRANSLATION2D_BYTE_SIZE);
|
||||
var ret = new Translation2d();
|
||||
PacketUtils.packTranslation2d(packet, ret);
|
||||
var unpacked = PacketUtils.unpackTranslation2d(packet);
|
||||
assertEquals(ret, unpacked);
|
||||
}
|
||||
|
||||
@Test
|
||||
void translation3dSerde() {
|
||||
var packet = new Packet(PacketUtils.TRANSLATION3D_BYTE_SIZE);
|
||||
var ret = new Translation3d();
|
||||
PacketUtils.packTranslation3d(packet, ret);
|
||||
var unpacked = PacketUtils.unpackTranslation3d(packet);
|
||||
assertEquals(ret, unpacked);
|
||||
}
|
||||
|
||||
@Test
|
||||
void transform2dSerde() {
|
||||
var packet = new Packet(PacketUtils.TRANSFORM2D_BYTE_SIZE);
|
||||
var ret = new Transform2d();
|
||||
PacketUtils.packTransform2d(packet, ret);
|
||||
var unpacked = PacketUtils.unpackTransform2d(packet);
|
||||
assertEquals(ret, unpacked);
|
||||
}
|
||||
|
||||
@Test
|
||||
void transform3dSerde() {
|
||||
var packet = new Packet(PacketUtils.TRANSFORM3D_BYTE_SIZE);
|
||||
var ret = new Transform3d();
|
||||
PacketUtils.packTransform3d(packet, ret);
|
||||
var unpacked = PacketUtils.unpackTransform3d(packet);
|
||||
assertEquals(ret, unpacked);
|
||||
}
|
||||
|
||||
@Test
|
||||
void pose2dSerde() {
|
||||
var packet = new Packet(PacketUtils.POSE2D_BYTE_SIZE);
|
||||
var ret = new Pose2d();
|
||||
PacketUtils.packPose2d(packet, ret);
|
||||
var unpacked = PacketUtils.unpackPose2d(packet);
|
||||
assertEquals(ret, unpacked);
|
||||
}
|
||||
|
||||
@Test
|
||||
void pose3dSerde() {
|
||||
var packet = new Packet(PacketUtils.POSE3D_BYTE_SIZE);
|
||||
var ret = new Pose3d();
|
||||
PacketUtils.packPose3d(packet, ret);
|
||||
var unpacked = PacketUtils.unpackPose3d(packet);
|
||||
assertEquals(ret, unpacked);
|
||||
}
|
||||
|
||||
@Test
|
||||
void targetCornerSerde() {
|
||||
var packet = new Packet(TargetCorner.serde.getMaxByteSize());
|
||||
var ret = new TargetCorner(0.0, 1.0);
|
||||
TargetCorner.serde.pack(packet, ret);
|
||||
var unpacked = TargetCorner.serde.unpack(packet);
|
||||
assertEquals(ret, unpacked);
|
||||
}
|
||||
|
||||
@Test
|
||||
void pnpResultSerde() {
|
||||
var packet = new Packet(PNPResult.serde.getMaxByteSize());
|
||||
var ret = new PNPResult();
|
||||
PNPResult.serde.pack(packet, ret);
|
||||
var unpackedRet = PNPResult.serde.unpack(packet);
|
||||
assertEquals(ret, unpackedRet);
|
||||
|
||||
var packet1 = new Packet(PNPResult.serde.getMaxByteSize());
|
||||
var ret1 =
|
||||
new PNPResult(new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1);
|
||||
PNPResult.serde.pack(packet1, ret1);
|
||||
var unpackedRet1 = PNPResult.serde.unpack(packet1);
|
||||
assertEquals(ret1, unpackedRet1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void multitagResultSerde() {
|
||||
var packet = new Packet(MultiTargetPNPResult.serde.getMaxByteSize());
|
||||
var ret =
|
||||
new MultiTargetPNPResult(
|
||||
new PNPResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of(1, 2, 3));
|
||||
MultiTargetPNPResult.serde.pack(packet, ret);
|
||||
var unpackedRet = MultiTargetPNPResult.serde.unpack(packet);
|
||||
assertEquals(ret, unpackedRet);
|
||||
}
|
||||
|
||||
@Test
|
||||
void trackedTargetSerde() {
|
||||
var packet = new Packet(PhotonTrackedTarget.serde.getMaxByteSize());
|
||||
var ret =
|
||||
new PhotonTrackedTarget(
|
||||
3.0,
|
||||
4.0,
|
||||
9.0,
|
||||
-5.0,
|
||||
-1,
|
||||
-1,
|
||||
-1f,
|
||||
new Transform3d(),
|
||||
new Transform3d(),
|
||||
-1,
|
||||
List.of(
|
||||
new TargetCorner(1, 2),
|
||||
new TargetCorner(3, 4),
|
||||
new TargetCorner(5, 6),
|
||||
new TargetCorner(7, 8)),
|
||||
List.of(
|
||||
new TargetCorner(1, 2),
|
||||
new TargetCorner(3, 4),
|
||||
new TargetCorner(5, 6),
|
||||
new TargetCorner(7, 8)));
|
||||
PhotonTrackedTarget.serde.pack(packet, ret);
|
||||
var unpacked = PhotonTrackedTarget.serde.unpack(packet);
|
||||
assertEquals(ret, unpacked);
|
||||
packet.encode(corner);
|
||||
}
|
||||
|
||||
@Test
|
||||
void pipelineResultSerde() {
|
||||
var ret1 = new PhotonPipelineResult(1, 2, 3, List.of());
|
||||
var p1 = new Packet(ret1.getPacketSize());
|
||||
PhotonPipelineResult.serde.pack(p1, ret1);
|
||||
var unpackedRet1 = PhotonPipelineResult.serde.unpack(p1);
|
||||
var p1 = new Packet(10);
|
||||
PhotonPipelineResult.photonStruct.pack(p1, ret1);
|
||||
var unpackedRet1 = PhotonPipelineResult.photonStruct.unpack(p1);
|
||||
assertEquals(ret1, unpackedRet1);
|
||||
|
||||
var ret2 =
|
||||
@@ -236,9 +96,9 @@ class PacketTest {
|
||||
new TargetCorner(3, 4),
|
||||
new TargetCorner(5, 6),
|
||||
new TargetCorner(7, 8)))));
|
||||
var p2 = new Packet(ret2.getPacketSize());
|
||||
PhotonPipelineResult.serde.pack(p2, ret2);
|
||||
var unpackedRet2 = PhotonPipelineResult.serde.unpack(p2);
|
||||
var p2 = new Packet(10);
|
||||
PhotonPipelineResult.photonStruct.pack(p2, ret2);
|
||||
var unpackedRet2 = PhotonPipelineResult.photonStruct.unpack(p2);
|
||||
assertEquals(ret2, unpackedRet2);
|
||||
|
||||
var ret3 =
|
||||
@@ -289,69 +149,14 @@ class PacketTest {
|
||||
new TargetCorner(3, 4),
|
||||
new TargetCorner(5, 6),
|
||||
new TargetCorner(7, 8)))),
|
||||
new MultiTargetPNPResult(
|
||||
new PNPResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of(1, 2, 3)));
|
||||
var p3 = new Packet(ret3.getPacketSize());
|
||||
PhotonPipelineResult.serde.pack(p3, ret3);
|
||||
var unpackedRet3 = PhotonPipelineResult.serde.unpack(p3);
|
||||
Optional.of(
|
||||
new MultiTargetPNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of((short) 1, (short) 2, (short) 3))));
|
||||
var p3 = new Packet(10);
|
||||
PhotonPipelineResult.photonStruct.pack(p3, ret3);
|
||||
var unpackedRet3 = PhotonPipelineResult.photonStruct.unpack(p3);
|
||||
assertEquals(ret3, unpackedRet3);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultiTargetSerde() {
|
||||
var result =
|
||||
new PhotonPipelineResult(
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
List.of(
|
||||
new PhotonTrackedTarget(
|
||||
3.0,
|
||||
-4.0,
|
||||
9.0,
|
||||
4.0,
|
||||
2,
|
||||
-1,
|
||||
-1f,
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)),
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)),
|
||||
0.25,
|
||||
List.of(
|
||||
new TargetCorner(1, 2),
|
||||
new TargetCorner(3, 4),
|
||||
new TargetCorner(5, 6),
|
||||
new TargetCorner(7, 8)),
|
||||
List.of(
|
||||
new TargetCorner(1, 2),
|
||||
new TargetCorner(3, 4),
|
||||
new TargetCorner(5, 6),
|
||||
new TargetCorner(7, 8))),
|
||||
new PhotonTrackedTarget(
|
||||
3.0,
|
||||
-4.0,
|
||||
9.1,
|
||||
6.7,
|
||||
3,
|
||||
-1,
|
||||
-1f,
|
||||
new Transform3d(new Translation3d(4, 2, 3), new Rotation3d(1, 5, 3)),
|
||||
new Transform3d(new Translation3d(4, 2, 3), new Rotation3d(1, 5, 3)),
|
||||
0.25,
|
||||
List.of(
|
||||
new TargetCorner(1, 2),
|
||||
new TargetCorner(3, 4),
|
||||
new TargetCorner(5, 6),
|
||||
new TargetCorner(7, 8)),
|
||||
List.of(
|
||||
new TargetCorner(1, 2),
|
||||
new TargetCorner(3, 4),
|
||||
new TargetCorner(5, 6),
|
||||
new TargetCorner(7, 8)))),
|
||||
new MultiTargetPNPResult(
|
||||
new PNPResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of(1, 2, 3)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,15 +35,15 @@ public class MultiTargetPNPResultTest {
|
||||
|
||||
a =
|
||||
new MultiTargetPNPResult(
|
||||
new PNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of(1, 2, 3));
|
||||
List.of((short) 1, (short) 2, (short) 3));
|
||||
|
||||
b =
|
||||
new MultiTargetPNPResult(
|
||||
new PNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of(1, 2, 3));
|
||||
List.of((short) 1, (short) 2, (short) 3));
|
||||
|
||||
assertEquals(a, b);
|
||||
}
|
||||
@@ -52,14 +52,14 @@ public class MultiTargetPNPResultTest {
|
||||
public void inequalityTest() {
|
||||
var a =
|
||||
new MultiTargetPNPResult(
|
||||
new PNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(new Translation3d(1, 8, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of(3, 4, 7));
|
||||
List.of((short) 3, (short) 4, (short) 7));
|
||||
var b =
|
||||
new MultiTargetPNPResult(
|
||||
new PNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of(1, 2, 3));
|
||||
List.of((short) 1, (short) 2, (short) 3));
|
||||
|
||||
assertNotEquals(a, b);
|
||||
}
|
||||
|
||||
@@ -27,23 +27,23 @@ import org.junit.jupiter.api.Test;
|
||||
public class PNPResultTest {
|
||||
@Test
|
||||
public void equalityTest() {
|
||||
var a = new PNPResult();
|
||||
var b = new PNPResult();
|
||||
var a = new PnpResult();
|
||||
var b = new PnpResult();
|
||||
assertEquals(a, b);
|
||||
|
||||
a = new PNPResult(new Transform3d(0, 1, 2, new Rotation3d()), 0.0);
|
||||
b = new PNPResult(new Transform3d(0, 1, 2, new Rotation3d()), 0.0);
|
||||
a = new PnpResult(new Transform3d(0, 1, 2, new Rotation3d()), 0.0);
|
||||
b = new PnpResult(new Transform3d(0, 1, 2, new Rotation3d()), 0.0);
|
||||
assertEquals(a, b);
|
||||
|
||||
a =
|
||||
new PNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(0, 1, 2, new Rotation3d()),
|
||||
new Transform3d(3, 4, 5, new Rotation3d()),
|
||||
0.5,
|
||||
0.1,
|
||||
0.1);
|
||||
b =
|
||||
new PNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(0, 1, 2, new Rotation3d()),
|
||||
new Transform3d(3, 4, 5, new Rotation3d()),
|
||||
0.5,
|
||||
@@ -54,19 +54,19 @@ public class PNPResultTest {
|
||||
|
||||
@Test
|
||||
public void inequalityTest() {
|
||||
var a = new PNPResult(new Transform3d(0, 1, 2, new Rotation3d()), 0.0);
|
||||
var b = new PNPResult(new Transform3d(3, 4, 5, new Rotation3d()), 0.1);
|
||||
var a = new PnpResult(new Transform3d(0, 1, 2, new Rotation3d()), 0.0);
|
||||
var b = new PnpResult(new Transform3d(3, 4, 5, new Rotation3d()), 0.1);
|
||||
assertNotEquals(a, b);
|
||||
|
||||
a =
|
||||
new PNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(3, 4, 5, new Rotation3d()),
|
||||
new Transform3d(0, 1, 2, new Rotation3d()),
|
||||
0.5,
|
||||
0.1,
|
||||
0.1);
|
||||
b =
|
||||
new PNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(3, 4, 5, new Rotation3d()),
|
||||
new Transform3d(0, 1, 2, new Rotation3d()),
|
||||
0.5,
|
||||
|
||||
@@ -24,6 +24,7 @@ import edu.wpi.first.math.geometry.Rotation3d;
|
||||
import edu.wpi.first.math.geometry.Transform3d;
|
||||
import edu.wpi.first.math.geometry.Translation3d;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class PhotonPipelineResultTest {
|
||||
@@ -179,10 +180,11 @@ public class PhotonPipelineResultTest {
|
||||
new TargetCorner(3, 4),
|
||||
new TargetCorner(5, 6),
|
||||
new TargetCorner(7, 8)))),
|
||||
new MultiTargetPNPResult(
|
||||
new PNPResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of(1, 2, 3)));
|
||||
Optional.of(
|
||||
new MultiTargetPNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of((short) 1, (short) 2, (short) 3))));
|
||||
b =
|
||||
new PhotonPipelineResult(
|
||||
3,
|
||||
@@ -231,10 +233,11 @@ public class PhotonPipelineResultTest {
|
||||
new TargetCorner(3, 4),
|
||||
new TargetCorner(5, 6),
|
||||
new TargetCorner(7, 8)))),
|
||||
new MultiTargetPNPResult(
|
||||
new PNPResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of(1, 2, 3)));
|
||||
Optional.of(
|
||||
new MultiTargetPNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of((short) 1, (short) 2, (short) 3))));
|
||||
assertEquals(a, b);
|
||||
}
|
||||
|
||||
@@ -386,10 +389,11 @@ public class PhotonPipelineResultTest {
|
||||
new TargetCorner(3, 4),
|
||||
new TargetCorner(5, 6),
|
||||
new TargetCorner(7, 8)))),
|
||||
new MultiTargetPNPResult(
|
||||
new PNPResult(
|
||||
new Transform3d(new Translation3d(1, 8, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of(3, 4, 7)));
|
||||
Optional.of(
|
||||
new MultiTargetPNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(new Translation3d(1, 8, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of((short) 3, (short) 4, (short) 7))));
|
||||
b =
|
||||
new PhotonPipelineResult(
|
||||
3,
|
||||
@@ -438,10 +442,11 @@ public class PhotonPipelineResultTest {
|
||||
new TargetCorner(3, 4),
|
||||
new TargetCorner(5, 6),
|
||||
new TargetCorner(7, 8)))),
|
||||
new MultiTargetPNPResult(
|
||||
new PNPResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of(1, 2, 3)));
|
||||
Optional.of(
|
||||
new MultiTargetPNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of((short) 1, (short) 2, (short) 3))));
|
||||
assertNotEquals(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ import edu.wpi.first.math.geometry.Translation3d;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.photonvision.targeting.MultiTargetPNPResult;
|
||||
import org.photonvision.targeting.PNPResult;
|
||||
import org.photonvision.targeting.PnpResult;
|
||||
|
||||
public class MultiTargetPNPResultProtoTest {
|
||||
@Test
|
||||
@@ -38,9 +38,9 @@ public class MultiTargetPNPResultProtoTest {
|
||||
|
||||
result =
|
||||
new MultiTargetPNPResult(
|
||||
new PNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of(1, 2, 3));
|
||||
List.of((short) 1, (short) 2, (short) 3));
|
||||
serializedResult = MultiTargetPNPResult.proto.createMessage();
|
||||
MultiTargetPNPResult.proto.pack(serializedResult, result);
|
||||
unpackedResult = MultiTargetPNPResult.proto.unpack(serializedResult);
|
||||
|
||||
@@ -22,21 +22,21 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import edu.wpi.first.math.geometry.Rotation3d;
|
||||
import edu.wpi.first.math.geometry.Transform3d;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.photonvision.targeting.PNPResult;
|
||||
import org.photonvision.targeting.PnpResult;
|
||||
|
||||
public class PNPResultProtoTest {
|
||||
@Test
|
||||
public void protobufTest() {
|
||||
var pnpRes = new PNPResult();
|
||||
var serializedPNPRes = PNPResult.proto.createMessage();
|
||||
PNPResult.proto.pack(serializedPNPRes, pnpRes);
|
||||
var unpackedPNPRes = PNPResult.proto.unpack(serializedPNPRes);
|
||||
var pnpRes = new PnpResult();
|
||||
var serializedPNPRes = PnpResult.proto.createMessage();
|
||||
PnpResult.proto.pack(serializedPNPRes, pnpRes);
|
||||
var unpackedPNPRes = PnpResult.proto.unpack(serializedPNPRes);
|
||||
assertEquals(pnpRes, unpackedPNPRes);
|
||||
|
||||
pnpRes = new PNPResult(new Transform3d(1, 2, 3, new Rotation3d(1, 2, 3)), 0.1);
|
||||
serializedPNPRes = PNPResult.proto.createMessage();
|
||||
PNPResult.proto.pack(serializedPNPRes, pnpRes);
|
||||
unpackedPNPRes = PNPResult.proto.unpack(serializedPNPRes);
|
||||
pnpRes = new PnpResult(new Transform3d(1, 2, 3, new Rotation3d(1, 2, 3)), 0.1);
|
||||
serializedPNPRes = PnpResult.proto.createMessage();
|
||||
PnpResult.proto.pack(serializedPNPRes, pnpRes);
|
||||
unpackedPNPRes = PnpResult.proto.unpack(serializedPNPRes);
|
||||
assertEquals(pnpRes, unpackedPNPRes);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import edu.wpi.first.math.geometry.Rotation3d;
|
||||
import edu.wpi.first.math.geometry.Transform3d;
|
||||
import edu.wpi.first.math.geometry.Translation3d;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.photonvision.targeting.*;
|
||||
|
||||
@@ -139,10 +140,11 @@ public class PhotonPipelineResultProtoTest {
|
||||
new TargetCorner(3, 4),
|
||||
new TargetCorner(5, 6),
|
||||
new TargetCorner(7, 8)))),
|
||||
new MultiTargetPNPResult(
|
||||
new PNPResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of(1, 2, 3)));
|
||||
Optional.of(
|
||||
new MultiTargetPNPResult(
|
||||
new PnpResult(
|
||||
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)), 0.1),
|
||||
List.of((short) 1, (short) 2, (short) 3))));
|
||||
serializedResult = PhotonPipelineResult.proto.createMessage();
|
||||
PhotonPipelineResult.proto.pack(serializedResult, result);
|
||||
unpackedResult = PhotonPipelineResult.proto.unpack(serializedResult);
|
||||
|
||||
Reference in New Issue
Block a user