From 3a951a307991dd06af2d4ad4e4bf873a4daefe15 Mon Sep 17 00:00:00 2001
From: Jan David Mol <mol@astron.nl>
Date: Thu, 14 Apr 2022 12:02:03 +0200
Subject: [PATCH] L2SS-761: Added tests for ETRS_to_GEO

---
 .../tangostationcontrol/test/beam/test_geo.py | 31 ++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/tangostationcontrol/tangostationcontrol/test/beam/test_geo.py b/tangostationcontrol/tangostationcontrol/test/beam/test_geo.py
index 858b3f32e..5694376be 100644
--- a/tangostationcontrol/tangostationcontrol/test/beam/test_geo.py
+++ b/tangostationcontrol/tangostationcontrol/test/beam/test_geo.py
@@ -7,7 +7,7 @@
 # Distributed under the terms of the APACHE license.
 # See LICENSE.txt for more info.
 
-from tangostationcontrol.beam.geo import ETRS_to_ITRF
+from tangostationcontrol.beam.geo import ETRS_to_ITRF, ETRS_to_GEO
 
 from tangostationcontrol.test import base
 
@@ -41,3 +41,32 @@ class TestETRS_to_ITRF(base.TestCase):
         LOFAR1_CS001_LBA_ITRF = [3826923.50275, 460915.488115, 5064643.517]
 
         numpy.testing.assert_almost_equal(CS001_LBA_ITRF, LOFAR1_CS001_LBA_ITRF, decimal=1.5)
+
+class TestETRS_to_GEO(base.TestCase):
+    def test_convert_single_coordinate(self):
+        """ Convert a single coordinate. """
+        ETRS_coords = numpy.array([1.0, 1.0, 1.0])
+        GEO_coords = ETRS_to_GEO(ETRS_coords)
+
+        self.assertEqual((2,), GEO_coords.shape)
+
+    def test_convert_array(self):
+        """ Convert an array of coordinates. """
+        ETRS_coords = numpy.array([ [1.0, 1.0, 1.0], [2.0, 2.0, 2.0], [3.0, 3.0, 3.0] ])
+        GEO_coords = ETRS_to_GEO(ETRS_coords)
+
+        self.assertEqual((3,2), GEO_coords.shape)
+
+    def test_verify_CS001_LBA(self):
+        """ Verify if the calculated CS001LBA phase center matches those calculated in LOFAR1. """
+
+        # See CLBA in MAC/Deployment/data/Coordinates/ETRF_FILES/CS001/CS001-antenna-positions-ETRS.csv 
+        CS001_LBA_ETRS = [3826923.942, 460915.117, 5064643.229]
+
+        # Convert to GEO
+        CS001_LBA_GEO = ETRS_to_GEO(numpy.array(CS001_LBA_ETRS))
+
+        # verify against actual position
+        LOFAR1_CS001_LBA_GEO = [52.911, 6.868]
+
+        numpy.testing.assert_almost_equal(CS001_LBA_GEO, LOFAR1_CS001_LBA_GEO, decimal=3)
-- 
GitLab