From 5fa911675a8ceecd19f9610b28a850eaa493db11 Mon Sep 17 00:00:00 2001
From: Tammo Jan Dijkema <dijkema@astron.nl>
Date: Fri, 31 Aug 2018 19:56:22 +0000
Subject: [PATCH] Task #11550: fix test and the bug it did not catch

---
 CEP/DP3/DPPP/src/OneApplyCal.cc  | 6 +++---
 CEP/DP3/DPPP/test/tApplyCalH5.cc | 9 ++++-----
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/CEP/DP3/DPPP/src/OneApplyCal.cc b/CEP/DP3/DPPP/src/OneApplyCal.cc
index 8a5203ca434..5c1a9d93e58 100644
--- a/CEP/DP3/DPPP/src/OneApplyCal.cc
+++ b/CEP/DP3/DPPP/src/OneApplyCal.cc
@@ -499,14 +499,14 @@ namespace LOFAR {
 	        info().antennaNames()[ant],
 		times, freqs,
 		pol, itsDirection);
-              weights = itsSolTab.getValuesOrWeights("val",
+              weights = itsSolTab.getValuesOrWeights("weight",
                 info().antennaNames()[ant], times, freqs, pol, itsDirection);
               applyFlags(parmvalues[pol*2][ant], weights);
 	      parmvalues[pol*2+1][ant] = itsSolTab2.getValuesOrWeights("val",
 	        info().antennaNames()[ant],
 		times, freqs,
 		pol, itsDirection);
-              weights = itsSolTab2.getValuesOrWeights("val",
+              weights = itsSolTab2.getValuesOrWeights("weight",
                 info().antennaNames()[ant], times, freqs, pol, itsDirection);
               applyFlags(parmvalues[pol*2+1][ant], weights);
 	    }
@@ -517,7 +517,7 @@ namespace LOFAR {
 	        info().antennaNames()[ant],
 		times, freqs,
 		pol, itsDirection);
-              weights = itsSolTab.getValuesOrWeights("val",
+              weights = itsSolTab.getValuesOrWeights("weight",
                 info().antennaNames()[ant], times, freqs, pol, itsDirection);
               applyFlags(parmvalues[pol][ant], weights);
 	    }
diff --git a/CEP/DP3/DPPP/test/tApplyCalH5.cc b/CEP/DP3/DPPP/test/tApplyCalH5.cc
index 06b8d0019db..fe081058ad9 100644
--- a/CEP/DP3/DPPP/test/tApplyCalH5.cc
+++ b/CEP/DP3/DPPP/test/tApplyCalH5.cc
@@ -203,20 +203,19 @@ private:
 
     if (itsDoTest) {
       //cout<<endl;
-      for (int bl=0; bl<1; ++bl) {
+      for (uint bl=0; bl<info().nbaselines(); ++bl) {
         for (int chan=0; chan<itsNChan; ++chan) {
             uint ant1 = info().getAnt1()[bl];
             uint ant2 = info().getAnt2()[bl];
             // Square root of autocorrelation for first antenna
             complex<float> val = sqrt(buf.getData().data()[bl*itsNCorr*itsNChan + chan*itsNCorr]);
-            //cout<<val<<"\t";
-            ASSERT(near(rightTimes[itsTimeStep]*100 + rightFreqs[chan], val));
 
             bool flag = buf.getFlags().data()[bl*itsNCorr*itsNChan + chan*itsNCorr];
-            if ((ant1==1 || ant2==1) && itsTimeStep==2 && chan==3) {
+            if ((ant1==1 || ant2==1) && rightTimes[itsTimeStep]==2 && rightFreqs[chan]==2) {
               ASSERT(flag);
             } else {
               ASSERT(!flag);
+              ASSERT(near(rightTimes[itsTimeStep]*100 + rightFreqs[chan], val));
             }
         }
       }
@@ -340,7 +339,7 @@ void createH5Parm(vector<double> times, vector<double> freqs) {
       for (uint f=0; f<nfreqs; ++f) {
         values[ant*ntimes*nfreqs+t*nfreqs + f] = 1./(100.*(t%100)+(1+f));
         weights[ant*ntimes*nfreqs+t*nfreqs + f] = 1.;
-        if (ant==1 && t==2 && f==3) {
+        if (ant==1 && t==2 && f==1) {
           weights[ant*ntimes*nfreqs+t*nfreqs + f] = 0.;
         }
       }
-- 
GitLab