StatusVector: ExportArray() doesn't take fill value

This commit is contained in:
2025-12-08 12:15:40 +01:00
parent ad4ae4d2fe
commit ecf8ce8aa4
3 changed files with 6 additions and 19 deletions

View File

@@ -50,14 +50,9 @@ int32_t StatusVector::GetActualBinning(int32_t bin_size) const {
return bin_size;
}
[[nodiscard]] std::vector<float> StatusVector::ExportArray(float def_value) const {
[[nodiscard]] std::vector<float> StatusVector::ExportArray() const {
std::unique_lock ul(m);
std::vector<float> ret(content.size(), def_value);
for (int i = 0; i < content.size(); i++) {
if (std::isfinite(content[i]))
ret[i] = content[i];
}
return ret;
return content;
}
[[nodiscard]] float StatusVector::Mean() const {
@@ -211,10 +206,3 @@ MultiLinePlot StatusMultiVector::GetMeanPlot(int64_t bin_size, float x_start, fl
}
return ret;
}
std::vector<float> StatusMultiVector::ExportArray(const std::string &s, float def_value) const {
auto iter = status.find(s);
if (iter == status.end() || !iter->second)
return {};
return iter->second->ExportArray(def_value);
}

View File

@@ -29,7 +29,7 @@ public:
size_t GetImageNumber() const;
bool empty() const;
int32_t GetActualBinning(int32_t bin_size) const;
[[nodiscard]] std::vector<float> ExportArray(float def_value) const;
[[nodiscard]] std::vector<float> ExportArray() const;
[[nodiscard]] float Mean() const;
MultiLinePlotStruct GetMeanPerBin(int32_t bin_size, float x_start, float x_incr) const;
[[nodiscard]] MultiLinePlotStruct GetMaxPerBin(int32_t bin_size, float x_start, float x_incr) const;
@@ -47,7 +47,6 @@ public:
[[nodiscard]] MultiLinePlotStruct GetMeanPerBin(const std::string& in_key, int64_t bin_size, float x_start, float x_incr) const;
[[nodiscard]] MultiLinePlot GetMeanPlot(int64_t bin_size, float x_start, float x_incr) const;
[[nodiscard]] std::vector<float> ExportArray(const std::string& s, float def_value) const;
};
#endif //JUNGFRAUJOCH_STATUSVECTOR_H

View File

@@ -238,13 +238,13 @@ TEST_CASE("StatusVector_ExportArray","[StatusVector]") {
status_vector.AddElement(8, 44);
status_vector.AddElement(10, 41);
auto status_out = status_vector.ExportArray(1);
auto status_out = status_vector.ExportArray();
REQUIRE(status_out.size() == 11);
CHECK(status_out[0] == 1);
CHECK(std::isnan(status_out[0]));
CHECK(status_out[5] == 11);
CHECK(status_out[7] == 45);
CHECK(status_out[8] == 44);
CHECK(status_out[9] == 1);
CHECK(std::isnan(status_out[9]));
CHECK(status_out[10] == 41);
}