Skip to content

Commit 5c56037

Browse files
committed
add test
1 parent f7c2e11 commit 5c56037

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

photon-core/src/test/java/org/photonvision/common/configuration/SQLConfigTest.java

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.fasterxml.jackson.core.JsonProcessingException;
2424
import edu.wpi.first.cscore.UsbCameraInfo;
2525
import java.nio.file.Path;
26+
import java.util.Collection;
2627
import java.util.List;
2728
import org.junit.jupiter.api.BeforeAll;
2829
import org.junit.jupiter.api.Order;
@@ -34,6 +35,8 @@
3435
import org.photonvision.vision.camera.CameraQuirk;
3536
import org.photonvision.vision.camera.PVCameraInfo;
3637
import org.photonvision.vision.pipeline.AprilTagPipelineSettings;
38+
import org.photonvision.vision.pipeline.ArucoPipelineSettings;
39+
import org.photonvision.vision.pipeline.CVPipelineSettings;
3740
import org.photonvision.vision.pipeline.ColoredShapePipelineSettings;
3841
import org.photonvision.vision.pipeline.ObjectDetectionPipelineSettings;
3942
import org.photonvision.vision.pipeline.ReflectivePipelineSettings;
@@ -155,4 +158,48 @@ public void testLoadNewNNMM() throws JsonProcessingException {
155158

156159
ConfigManager.INSTANCE = null;
157160
}
161+
162+
@Test
163+
public void testMaxDetectionsMigration() {
164+
var folder = TestUtils.getConfigDirectoriesPath(false).resolve("2025.3.1-old-nnmm");
165+
var cfgManager = new ConfigManager(folder, new SqlConfigProvider(folder));
166+
167+
// Replace global configmanager
168+
ConfigManager.INSTANCE = cfgManager;
169+
170+
assertDoesNotThrow(cfgManager::load);
171+
172+
Collection<CameraConfiguration> cameraConfigs =
173+
cfgManager.getConfig().getCameraConfigurations().values();
174+
175+
for (CameraConfiguration cc : cameraConfigs) {
176+
for (CVPipelineSettings ps : cc.pipelineSettings) {
177+
if (ps instanceof ObjectDetectionPipelineSettings odps) {
178+
// Should be set to 20 from migration
179+
ObjectDetectionPipelineSettings finalPs = odps;
180+
assertEquals(20, finalPs.outputMaximumTargets);
181+
} else if (ps instanceof ColoredShapePipelineSettings csps) {
182+
// Should be set to 20 from migration
183+
ColoredShapePipelineSettings finalPs = csps;
184+
assertEquals(20, finalPs.outputMaximumTargets);
185+
} else if (ps instanceof ReflectivePipelineSettings rps) {
186+
// Should be set to 20 from migration
187+
ReflectivePipelineSettings finalPs = rps;
188+
assertEquals(20, finalPs.outputMaximumTargets);
189+
} else if (ps instanceof AprilTagPipelineSettings atps) {
190+
// Should be set to 128 from migration
191+
AprilTagPipelineSettings finalPs = atps;
192+
assertEquals(128, finalPs.outputMaximumTargets);
193+
} else if (ps instanceof ArucoPipelineSettings aps) {
194+
// Should be set to 128 from migration
195+
ArucoPipelineSettings finalPs = aps;
196+
assertEquals(128, finalPs.outputMaximumTargets);
197+
} else {
198+
System.out.println("Skipping pipeline settings type: " + ps.getClass().getSimpleName());
199+
}
200+
}
201+
}
202+
203+
ConfigManager.INSTANCE = null;
204+
}
158205
}

0 commit comments

Comments
 (0)