From 036412dc0543f32cebadeef5e90bd0b829b36e86 Mon Sep 17 00:00:00 2001 From: Carlos Quiroz Date: Wed, 17 May 2023 15:24:24 -0400 Subject: [PATCH 1/3] REL-4313 Indicate if GHOST is using P2 --- .../edu/gemini/wdba/tcc/GhostSupport.java | 24 ++++-- .../gemini/wdba/tcc/GhostSupportTest.scala | 80 ++++++++++++++----- 2 files changed, 80 insertions(+), 24 deletions(-) diff --git a/bundle/edu.gemini.wdba.xmlrpc.server/src/main/java/edu/gemini/wdba/tcc/GhostSupport.java b/bundle/edu.gemini.wdba.xmlrpc.server/src/main/java/edu/gemini/wdba/tcc/GhostSupport.java index 61e6b85779..4699412737 100644 --- a/bundle/edu.gemini.wdba.xmlrpc.server/src/main/java/edu/gemini/wdba/tcc/GhostSupport.java +++ b/bundle/edu.gemini.wdba.xmlrpc.server/src/main/java/edu/gemini/wdba/tcc/GhostSupport.java @@ -1,6 +1,8 @@ package edu.gemini.wdba.tcc; import edu.gemini.spModel.gemini.ghost.Ghost; +import edu.gemini.spModel.guide.GuideProbe; +import edu.gemini.spModel.target.obsComp.PwfsGuideProbe; import java.util.Objects; @@ -36,34 +38,44 @@ public String getPositionAngle() { return inst.getPosAngleDegreesStr(); } + private boolean usesProbe(GuideProbe gp) { + return oe.containsTargets(gp); + } + + private boolean usesP2() { + return usesProbe(PwfsGuideProbe.pwfs2); + } + @Override public String getTccConfigInstrument() { final String result; + + final String usesP2 = usesP2() ? "_P2" : ""; switch (oe.getTargetEnvironment().getAsterism().asterismType()) { case GhostSingleTarget: - result = "GHOST_SINGLE_TARGET"; + result = "GHOST_SINGLE_TARGET" + usesP2; break; case GhostDualTarget: - result = "GHOST_DUAL_TARGET"; + result = "GHOST_DUAL_TARGET" + usesP2; break; case GhostTargetPlusSky: - result = "GHOST_TARGET_PLUS_SKY"; + result = "GHOST_TARGET_PLUS_SKY" + usesP2; break; case GhostSkyPlusTarget: - result = "GHOST_SKY_PLUS_TARGET"; + result = "GHOST_SKY_PLUS_TARGET" + usesP2; break; case GhostHighResolutionTargetPlusSky: case GhostHighResolutionTargetPlusSkyPrv: - result = "GHOST_HIGH_RESOLUTION"; + result = "GHOST_HIGH_RESOLUTION" + usesP2; break; default: - result = "GHOST"; + result = "GHOST" + usesP2; } return result; } diff --git a/bundle/edu.gemini.wdba.xmlrpc.server/src/test/scala/edu/gemini/wdba/tcc/GhostSupportTest.scala b/bundle/edu.gemini.wdba.xmlrpc.server/src/test/scala/edu/gemini/wdba/tcc/GhostSupportTest.scala index f75c9e46a6..51221fffe0 100644 --- a/bundle/edu.gemini.wdba.xmlrpc.server/src/test/scala/edu/gemini/wdba/tcc/GhostSupportTest.scala +++ b/bundle/edu.gemini.wdba.xmlrpc.server/src/test/scala/edu/gemini/wdba/tcc/GhostSupportTest.scala @@ -7,8 +7,10 @@ package edu.gemini.wdba.tcc; import edu.gemini.pot.sp.SPComponentType import edu.gemini.spModel.gemini.ghost.Ghost import edu.gemini.spModel.gemini.ghost.GhostAsterism +import edu.gemini.spModel.guide.GuideProbe import edu.gemini.spModel.target.SPCoordinates import edu.gemini.spModel.target.env.TargetEnvironment +import edu.gemini.spModel.target.obsComp.PwfsGuideProbe import org.junit.Test; /** @@ -19,38 +21,80 @@ class GhostSupportTest extends InstrumentSupportTestBase[Ghost](SPComponentType. private val emptySky = new SPCoordinates() @Test - def testSingleTarget() { - setTargetEnvironment(TargetEnvironment.create(GhostAsterism.SingleTarget(emptyTarget, None))); - verifyInstrumentConfig(getSouthResults, "GHOST_SINGLE_TARGET"); + def testSingleTarget(): Unit = { + setTargetEnvironment(TargetEnvironment.create(GhostAsterism.SingleTarget(emptyTarget, None))) + verifyInstrumentConfig(getSouthResults, "GHOST_SINGLE_TARGET") } @Test - def testDualTarget() { - setTargetEnvironment(TargetEnvironment.create(GhostAsterism.DualTarget(emptyTarget, emptyTarget, None))); - verifyInstrumentConfig(getSouthResults, "GHOST_DUAL_TARGET"); + def testDualTarget(): Unit = { + setTargetEnvironment(TargetEnvironment.create(GhostAsterism.DualTarget(emptyTarget, emptyTarget, None))) + verifyInstrumentConfig(getSouthResults, "GHOST_DUAL_TARGET") } @Test - def testTargetPlusSky() { - setTargetEnvironment(TargetEnvironment.create(GhostAsterism.TargetPlusSky(emptyTarget, emptySky, None))); - verifyInstrumentConfig(getSouthResults, "GHOST_TARGET_PLUS_SKY"); + def testTargetPlusSky(): Unit = { + setTargetEnvironment(TargetEnvironment.create(GhostAsterism.TargetPlusSky(emptyTarget, emptySky, None))) + verifyInstrumentConfig(getSouthResults, "GHOST_TARGET_PLUS_SKY") } @Test - def testSkyPlusTarget() { - setTargetEnvironment(TargetEnvironment.create(GhostAsterism.SkyPlusTarget(emptySky, emptyTarget, None))); - verifyInstrumentConfig(getSouthResults, "GHOST_SKY_PLUS_TARGET"); + def testSkyPlusTarget(): Unit = { + setTargetEnvironment(TargetEnvironment.create(GhostAsterism.SkyPlusTarget(emptySky, emptyTarget, None))) + verifyInstrumentConfig(getSouthResults, "GHOST_SKY_PLUS_TARGET") } @Test - def testHighResolution() { - setTargetEnvironment(TargetEnvironment.create(GhostAsterism.HighResolutionTargetPlusSky(emptyTarget, emptySky, GhostAsterism.PrvMode.PrvOff, None))); - verifyInstrumentConfig(getSouthResults, "GHOST_HIGH_RESOLUTION"); + def testHighResolution(): Unit = { + setTargetEnvironment(TargetEnvironment.create(GhostAsterism.HighResolutionTargetPlusSky(emptyTarget, emptySky, GhostAsterism.PrvMode.PrvOff, None))) + verifyInstrumentConfig(getSouthResults, "GHOST_HIGH_RESOLUTION") } @Test - def testHighResolutionPrv() { - setTargetEnvironment(TargetEnvironment.create(GhostAsterism.HighResolutionTargetPlusSky(emptyTarget, emptySky, GhostAsterism.PrvMode.PrvOn, None))); - verifyInstrumentConfig(getSouthResults, "GHOST_HIGH_RESOLUTION"); + def testHighResolutionPrv(): Unit = { + setTargetEnvironment(TargetEnvironment.create(GhostAsterism.HighResolutionTargetPlusSky(emptyTarget, emptySky, GhostAsterism.PrvMode.PrvOn, None))) + verifyInstrumentConfig(getSouthResults, "GHOST_HIGH_RESOLUTION") + } + + @Test + def testSingleTargetP2(): Unit = { + setTargetEnvironment(TargetEnvironment.create(GhostAsterism.SingleTarget(emptyTarget, None))) + addGuideStar(PwfsGuideProbe.pwfs2) + verifyInstrumentConfig(getSouthResults, "GHOST_SINGLE_TARGET_P2") + } + + @Test + def testDualTargetP2(): Unit = { + setTargetEnvironment(TargetEnvironment.create(GhostAsterism.DualTarget(emptyTarget, emptyTarget, None))) + addGuideStar(PwfsGuideProbe.pwfs2) + verifyInstrumentConfig(getSouthResults, "GHOST_DUAL_TARGET_P2") + } + + @Test + def testTargetPlusSkyP2(): Unit = { + setTargetEnvironment(TargetEnvironment.create(GhostAsterism.TargetPlusSky(emptyTarget, emptySky, None))) + addGuideStar(PwfsGuideProbe.pwfs2) + verifyInstrumentConfig(getSouthResults, "GHOST_TARGET_PLUS_SKY_P2") + } + + @Test + def testSkyPlusTargetP2(): Unit = { + setTargetEnvironment(TargetEnvironment.create(GhostAsterism.SkyPlusTarget(emptySky, emptyTarget, None))) + addGuideStar(PwfsGuideProbe.pwfs2) + verifyInstrumentConfig(getSouthResults, "GHOST_SKY_PLUS_TARGET_P2") + } + + @Test + def testHighResolutionP2(): Unit = { + setTargetEnvironment(TargetEnvironment.create(GhostAsterism.HighResolutionTargetPlusSky(emptyTarget, emptySky, GhostAsterism.PrvMode.PrvOff, None))) + addGuideStar(PwfsGuideProbe.pwfs2) + verifyInstrumentConfig(getSouthResults, "GHOST_HIGH_RESOLUTION_P2") + } + + @Test + def testHighResolutionPrvP2(): Unit = { + setTargetEnvironment(TargetEnvironment.create(GhostAsterism.HighResolutionTargetPlusSky(emptyTarget, emptySky, GhostAsterism.PrvMode.PrvOn, None))) + addGuideStar(PwfsGuideProbe.pwfs2) + verifyInstrumentConfig(getSouthResults, "GHOST_HIGH_RESOLUTION_P2") } } From bfa05ede29b2e05bb591c93941e0f96c77f58daa Mon Sep 17 00:00:00 2001 From: Carlos Quiroz Date: Wed, 17 May 2023 16:27:25 -0400 Subject: [PATCH 2/3] Fix horizons test --- .../test/scala/edu/gemini/horizons/server/backend/HS2Spec.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundle/edu.gemini.horizons.api/src/test/scala/edu/gemini/horizons/server/backend/HS2Spec.scala b/bundle/edu.gemini.horizons.api/src/test/scala/edu/gemini/horizons/server/backend/HS2Spec.scala index c6733c51ad..2671f24ed3 100644 --- a/bundle/edu.gemini.horizons.api/src/test/scala/edu/gemini/horizons/server/backend/HS2Spec.scala +++ b/bundle/edu.gemini.horizons.api/src/test/scala/edu/gemini/horizons/server/backend/HS2Spec.scala @@ -199,7 +199,7 @@ object HS2Spec extends Specification with ScalaCheck { "(1683005400000,2023-May-02 05:30:00 UTC 08:12:07.022 +03:08:06.46 0.577456 1.085775 -1.0 25.601)", "(1684569600000,2023-May-20 08:00:00 UTC 08:12:40.294 +03:14:39.1 1.767352 0.701981 -1.0 25.619)", "(1686133800000,2023-Jun-07 10:30:00 UTC 08:13:44.373 +03:18:12.92 2.707549 0.271758 -1.0 25.634)", - "(1687698000000,2023-Jun-25 13:00:00 UTC 08:15:12.407 +03:18:36.17 3.351082 -0.17043 20.718 25.646)", + "(1687698000000,2023-Jun-25 13:00:00 UTC 08:15:12.407 +03:18:36.17 3.351083 -0.17043 20.719 25.646)", "(1689262200000,2023-Jul-13 15:30:00 UTC 08:16:56.008 +03:15:51.91 3.688434 -0.58833 1.412 25.653)", "(1690826400000,2023-Jul-31 18:00:00 UTC 08:18:45.968 +03:10:17.27 3.734413 -0.95298 1.306 25.655)" )) From 423fa350fa7ab56b314f95ab0964a8dbdde75c0e Mon Sep 17 00:00:00 2001 From: Carlos Quiroz Date: Thu, 18 May 2023 09:08:07 -0400 Subject: [PATCH 3/3] Implement suggested refactoring --- .../java/edu/gemini/wdba/tcc/GhostSupport.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/bundle/edu.gemini.wdba.xmlrpc.server/src/main/java/edu/gemini/wdba/tcc/GhostSupport.java b/bundle/edu.gemini.wdba.xmlrpc.server/src/main/java/edu/gemini/wdba/tcc/GhostSupport.java index 4699412737..779a5ed291 100644 --- a/bundle/edu.gemini.wdba.xmlrpc.server/src/main/java/edu/gemini/wdba/tcc/GhostSupport.java +++ b/bundle/edu.gemini.wdba.xmlrpc.server/src/main/java/edu/gemini/wdba/tcc/GhostSupport.java @@ -54,30 +54,30 @@ public String getTccConfigInstrument() { switch (oe.getTargetEnvironment().getAsterism().asterismType()) { case GhostSingleTarget: - result = "GHOST_SINGLE_TARGET" + usesP2; + result = "GHOST_SINGLE_TARGET"; break; case GhostDualTarget: - result = "GHOST_DUAL_TARGET" + usesP2; + result = "GHOST_DUAL_TARGET"; break; case GhostTargetPlusSky: - result = "GHOST_TARGET_PLUS_SKY" + usesP2; + result = "GHOST_TARGET_PLUS_SKY"; break; case GhostSkyPlusTarget: - result = "GHOST_SKY_PLUS_TARGET" + usesP2; + result = "GHOST_SKY_PLUS_TARGET"; break; case GhostHighResolutionTargetPlusSky: case GhostHighResolutionTargetPlusSkyPrv: - result = "GHOST_HIGH_RESOLUTION" + usesP2; + result = "GHOST_HIGH_RESOLUTION"; break; default: - result = "GHOST" + usesP2; + result = "GHOST"; } - return result; + return result + usesP2; } @Override