diff --git a/RTCP/Cobalt/InputProc/test/tDelays.cc b/RTCP/Cobalt/InputProc/test/tDelays.cc
index 52299631456570f97f12fa2dda8c18b1540c2374..c8a3ca7c9b1f618f43b22a728a490af3f2ccac21 100644
--- a/RTCP/Cobalt/InputProc/test/tDelays.cc
+++ b/RTCP/Cobalt/InputProc/test/tDelays.cc
@@ -32,7 +32,9 @@ using namespace LOFAR;
 using namespace Cobalt;
 using namespace std;
 
-TEST(Basic) {
+const size_t dayOfSamples = 24UL * 3600 * 192315;
+
+TEST(Tracking) {
   Parset ps;
 
   ps.add( "Observation.referencePhaseCenter", "[0, 0, 0]" ); // center of earth
@@ -40,20 +42,75 @@ TEST(Basic) {
   ps.add( "OLAP.storageStationNames", "[STATION]" );
 
   ps.add( "Observation.nrBeams", "1" );
-  ps.add( "Observation.Beam[0].directionType", "AZEL" );
+  ps.add( "Observation.Beam[0].directionType", "J2000" );
   ps.add( "Observation.Beam[0].angle1", "0" );
   ps.add( "Observation.Beam[0].angle2", "0" );
   ps.add( "Observation.Beam[0].nrTiedArrayBeams", "0" );
   ps.updateSettings();
 
   // blockSize is ~1s
-  Delays delays(ps, "STATION", TimeStamp(time(0), 0, 200000000), 192315);
+  Delays delays(ps, "STATION", TimeStamp(time(0), 0, 200000000), dayOfSamples);
+  delays.start();
+
+  Delays::AllDelays delaySet, prevDelaySet;
+
+  for (size_t block = 0; block < 1024; ++block) {
+    delays.getNextDelays(delaySet);
+
+    // There must be exactly one SAP
+    CHECK_EQUAL(1U, delaySet.size());
+    CHECK_EQUAL(0U, delaySet[0].TABs.size());
+
+    // Delays must change over time
+    if (block > 0) {
+      CHECK(delaySet[0].SAP.delay != prevDelaySet[0].SAP.delay);
+    }
+
+    prevDelaySet = delaySet;
+  }
+}
+
+TEST(TiedArrayBeam) {
+  Parset ps;
+
+  ps.add( "Observation.DataProducts.Output_Beamformed.enabled", "true" );
+
+  ps.add( "Observation.referencePhaseCenter", "[0, 0, 0]" ); // center of earth
+  ps.add( "PIC.Core.STATION.phaseCenter", "[0, 0, 299792458]" ); // 1 lightsecond away from earth center
+  ps.add( "OLAP.storageStationNames", "[STATION]" );
+
+  // Delays for SAP 0 and TAB 0 of SAP 1 should be equal
+  ps.add( "Observation.nrBeams", "2" );
+  ps.add( "Observation.Beam[0].directionType", "J2000" );
+  ps.add( "Observation.Beam[0].angle1", "1" );
+  ps.add( "Observation.Beam[0].angle2", "1" );
+  ps.add( "Observation.Beam[0].nrTiedArrayBeams", "0" );
+  ps.add( "Observation.Beam[1].directionType", "J2000" );
+  ps.add( "Observation.Beam[1].angle1", "1" );
+  ps.add( "Observation.Beam[1].angle2", "0" );
+  ps.add( "Observation.Beam[1].nrTiedArrayBeams", "1" );
+  ps.add( "Observation.Beam[1].TiedArrayBeam[0].directionType", "J2000" );
+  ps.add( "Observation.Beam[1].TiedArrayBeam[0].angle1", "0" );
+  ps.add( "Observation.Beam[1].TiedArrayBeam[0].angle2", "1" );
+  ps.updateSettings();
+
+  // blockSize is ~1s
+  Delays delays(ps, "STATION", TimeStamp(time(0), 0, 200000000), dayOfSamples);
   delays.start();
 
   Delays::AllDelays delaySet;
 
-  for (size_t block = 0; block < 1024; ++block)
+  for (size_t block = 0; block < 10; ++block) {
     delays.getNextDelays(delaySet);
+
+    // check dimensions of result
+    CHECK_EQUAL(2U, delaySet.size());
+    CHECK_EQUAL(0U, delaySet[0].TABs.size());
+    CHECK_EQUAL(1U, delaySet[1].TABs.size());
+
+    // check values
+    CHECK_CLOSE(delaySet[0].SAP.delay, delaySet[1].TABs[0].delay, 0.00001);
+  }
 }