Commit e46766fb authored by dcookastrog's avatar dcookastrog
Browse files

Completed LidarData unitTest and updated the truth data

parent d3759e84
Loading
Loading
Loading
Loading
+216 −136
Original line number Diff line number Diff line
@@ -14,6 +14,56 @@ dat
./test.dat
Testing read(FileName) from binary data... 
LidarData:
	LidarControlPoint:
		id: testLidarControlPoint1
		latitude:  51
		longitude: 101
		radius:    1000
		range:     65
		sigmaRange:0.1
		time:      2018-01-31T14:06:00.1233999
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  51.2
		adjustedLongitude: 101.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 1
			SN:     SN_1-0
		#END_ControlMeasure.
		ControlMeasure: 
			line:   1
			sample: 1
			SN:     SN_1-1
		#END_ControlMeasure.
	#END_LidarControlPoint.

	LidarControlPoint:
		id: testLidarControlPoint2
		latitude:  52
		longitude: 102
		radius:    1000
		range:     75
		sigmaRange:0.1
		time:      2018-01-31T14:07:00.1233999
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  52.2
		adjustedLongitude: 102.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 2
			SN:     SN_2-0
		#END_ControlMeasure.
		ControlMeasure: 
			line:   1
			sample: 2
			SN:     SN_2-1
		#END_ControlMeasure.
	#END_LidarControlPoint.

	LidarControlPoint:
		id: testLidarControlPoint3
		latitude:  53
@@ -22,7 +72,11 @@ LidarData:
		range:     85
		sigmaRange:0.1
		time:      2018-01-31T14:08:00.1233999
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  53.2
		adjustedLongitude: 103.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 3
@@ -43,7 +97,11 @@ LidarData:
		range:     95
		sigmaRange:0.1
		time:      2018-01-31T14:09:00.1233999
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  54.2
		adjustedLongitude: 104.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 4
@@ -64,7 +122,11 @@ LidarData:
		range:     105
		sigmaRange:0.1
		time:      2018-01-31T14:10:00.1233999
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  55.2
		adjustedLongitude: 105.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 5
@@ -78,23 +140,27 @@ LidarData:
	#END_LidarControlPoint.

	LidarControlPoint:
		id: testLidarControlPoint1
		latitude:  51
		longitude: 101
		id: testLidarControlPoint6
		latitude:  56
		longitude: 106
		radius:    1000
		range:     65
		range:     115
		sigmaRange:0.1
		time:      2018-01-31T14:06:00.1233999
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		time:      2018-01-31T14:11:00.1233999
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  56.2
		adjustedLongitude: 106.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 1
			SN:     SN_1-0
			sample: 6
			SN:     SN_6-0
		#END_ControlMeasure.
		ControlMeasure: 
			line:   1
			sample: 1
			SN:     SN_1-1
			sample: 6
			SN:     SN_6-1
		#END_ControlMeasure.
	#END_LidarControlPoint.

@@ -106,7 +172,11 @@ LidarData:
		range:     125
		sigmaRange:0.1
		time:      2018-01-31T14:12:00.1233998
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  57.2
		adjustedLongitude: 107.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 7
@@ -120,44 +190,52 @@ LidarData:
	#END_LidarControlPoint.

	LidarControlPoint:
		id: testLidarControlPoint9
		latitude:  59
		longitude: 109
		id: testLidarControlPoint8
		latitude:  58
		longitude: 108
		radius:    1000
		range:     145
		range:     135
		sigmaRange:0.1
		time:      2018-01-31T14:14:00.1233998
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		time:      2018-01-31T14:13:00.1233998
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  58.2
		adjustedLongitude: 108.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 9
			SN:     SN_9-0
			sample: 8
			SN:     SN_8-0
		#END_ControlMeasure.
		ControlMeasure: 
			line:   1
			sample: 9
			SN:     SN_9-1
			sample: 8
			SN:     SN_8-1
		#END_ControlMeasure.
	#END_LidarControlPoint.

	LidarControlPoint:
		id: testLidarControlPoint8
		latitude:  58
		longitude: 108
		id: testLidarControlPoint9
		latitude:  59
		longitude: 109
		radius:    1000
		range:     135
		range:     145
		sigmaRange:0.1
		time:      2018-01-31T14:13:00.1233998
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		time:      2018-01-31T14:14:00.1233998
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  59.2
		adjustedLongitude: 109.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 8
			SN:     SN_8-0
			sample: 9
			SN:     SN_9-0
		#END_ControlMeasure.
		ControlMeasure: 
			line:   1
			sample: 8
			SN:     SN_8-1
			sample: 9
			SN:     SN_9-1
		#END_ControlMeasure.
	#END_LidarControlPoint.

@@ -169,7 +247,11 @@ LidarData:
		range:     155
		sigmaRange:0.1
		time:      2018-01-31T14:15:00.1233998
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  60.2
		adjustedLongitude: 110.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 10
@@ -182,52 +264,60 @@ LidarData:
		#END_ControlMeasure.
	#END_LidarControlPoint.



Testing read(FileName) from JSON data... 
LidarData:
	LidarControlPoint:
		id: testLidarControlPoint2
		latitude:  52
		longitude: 102
		id: testLidarControlPoint1
		latitude:  51
		longitude: 101
		radius:    1000
		range:     75
		range:     65
		sigmaRange:0.1
		time:      2018-01-31T14:07:00.1233999
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		time:      2018-01-31T14:06:00.1233999
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  51.2
		adjustedLongitude: 101.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 2
			SN:     SN_2-0
			sample: 1
			SN:     SN_1-0
		#END_ControlMeasure.
		ControlMeasure: 
			line:   1
			sample: 2
			SN:     SN_2-1
			sample: 1
			SN:     SN_1-1
		#END_ControlMeasure.
	#END_LidarControlPoint.

	LidarControlPoint:
		id: testLidarControlPoint6
		latitude:  56
		longitude: 106
		id: testLidarControlPoint2
		latitude:  52
		longitude: 102
		radius:    1000
		range:     115
		range:     75
		sigmaRange:0.1
		time:      2018-01-31T14:11:00.1233999
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		time:      2018-01-31T14:07:00.1233999
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  52.2
		adjustedLongitude: 102.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 6
			SN:     SN_6-0
			sample: 2
			SN:     SN_2-0
		#END_ControlMeasure.
		ControlMeasure: 
			line:   1
			sample: 6
			SN:     SN_6-1
			sample: 2
			SN:     SN_2-1
		#END_ControlMeasure.
	#END_LidarControlPoint.



Testing read(FileName) from JSON data... 
LidarData:
	LidarControlPoint:
		id: testLidarControlPoint3
		latitude:  53
@@ -236,7 +326,11 @@ LidarData:
		range:     85
		sigmaRange:0.1
		time:      2018-01-31T14:08:00.1233999
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  53.2
		adjustedLongitude: 103.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 3
@@ -257,7 +351,11 @@ LidarData:
		range:     95
		sigmaRange:0.1
		time:      2018-01-31T14:09:00.1233999
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  54.2
		adjustedLongitude: 104.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 4
@@ -278,7 +376,11 @@ LidarData:
		range:     105
		sigmaRange:0.1
		time:      2018-01-31T14:10:00.1233999
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  55.2
		adjustedLongitude: 105.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 5
@@ -292,23 +394,27 @@ LidarData:
	#END_LidarControlPoint.

	LidarControlPoint:
		id: testLidarControlPoint1
		latitude:  51
		longitude: 101
		id: testLidarControlPoint6
		latitude:  56
		longitude: 106
		radius:    1000
		range:     65
		range:     115
		sigmaRange:0.1
		time:      2018-01-31T14:06:00.1233999
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		time:      2018-01-31T14:11:00.1233999
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  56.2
		adjustedLongitude: 106.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 1
			SN:     SN_1-0
			sample: 6
			SN:     SN_6-0
		#END_ControlMeasure.
		ControlMeasure: 
			line:   1
			sample: 1
			SN:     SN_1-1
			sample: 6
			SN:     SN_6-1
		#END_ControlMeasure.
	#END_LidarControlPoint.

@@ -320,7 +426,11 @@ LidarData:
		range:     125
		sigmaRange:0.1
		time:      2018-01-31T14:12:00.1233998
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  57.2
		adjustedLongitude: 107.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 7
@@ -333,27 +443,6 @@ LidarData:
		#END_ControlMeasure.
	#END_LidarControlPoint.

	LidarControlPoint:
		id: testLidarControlPoint9
		latitude:  59
		longitude: 109
		radius:    1000
		range:     145
		sigmaRange:0.1
		time:      2018-01-31T14:14:00.1233998
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		ControlMeasure: 
			line:   0
			sample: 9
			SN:     SN_9-0
		#END_ControlMeasure.
		ControlMeasure: 
			line:   1
			sample: 9
			SN:     SN_9-1
		#END_ControlMeasure.
	#END_LidarControlPoint.

	LidarControlPoint:
		id: testLidarControlPoint8
		latitude:  58
@@ -362,7 +451,11 @@ LidarData:
		range:     135
		sigmaRange:0.1
		time:      2018-01-31T14:13:00.1233998
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  58.2
		adjustedLongitude: 108.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 8
@@ -376,65 +469,52 @@ LidarData:
	#END_LidarControlPoint.

	LidarControlPoint:
		id: testLidarControlPoint10
		latitude:  60
		longitude: 110
		radius:    1000
		range:     155
		sigmaRange:0.1
		time:      2018-01-31T14:15:00.1233998
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		ControlMeasure: 
			line:   0
			sample: 10
			SN:     SN_10-0
		#END_ControlMeasure.
		ControlMeasure: 
			line:   1
			sample: 10
			SN:     SN_10-1
		#END_ControlMeasure.
	#END_LidarControlPoint.

	LidarControlPoint:
		id: testLidarControlPoint2
		latitude:  52
		longitude: 102
		id: testLidarControlPoint9
		latitude:  59
		longitude: 109
		radius:    1000
		range:     75
		range:     145
		sigmaRange:0.1
		time:      2018-01-31T14:07:00.1233999
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		time:      2018-01-31T14:14:00.1233998
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  59.2
		adjustedLongitude: 109.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 2
			SN:     SN_2-0
			sample: 9
			SN:     SN_9-0
		#END_ControlMeasure.
		ControlMeasure: 
			line:   1
			sample: 2
			SN:     SN_2-1
			sample: 9
			SN:     SN_9-1
		#END_ControlMeasure.
	#END_LidarControlPoint.

	LidarControlPoint:
		id: testLidarControlPoint6
		latitude:  56
		longitude: 106
		id: testLidarControlPoint10
		latitude:  60
		longitude: 110
		radius:    1000
		range:     115
		range:     155
		sigmaRange:0.1
		time:      2018-01-31T14:11:00.1233999
		matrix:      [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549))
		time:      2018-01-31T14:15:00.1233998
		matrix:      [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100))
		adjustedLatitude:  60.2
		adjustedLongitude: 110.1
		adjustedRadius:    1000
		adjustedMatrix:      [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81))
		ControlMeasure: 
			line:   0
			sample: 6
			SN:     SN_6-0
			sample: 10
			SN:     SN_10-0
		#END_ControlMeasure.
		ControlMeasure: 
			line:   1
			sample: 6
			SN:     SN_6-1
			sample: 10
			SN:     SN_10-1
		#END_ControlMeasure.
	#END_LidarControlPoint.

+57 −6
Original line number Diff line number Diff line
@@ -28,6 +28,11 @@ void print(const LidarData &lidarData);
 * @internal
 *   @history 2018-01-29 Ian Humphrey - original version.
 *   @history 2018-01-31 Ian Humphrey - added tests for points() and insert().
 *   @history 2018-03-28 Debbie A Cook - added apriori surface point and 
 *                               adjusted surface point to the LidarData test.  Also
 *                               added a sort of the control points before outputting
 *                               them to compare to make sure they are in a 
 *                               consistent order.
 */
int main(int argc, char *argv[]) {
  // Set up our unit test preferences
@@ -72,14 +77,19 @@ int main(int argc, char *argv[]) {
  lat = 50.0;
  lon = 100.0;
  rad = 1000.0;
  double latAd = 50.2;
  double lonAd = 100.1;
  double radAd = 1001.0;
  boost::numeric::ublas::symmetric_matrix<double, upper> aprioriMatrix(3);
  aprioriMatrix.clear();
  aprioriMatrix(0, 0) = 0.028656965032217;
  aprioriMatrix(1, 1) = 0.031198128120272;
  aprioriMatrix(2, 2) = 38.454887335682053718134171237789;
                                // Angle(1.64192315,Angle::Degrees),
                                // Angle(1.78752107, Angle::Degrees),
                                // Distance(38.454887335682053718134171237789, Distance::Meters));
  aprioriMatrix(0, 0) = .01;
  aprioriMatrix(1, 1) = 0.0121;
  aprioriMatrix(2, 2) = 100.;
  boost::numeric::ublas::symmetric_matrix<double, upper> adjustedMatrix(3);
  adjustedMatrix.clear();
  adjustedMatrix(0, 0) = .02;
  adjustedMatrix(1, 1) = 0.0144;
  adjustedMatrix(2, 2) = 81.;
  
  for (int i = 1; i < 11; i++) {
    time += 60.0;
@@ -94,10 +104,19 @@ int main(int argc, char *argv[]) {
    SurfacePoint sp(Latitude(lat, Angle::Units::Degrees),
                    Longitude(lon, Angle::Units::Degrees),
                    Distance(rad, Distance::Units::Kilometers));
    latAd += 1.0;
    lonAd += 1.0;
    SurfacePoint sp2(Latitude(latAd, Angle::Units::Degrees),
                    Longitude(lonAd, Angle::Units::Degrees),
                    Distance(radAd, Distance::Units::Kilometers));
    sp.SetRadii(Distance(1000.0, Distance::Meters), Distance(1000.0, Distance::Meters),
                Distance(1000.0, Distance::Meters));
    sp.SetSphericalMatrix(aprioriMatrix);
    lcp->SetAprioriSurfacePoint(sp);
    sp2.SetRadii(Distance(1000.0, Distance::Meters), Distance(1000.0, Distance::Meters),
                Distance(1000.0, Distance::Meters));
    sp2.SetSphericalMatrix(adjustedMatrix);
    lcp->SetAdjustedSurfacePoint(sp2);
    for (int j = 0; j < 2; j++) {
      ControlMeasure *measure = new ControlMeasure();
      measure->SetCoordinate((double) i, (double) j);
@@ -137,15 +156,34 @@ int main(int argc, char *argv[]) {
  print(fromJson);
  cout << endl;

  // Clean up
  remove("test.dat");
  remove("test.json");

}


// int cmp (QSharedPointer<LidarControlPoint> lcp1, QSharedPointer<LidarControlPoint> lcp2) {
int cmpLessThan (QSharedPointer<LidarControlPoint> lcp1, QSharedPointer<LidarControlPoint> lcp2) {
  // Trim off the id name and only keep the number to compare
  int num1 = ((lcp1->GetId()).remove(0, 21)).toInt();
  int num2 = ((lcp2->GetId()).remove(0, 21)).toInt();
  return num1 < num2;
}


void print(const LidarData &lidarData) {
  QList< QSharedPointer<LidarControlPoint> > points = lidarData.points();
  
  // Order the control points so test runs will list points in a consistent order
  qSort(points.begin(), points.end(), cmpLessThan);
  
  std::cout << "LidarData:" << std::endl;
  foreach (QSharedPointer<LidarControlPoint> point, points) {
    std::cout << "\tLidarControlPoint:" << std::endl;
    std::cout << "\t\tid: " << point->GetId() << std::endl;;

    // Print the apriori surface point
    SurfacePoint sp = point->GetAprioriSurfacePoint();
    double lat, lon, rad;
    lat = sp.GetLatitude().planetocentric(Angle::Units::Degrees);
@@ -160,6 +198,19 @@ void print(const LidarData &lidarData) {
    // std::cout << "\t\ttime:      " << point->time().Et() << std::endl;
    std::cout << "\t\ttime:      " << point->time().UTC() << std::endl;
    std::cout << "\t\tmatrix:      " << aprioriMatrix << std::endl;

    // Print the adjusted surface point
    SurfacePoint sp2 = point->GetAdjustedSurfacePoint();
    double lat2, lon2, rad2;
    lat2 = sp2.GetLatitude().planetocentric(Angle::Units::Degrees);
    lon2 = sp2.GetLongitude().positiveEast(Angle::Units::Degrees);
    rad2 = sp2.GetLocalRadius().kilometers();
    symmetric_matrix<double, upper> adjustedMatrix = sp2.GetSphericalMatrix();
    std::cout << "\t\tadjustedLatitude:  " << lat2 << std::endl;
    std::cout << "\t\tadjustedLongitude: " << lon2 << std::endl;
    std::cout << "\t\tadjustedRadius:    " << rad2 << std::endl;
    std::cout << "\t\tadjustedMatrix:      " << adjustedMatrix << std::endl;
    
    QList<ControlMeasure *> measures = point->getMeasures();
    foreach (ControlMeasure *measure, measures) {
      std::cout << "\t\tControlMeasure: " << std::endl;