From 4a0547cff59f67458b5219396112cee12cb73bc5 Mon Sep 17 00:00:00 2001
From: mancini <mancini@astron.nl>
Date: Thu, 9 Nov 2023 16:47:21 +0100
Subject: [PATCH] Add unittests for RCUMode

---
 aartfaacreader/test/unit/tRCUMode.cc | 52 ++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 aartfaacreader/test/unit/tRCUMode.cc

diff --git a/aartfaacreader/test/unit/tRCUMode.cc b/aartfaacreader/test/unit/tRCUMode.cc
new file mode 100644
index 000000000..9177c17d0
--- /dev/null
+++ b/aartfaacreader/test/unit/tRCUMode.cc
@@ -0,0 +1,52 @@
+#include <boost/test/unit_test.hpp>
+#include <boost/test/data/test_case.hpp>
+#include <aartfaacreader/RCUMode.h>
+
+BOOST_AUTO_TEST_SUITE(aartfaacreader)
+namespace dp3::aartfaacreader {
+BOOST_AUTO_TEST_CASE(create_from_mode_number) {
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(0).mode, RCUMode::Unused);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(1).mode, RCUMode::LBAOuter10_90);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(2).mode, RCUMode::LBAOuter30_90);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(3).mode, RCUMode::LBAInner10_90);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(4).mode, RCUMode::LBAInner30_90);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(5).mode, RCUMode::HBA110_190);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(6).mode, RCUMode::HBA170_230);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(7).mode, RCUMode::HBA210_270);
+
+  BOOST_CHECK_THROW(RCUMode::FromNumber(-1).Bandwidth(), std::runtime_error);
+
+  BOOST_CHECK_THROW(RCUMode::FromNumber(50).Bandwidth(), std::runtime_error);
+}
+
+BOOST_AUTO_TEST_CASE(check_frequency_and_bandwidth) {
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(1).CentralFrequency(), 50.);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(2).CentralFrequency(), 60.);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(3).CentralFrequency(), 50.);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(4).CentralFrequency(), 60.);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(5).CentralFrequency(), 150.);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(6).CentralFrequency(), 200.);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(7).CentralFrequency(), 240.);
+
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(1).Bandwidth(), 195312.5);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(2).Bandwidth(), 195312.5);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(3).Bandwidth(), 195312.5);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(4).Bandwidth(), 195312.5);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(5).Bandwidth(), 195312.5);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(6).Bandwidth(), 156250.);
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(7).Bandwidth(), 195312.5);
+
+  BOOST_CHECK_THROW(RCUMode::FromNumber(0).Bandwidth(), std::runtime_error);
+  BOOST_CHECK_THROW(RCUMode::FromNumber(-1).Bandwidth(), std::runtime_error);
+  BOOST_CHECK_THROW(RCUMode::FromNumber(50).Bandwidth(), std::runtime_error);
+}
+
+BOOST_AUTO_TEST_CASE(check_antenna_type) {
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(1).AntennaType(), "LBA");
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(7).AntennaType(), "HBA");
+  BOOST_CHECK_EQUAL(RCUMode::FromNumber(10).AntennaType(), "?");
+}
+
+}  // namespace dp3::aartfaacreader
+
+BOOST_AUTO_TEST_SUITE_END()
\ No newline at end of file
-- 
GitLab