From 77534adc69cb1474ff0f6f3f1c4cc9e4b572dc8f Mon Sep 17 00:00:00 2001
From: Ludovic Hussonnois <ludovic.hussonnois@c-s.fr>
Date: Tue, 18 Apr 2017 16:33:00 +0200
Subject: [PATCH] ENH: throw exception if labels iterators do not end at the
 same time.

---
 .../include/otbContingencyTableCalculator.txx             | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/Modules/Learning/Unsupervised/include/otbContingencyTableCalculator.txx b/Modules/Learning/Unsupervised/include/otbContingencyTableCalculator.txx
index 667c4280cd..a5bb6761fb 100644
--- a/Modules/Learning/Unsupervised/include/otbContingencyTableCalculator.txx
+++ b/Modules/Learning/Unsupervised/include/otbContingencyTableCalculator.txx
@@ -22,6 +22,7 @@
 #define otbContingencyTableCalculator_txx
 
 #include "otbContingencyTableCalculator.h"
+#include "itkMacro.h"
 #include "itkVariableLengthVector.h"
 #include "itkListSample.h"
 
@@ -59,6 +60,9 @@ ContingencyTableCalculator<TClassLabel>
     ++prodBegin;
     ++m_NumberOfSamples;
     }
+
+  if( refBegin != refEnd || prodBegin != prodEnd )
+    itkExceptionMacro(<< "The references and produced labels did not end simultaneously.");
 }
 
 template<class TClassLabel>
@@ -79,6 +83,10 @@ ContingencyTableCalculator<TClassLabel>
     ++itRef;
     ++itProd;
     }
+
+  if( !itRef.IsAtEnd() || !itProd.IsAtEnd() )
+    itkExceptionMacro(<< "The references and produced labels did not end simultaneously.");
+
 }
 
 
-- 
GitLab