From 69d7afab8ee013c0065bfda9ce2cce3fe0f9af15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Offringa?= <offringa@gmail.com> Date: Tue, 31 Jan 2023 14:43:44 +0000 Subject: [PATCH] Improve incompatible ms error --- imagesets/multibandmsimageset.cpp | 24 +++++++++++++----------- msio/memorybaselinereader.cpp | 2 +- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/imagesets/multibandmsimageset.cpp b/imagesets/multibandmsimageset.cpp index bd5ef6b1..c9e26673 100644 --- a/imagesets/multibandmsimageset.cpp +++ b/imagesets/multibandmsimageset.cpp @@ -152,21 +152,23 @@ template <class Type, class Functor> static void ValidateEqual(const Type& lhs, std::vector<const MSMetaData*>::const_iterator first, std::vector<const MSMetaData*>::const_iterator last, - Functor&& functor) { + Functor&& functor, const std::string& description) { if (!std::all_of(first, last, [&](const MSMetaData* element) { return lhs == functor(element); })) { - throw std::runtime_error("The loaded measurement sets are not compatible"); + throw std::runtime_error( + "The loaded measurement sets are not compatible in this dimension: " + + description); } } template <class Functor> static auto ExtractField(const std::vector<const MSMetaData*>& meta_data, - Functor&& functor) { + Functor&& functor, const std::string& description) { assert(!meta_data.empty()); auto result = functor(meta_data[0]); ValidateEqual(result, meta_data.begin() + 1, meta_data.end(), - std::forward<Functor>(functor)); + std::forward<Functor>(functor), description); return result; } @@ -198,15 +200,15 @@ void MultiBandMsImageSet::ProcessMetaData() { GetInitializedMetaData(readers_.begin(), readers_.end()); // These fields are only validated. - ExtractField(meta_data, GetBaselines); - ExtractField(meta_data, GetObservationTimes); + ExtractField(meta_data, GetBaselines, "baselines"); + ExtractField(meta_data, GetObservationTimes, "timesteps"); // These fields are validated and cached. - antennae_ = ExtractField(meta_data, GetAntennae); - fields_ = ExtractField(meta_data, GetFields); - sequences_ = ExtractField(meta_data, GetSequences); - observation_times_per_sequence_ = - ExtractField(meta_data, GetObservationTimesPerSequence); + antennae_ = ExtractField(meta_data, GetAntennae, "antennas"); + fields_ = ExtractField(meta_data, GetFields, "fields"); + sequences_ = ExtractField(meta_data, GetSequences, "sequences"); + observation_times_per_sequence_ = ExtractField( + meta_data, GetObservationTimesPerSequence, "timesteps per sequence"); std::tie(band_, channels_per_band_) = CombineBands(meta_data); } diff --git a/msio/memorybaselinereader.cpp b/msio/memorybaselinereader.cpp index 05820da5..e8ce442e 100644 --- a/msio/memorybaselinereader.cpp +++ b/msio/memorybaselinereader.cpp @@ -202,7 +202,7 @@ void MemoryBaselineReader::readSet(ProgressListener& progress) { } _areFlagsChanged = false; - Logger::Debug << "Reading toke " << watch.ToString() << ".\n"; + Logger::Debug << "Reading took " << watch.ToString() << ".\n"; } void MemoryBaselineReader::PerformFlagWriteRequests() { -- GitLab